[med-svn] [gnumed-client] 02/04: Imported Upstream version 1.6.8+dfsg

Andreas Tille tille at debian.org
Wed Aug 3 14:51:59 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 c70cca57d35110cf2c58fe000556da881c05e990
Author: Andreas Tille <tille at debian.org>
Date:   Wed Aug 3 16:41:52 2016 +0200

    Imported Upstream version 1.6.8+dfsg
---
 client/CHANGELOG                                 |  27 +
 client/business/gmAutoHints.py                   |  24 +-
 client/business/gmClinNarrative.py               |  49 +-
 client/business/gmClinicalRecord.py              |   9 +-
 client/business/gmDocuments.py                   |  15 +-
 client/business/gmForms.py                       |   8 +-
 client/business/gmMedication.py                  |   8 +-
 client/business/gmOrganization.py                |   3 +
 client/business/gmPerson.py                      |  60 ++-
 client/business/gmPraxis.py                      |   2 +-
 client/doc/schema/gnumed-entire_schema.html      |   2 +-
 client/gnumed.py                                 |  21 +-
 client/po/ar-gnumed.mo                           | Bin 2373 -> 2373 bytes
 client/po/ar.po                                  |  65 ++-
 client/po/bg-gnumed.mo                           | Bin 1340 -> 1340 bytes
 client/po/bg.po                                  |  65 ++-
 client/po/ca-gnumed.mo                           | Bin 25469 -> 25469 bytes
 client/po/ca.po                                  |  86 +--
 client/po/cs-gnumed.mo                           | Bin 27310 -> 27310 bytes
 client/po/cs.po                                  |  72 ++-
 client/po/da-gnumed.mo                           | Bin 3284 -> 3284 bytes
 client/po/da.po                                  |  71 ++-
 client/po/de-gnumed.mo                           | Bin 493067 -> 492632 bytes
 client/po/de.po                                  | 121 +++--
 client/po/el-gnumed.mo                           | Bin 108365 -> 108365 bytes
 client/po/el.po                                  |  88 ++--
 client/po/en_AU-gnumed.mo                        | Bin 4988 -> 4988 bytes
 client/po/en_AU.po                               |  65 ++-
 client/po/en_CA-gnumed.mo                        | Bin 15065 -> 15065 bytes
 client/po/en_CA.po                               |  79 ++-
 client/po/es-gnumed.mo                           | Bin 510301 -> 515202 bytes
 client/po/es.po                                  | 639 +++++++++++------------
 client/po/fr-gnumed.mo                           | Bin 152053 -> 152053 bytes
 client/po/fr.po                                  | 110 ++--
 client/po/id-gnumed.mo                           | Bin 4526 -> 4526 bytes
 client/po/id.po                                  |  65 ++-
 client/po/it-gnumed.mo                           | Bin 101242 -> 101242 bytes
 client/po/it.po                                  |  88 ++--
 client/po/ka-gnumed.mo                           | Bin 1928 -> 1928 bytes
 client/po/ka.po                                  |  70 ++-
 client/po/nb-gnumed.mo                           | Bin 2194 -> 2194 bytes
 client/po/nb.po                                  |  79 ++-
 client/po/nl-gnumed.mo                           | Bin 141767 -> 141767 bytes
 client/po/nl.po                                  |  88 ++--
 client/po/pl-gnumed.mo                           | Bin 38003 -> 38003 bytes
 client/po/pl.po                                  |  88 ++--
 client/po/pt-gnumed.mo                           | Bin 124922 -> 124922 bytes
 client/po/pt.po                                  |  88 ++--
 client/po/pt_BR-gnumed.mo                        | Bin 149991 -> 149991 bytes
 client/po/pt_BR.po                               |  88 ++--
 client/po/ro-gnumed.mo                           | Bin 1311 -> 1311 bytes
 client/po/ro.po                                  |  65 ++-
 client/po/ru-gnumed.mo                           | Bin 431563 -> 431563 bytes
 client/po/ru.po                                  |  98 ++--
 client/po/ru_RU-gnumed.mo                        | Bin 451187 -> 451187 bytes
 client/po/ru_RU.po                               | 108 ++--
 client/po/sq-gnumed.mo                           | Bin 33489 -> 33489 bytes
 client/po/sq.po                                  |  72 ++-
 client/po/sr-gnumed.mo                           | Bin 14583 -> 14583 bytes
 client/po/sr.po                                  |  81 ++-
 client/po/sv-gnumed.mo                           | Bin 65951 -> 65951 bytes
 client/po/sv.po                                  |  79 ++-
 client/po/tr-gnumed.mo                           | Bin 1940 -> 1940 bytes
 client/po/tr.po                                  |  66 ++-
 client/po/uk-gnumed.mo                           | Bin 862 -> 862 bytes
 client/po/uk.po                                  |  65 ++-
 client/po/zh_TW-gnumed.mo                        | Bin 2740 -> 2740 bytes
 client/po/zh_TW.po                               |  65 ++-
 client/pycommon/gmDateTime.py                    |   8 +
 client/pycommon/gmTools.py                       |  42 +-
 client/wxGladeWidgets/wxgReceiverSelectionDlg.py | 133 +++--
 client/wxpython/gmDocumentWidgets.py             |  71 +--
 client/wxpython/gmEncounterWidgets.py            |  17 +-
 client/wxpython/gmFormWidgets.py                 | 175 +++++--
 client/wxpython/gmGuiMain.py                     |  21 +
 client/wxpython/gmListWidgets.py                 |  37 +-
 client/wxpython/gmMacro.py                       |  91 +++-
 client/wxpython/gmPhraseWheel.py                 |   1 +
 client/wxpython/gmTopPanel.py                    |   8 +-
 external-tools/gm-describe_file                  |  22 +-
 80 files changed, 2353 insertions(+), 1315 deletions(-)

diff --git a/client/CHANGELOG b/client/CHANGELOG
index 9b4e067..8723c0b 100644
--- a/client/CHANGELOG
+++ b/client/CHANGELOG
@@ -6,6 +6,33 @@
 # rel-1-6-patches
 ------------------------------------------------
 
+	1.6.8
+
+FIX: remove dynamic hint lacking evidence of clinical relevance
+FIX: off-by-one calculation of substance intake end date
+FIX: faulty use of $<gender_mapper>$ in Begleitbrief template
+FIX: fix EMR access deadlock in encounter display widget [thanks Marc]
+FIX: exception on non-ASCII VCF data
+FIX: exception displaying birthday/age of patient w/ estimated DOB
+FIX: list sorting by column header click
+
+IMPROVED: document tree orgs sort mode tooltips
+IMPROVED: file description shell script
+IMPROVED: less in-your-face default list tooltip
+IMPROVED: update AMTS Medikationsplan to 2.3
+IMPROVED: log file placement
+IMPROVED: form template EA information
+IMPROVED: logging of EMR access locking
+IMPROVED: EMR journal: show applicable dynamic hints
+IMRPOVED: ES translation [thanks Uwe]
+IMPROVED: show comm channels of org units in receiver selection
+IMPROVED: show doc sources as receiver selection candidates
+IMPROVED: letter receiver selection widget layout
+IMPROVED: logging of patient change encounter editing
+
+NEW: placeholder $ph_cfg::encoding::$
+NEW: blanko AMTS Medikationsplan ~2.3
+
 	1.6.7
 
 FIX: constrain hospital stay PRW to current patient
diff --git a/client/business/gmAutoHints.py b/client/business/gmAutoHints.py
index c449a9f..96f7440 100644
--- a/client/business/gmAutoHints.py
+++ b/client/business/gmAutoHints.py
@@ -59,7 +59,11 @@ class cDynamicHint(gmBusinessDBObject.cBusinessDBObject):
 		u'is_active'
 	]
 	#--------------------------------------------------------
-	def format(self):
+	def format_maximum_information(self, patient):
+		return self.format(include_sql = True).split(u'\n')
+
+	#--------------------------------------------------------
+	def format(self, include_sql=False):
 		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']]
@@ -85,14 +89,22 @@ class cDynamicHint(gmBusinessDBObject.cBusinessDBObject):
 			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:
+		if include_sql:
 			txt += u'\n'
-			txt += gmTools.wrap(self._payload[self._idx['recommendation_query']], width = 50, initial_indent = u' ', subsequent_indent = u' ')
+			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'
+		if self._payload[self._idx['rationale4suppression']] is not None:
+			txt += u'\n'
+			txt += _('Rationale for suppression:')
+			txt += u'\n'
+			txt += gmTools.wrap(self._payload[self._idx['rationale4suppression']], 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 (
diff --git a/client/business/gmClinNarrative.py b/client/business/gmClinNarrative.py
index ab0c064..f76dd9d 100644
--- a/client/business/gmClinNarrative.py
+++ b/client/business/gmClinNarrative.py
@@ -14,9 +14,11 @@ from Gnumed.pycommon import gmBusinessDBObject
 from Gnumed.pycommon import gmTools
 from Gnumed.pycommon import gmDispatcher
 from Gnumed.pycommon import gmHooks
+from Gnumed.pycommon import gmDateTime
 
 from Gnumed.business import gmCoding
 from Gnumed.business import gmSoapDefs
+from Gnumed.business import gmAutoHints
 
 
 _log = logging.getLogger('gm.emr')
@@ -374,7 +376,7 @@ def get_narrative(since=None, until=None, encounters=None, episodes=None, issues
 #		filtered_narrative = filter(lambda narr: narr['soap_cat'] in soap_cats, filtered_narrative)
 
 #------------------------------------------------------------
-def get_as_journal(since=None, until=None, encounters=None, episodes=None, issues=None, soap_cats=None, providers=None, order_by=None, time_range=None, patient=None):
+def get_as_journal(since=None, until=None, encounters=None, episodes=None, issues=None, soap_cats=None, providers=None, order_by=None, time_range=None, patient=None, active_encounter=None):
 
 	if (patient is None) and (episodes is None) and (issues is None) and (encounters is None):
 		raise ValueError('at least one of <patient>, <episodes>, <issues>, <encounters> must not be None')
@@ -414,6 +416,7 @@ def get_as_journal(since=None, until=None, encounters=None, episodes=None, issue
 
 	# FIXME: implement more constraints
 
+	# get rows from clin.v_emr_journal
 	cmd = u"""
 		SELECT
 			to_char(c_vej.clin_when, 'YYYY-MM-DD') AS date,
@@ -438,7 +441,8 @@ def get_as_journal(since=None, until=None, encounters=None, episodes=None, issue
 			c_vej.episode_open,
 			c_vej.encounter_started,
 			c_vej.encounter_last_affirmed,
-			c_vej.encounter_l10n_type
+			c_vej.encounter_l10n_type,
+			c_vej.pk_patient
 		FROM
 			clin.v_emr_journal c_vej
 				join clin.soap_cat_ranks c_scr on (c_scr.soap_cat IS NOT DISTINCT FROM c_vej.soap_cat)
@@ -448,9 +452,44 @@ def get_as_journal(since=None, until=None, encounters=None, episodes=None, issue
 			u'\n\t\t\t\t\tAND\n\t\t\t\t'.join(where_parts),
 			order_by
 		)
-
-	rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
-	return rows
+	journal_rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
+
+	if active_encounter is not None:
+		# get rows from clin.get_hints_for_patient()
+		pk_identity = journal_rows[0]['pk_patient']
+		hints = gmAutoHints.get_hints_for_patient (
+			pk_identity = pk_identity,
+			include_suppressed_needing_invalidation = True
+		)
+		for hint in hints:
+			d = {}
+			d['date'] = gmDateTime.pydt_strftime(active_encounter['started'], '%Y-%m-%d')
+			d['clin_when'] = active_encounter['started']
+			d['soap_cat'] = u'a'
+			d['narrative'] = hint.format()
+			d['src_table'] = u'ref.auto_hint'
+			d['rank'] = 3									# FIXME: should be rank_of['a']
+			d['modified_when'] = active_encounter['started']		# FIXME: should be hint['modified_when']
+			d['date_modified'] = gmDateTime.pydt_strftime(active_encounter['started'], '%Y-%m-%d %H:%M')	# FIXME: should use hint['modified_when']
+			d['modified_by'] = active_encounter['modified_by']		# FIXME: should be hint['modified_by']
+			d['row_version'] = 0							# FIXME: should be hint['row_version']
+			d['pk_episode'] = None
+			d['pk_encounter'] = active_encounter['pk_encounter']
+			d['real_soap_cat'] = u'a'
+			d['src_pk'] = hint['pk_auto_hint']
+			d['pk_health_issue'] = None
+			d['health_issue'] = u''
+			d['episode'] = u''
+			d['issue_active'] = False
+			d['issue_clinically_relevant'] = False
+			d['episode_open'] = False
+			d['encounter_started'] = active_encounter['started']
+			d['encounter_last_affirmed'] = active_encounter['last_affirmed']
+			d['encounter_l10n_type'] = active_encounter['l10n_type']
+			d['pk_patient'] = pk_identity
+			journal_rows.append(d)
+
+	return journal_rows
 
 #============================================================
 # convenience functions
diff --git a/client/business/gmClinicalRecord.py b/client/business/gmClinicalRecord.py
index 945166e..2ef0969 100644
--- a/client/business/gmClinicalRecord.py
+++ b/client/business/gmClinicalRecord.py
@@ -80,7 +80,8 @@ _map_clin_root_item2type_str = {
 	'clin.allergy_state': _('Allergy state'),
 	'clin.family_history': _('Family history'),
 	'blobs.doc_med': _('Document'),
-	'dem.message_inbox': _('Inbox message')
+	'dem.message_inbox': _('Inbox message'),
+	'ref.auto_hint': _('Dynamic hint')
 }
 
 def format_clin_root_item_type(table):
@@ -109,7 +110,8 @@ _map_table2class = {
 	'clin.family_history': gmFamilyHistory.cFamilyHistory,
 	'clin.suppressed_hint': gmAutoHints.cSuppressedHint,
 	'blobs.doc_med': cDocument,
-	'dem.message_inbox': cInboxMessage
+	'dem.message_inbox': cInboxMessage,
+	'ref.auto_hint': gmAutoHints.cDynamicHint
 }
 
 def instantiate_clin_root_item(table, pk):
@@ -922,7 +924,8 @@ class cClinicalRecord(object):
 			soap_cats = soap_cats,
 			providers = providers,
 			order_by = order_by,
-			time_range = time_range
+			time_range = time_range,
+			active_encounter = self.active_encounter
 		)
 
 	#--------------------------------------------------------
diff --git a/client/business/gmDocuments.py b/client/business/gmDocuments.py
index abcf806..2a8e33c 100644
--- a/client/business/gmDocuments.py
+++ b/client/business/gmDocuments.py
@@ -226,6 +226,17 @@ class cDocumentFolder:
 			episode = episode
 		)
 
+	#--------------------------------------------------------
+	def _get_all_document_org_units(self):
+		cmd = gmOrganization._SQL_get_org_unit % (
+			u'pk_org_unit IN (SELECT DISTINCT ON (pk_org_unit) pk_org_unit FROM blobs.v_doc_med WHERE pk_patient = %(pat)s)'
+		)
+		args = {'pat': self.pk_patient}
+		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
+		return [ gmOrganization.cOrgUnit(row = {'data': r, 'idx': idx, 'pk_field': u'pk_org_unit'}) for r in rows ]
+
+	all_document_org_units = property(_get_all_document_org_units, lambda x:x)
+
 #============================================================
 _sql_fetch_document_part_fields = u"select * from blobs.v_obj4doc_no_data where %s"
 
@@ -541,7 +552,7 @@ insert into blobs.reviewed_doc_objs (
 			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)
+			gmDateTime.pydt_strftime(self._payload[self._idx['date_generated']], '%Y-%m-%d', 'utf-8', gmDateTime.acc_days)
 			#,gmTools.coalesce(self.__curr_node_data['ext_ref'], '', '-%s').replace(' ', '_')
 		)
 
@@ -730,6 +741,7 @@ class cDocument(gmBusinessDBObject.cBusinessDBObject):
 		return self.__has_unreviewed_parts
 
 	has_unreviewed_parts = property(_get_has_unreviewed_parts, lambda x:x)
+
 	#--------------------------------------------------------
 	def set_reviewed(self, technically_abnormal=None, clinically_relevant=None):
 		# FIXME: this is probably inefficient
@@ -737,6 +749,7 @@ class cDocument(gmBusinessDBObject.cBusinessDBObject):
 			if not part.set_reviewed(technically_abnormal, clinically_relevant):
 				return False
 		return True
+
 	#--------------------------------------------------------
 	def set_primary_reviewer(self, reviewer=None):
 		for part in self.parts:
diff --git a/client/business/gmForms.py b/client/business/gmForms.py
index 974f5f6..7edd64f 100644
--- a/client/business/gmForms.py
+++ b/client/business/gmForms.py
@@ -802,7 +802,7 @@ class cAbiWordForm(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_version_internal', gmTools.coalesce(self.template['gnumed_revision'], u'', u'%s'))
 			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'
@@ -928,7 +928,7 @@ class cTextForm(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_version_internal', gmTools.coalesce(self.template['gnumed_revision'], u'', u'%s'))
 			data_source.set_placeholder(u'form_last_modified', gmDateTime.pydt_strftime(self.template['last_modified'], '%Y-%b-%d %H:%M'))
 
 		base = os.path.join(self.__sandbox_dir, gmTools.fname_stem(self.template_filename))
@@ -1074,7 +1074,7 @@ 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_version_internal', gmTools.coalesce(self.template['gnumed_revision'], u'', u'%s'))
 			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
@@ -1269,7 +1269,7 @@ 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_version_internal', gmTools.coalesce(self.template['gnumed_revision'], u'', u'%s'))
 			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
diff --git a/client/business/gmMedication.py b/client/business/gmMedication.py
index 4263e89..350507e 100644
--- a/client/business/gmMedication.py
+++ b/client/business/gmMedication.py
@@ -2516,7 +2516,7 @@ class cSubstanceIntakeEntry(gmBusinessDBObject.cBusinessDBObject):
 					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']]
+						planned_end = self._payload[self._idx['started']] + self._payload[self._idx['duration']] - pydt.timedelta(days = 1)
 						if planned_end < now:
 							planned_end_from_now_str = _(u'%s ago') % gmDateTime.format_interval(now - planned_end, gmDateTime.acc_days)
 						else:
@@ -2549,7 +2549,7 @@ class cSubstanceIntakeEntry(gmBusinessDBObject.cBusinessDBObject):
 
 		# stopped medication
 		else:
-			duration_taken = self._payload[self._idx['discontinued']] - self._payload[self._idx['started']]
+			duration_taken = self._payload[self._idx['discontinued']] - self._payload[self._idx['started']] + pydt.timedelta(days = 1)
 			if self._payload[self._idx['started']] is None:
 				start = gmTools.coalesce(self._payload[self._idx['comment_on_start']], u'?')
 			else:
@@ -2835,6 +2835,7 @@ def format_substance_intake_as_amts_latex(intake=None, strict=True):
 
 #------------------------------------------------------------
 def format_substance_intake_as_amts_data(intake=None, strict=True):
+#def format_substance_intake_as_amts_data_v2_0(intake=None, strict=True):
 
 	if not strict:
 		pass
@@ -2884,6 +2885,7 @@ def format_substance_intake_as_amts_data(intake=None, strict=True):
 
 #------------------------------------------------------------
 def calculate_amts_data_check_symbol(intakes=None):
+#def calculate_amts_data_check_symbol_v2_0(intakes=None):
 
 	# first char of generic substance or brand name
 	first_chars = []
@@ -2915,6 +2917,7 @@ def calculate_amts_data_check_symbol(intakes=None):
 
 #------------------------------------------------------------
 def generate_amts_data_template_definition_file(work_dir=None, strict=True):
+#def generate_amts_data_template_definition_file_v2_0(work_dir=None, strict=True):
 
 	if not strict:
 		return __generate_enhanced_amts_data_template_definition_file(work_dir = work_dir)
@@ -2969,6 +2972,7 @@ def generate_amts_data_template_definition_file(work_dir=None, strict=True):
 
 #------------------------------------------------------------
 def __generate_enhanced_amts_data_template_definition_file(work_dir=None):
+#def __generate_enhanced_amts_data_template_definition_file_v2_0(work_dir=None):
 
 	amts_fields = [
 		u'MP',
diff --git a/client/business/gmOrganization.py b/client/business/gmOrganization.py
index b413260..d47f0a5 100644
--- a/client/business/gmOrganization.py
+++ b/client/business/gmOrganization.py
@@ -321,6 +321,7 @@ class cOrgUnit(gmBusinessDBObject.cBusinessDBObject):
 					cmd = u"UPDATE dem.lnk_org_unit2ext_id SET comment = %(comment)s WHERE pk = %(pk)s"
 					args = {'comment': comment, 'pk': row['pk_id']}
 					rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
+
 	#--------------------------------------------------------
 	def update_external_id(self, pk_id=None, type=None, value=None, issuer=None, comment=None):
 		"""Edits an existing external ID.
@@ -337,6 +338,7 @@ class cOrgUnit(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 delete_external_id(self, pk_ext_id=None):
 		cmd = u"""
@@ -345,6 +347,7 @@ class cOrgUnit(gmBusinessDBObject.cBusinessDBObject):
 		"""
 		args = {'unit': self.pk_obj, 'pk': pk_ext_id}
 		gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
+
 	#--------------------------------------------------------
 	# address API
 	#--------------------------------------------------------
diff --git a/client/business/gmPerson.py b/client/business/gmPerson.py
index 09b91ab..2434cc7 100644
--- a/client/business/gmPerson.py
+++ b/client/business/gmPerson.py
@@ -19,6 +19,7 @@ import thread
 import threading
 import logging
 import io
+import inspect
 from xml.etree import ElementTree as etree
 
 
@@ -1145,7 +1146,7 @@ class cPerson(gmBusinessDBObject.cBusinessDBObject):
 
 		if filename is None:
 			filename = gmTools.get_unique_filename (
-				prefix = u'gm-patient2gdt-',
+				prefix = u'gm-patient-',
 				suffix = u'.gdt'
 			)
 
@@ -1355,11 +1356,16 @@ class cPerson(gmBusinessDBObject.cBusinessDBObject):
 
 		if filename is None:
 			filename = gmTools.get_unique_filename (
-				prefix = u'gm-pat2vcf-',
+				prefix = u'gm-patient-',
 				suffix = u'.vcf'
 			)
 		vcf = io.open(filename, mode = 'wt', encoding = 'utf8')
-		vcf.write(vc.serialize().decode('utf-8'))
+		try:
+			vcf.write(vc.serialize().decode('utf-8'))
+		except UnicodeDecodeError:
+			_log.exception('failed to serialize VCF data')
+			vcf.close()
+			return u'cannot-serialize.vcf'
 		vcf.close()
 
 		return filename
@@ -1615,17 +1621,19 @@ class cPerson(gmBusinessDBObject.cBusinessDBObject):
 		return cPerson(self._payload[self._idx['pk_emergency_contact']])
 
 	emergency_contact_in_database = property(_get_emergency_contact_from_database, lambda x:x)
+
 	#----------------------------------------------------------------------
 	# age/dob related
 	#----------------------------------------------------------------------
-	def get_formatted_dob(self, format='%Y %b %d', encoding=None, none_string=None):
+	def get_formatted_dob(self, format='%Y %b %d', encoding=None, none_string=None, honor_estimation=False):
 		return gmDateTime.format_dob (
 			self._payload[self._idx['dob']],
 			format = format,
 			encoding = encoding,
 			none_string = none_string,
-			dob_is_estimated = self._payload[self._idx['dob_is_estimated']]
+			dob_is_estimated = self._payload[self._idx['dob_is_estimated']] and honor_estimation
 		)
+
 	#----------------------------------------------------------------------
 	def get_medical_age(self):
 		dob = self['dob']
@@ -1667,6 +1675,7 @@ class cPerson(gmBusinessDBObject.cBusinessDBObject):
 				)
 			)
 		)
+
 	#----------------------------------------------------------------------
 	def dob_in_range(self, min_distance=u'1 week', max_distance=u'1 week'):
 		if self['dob'] is None:
@@ -1679,8 +1688,9 @@ class cPerson(gmBusinessDBObject.cBusinessDBObject):
 			}]
 		)
 		return rows[0][0]
+
 	#----------------------------------------------------------------------
-	def current_birthday_passed(self):
+	def _get_current_birthday_passed(self):
 		if self['dob'] is None:
 			return None
 		now = gmDateTime.pydt_now_here()
@@ -1688,12 +1698,16 @@ class cPerson(gmBusinessDBObject.cBusinessDBObject):
 			return False
 		if now.month > self['dob'].month:
 			return True
-		# DOB is this month
+		# -> DOB is this month
 		if now.day < self['dob'].day:
 			return False
 		if now.day > self['dob'].day:
 			return True
-		return None
+		# -> DOB is today
+		return False
+
+	current_birthday_passed = property(_get_current_birthday_passed, lambda x:x)
+
 	#----------------------------------------------------------------------
 	def _get_birthday_this_year(self):
 		if self['dob'] is None:
@@ -1706,6 +1720,7 @@ class cPerson(gmBusinessDBObject.cBusinessDBObject):
 		)
 
 	birthday_this_year = property(_get_birthday_this_year, lambda x:x)
+
 	#----------------------------------------------------------------------
 	# practice related
 	#----------------------------------------------------------------------
@@ -1901,9 +1916,18 @@ class cPatient(cPerson):
 #		return self.__emr
 
 	def get_emr(self, allow_user_interaction=True):
-		_log.debug('accessing EMR for identity [%s] (thread %s)', self._payload[self._idx['pk_identity']], thread.get_ident())
+		_log.debug('accessing EMR for identity [%s], thread [%s]', self._payload[self._idx['pk_identity']], thread.get_ident())
+		stack_logged = False
 		if not self.__emr_access_lock.acquire(False):
 			got_lock = False
+			# do some logging as we failed to get the lock
+			call_stack = inspect.stack()
+			for idx in range(1, len(call_stack)):
+				caller = call_stack[idx]
+				_log.debug('%s[%s] @ [%s] in [%s]', u' '* idx, caller[3], caller[2], caller[1])
+			del call_stack
+			stack_logged = True
+			# now loop a bit
 			for idx in range(100):
 				_yield()
 				time.sleep(0.1)
@@ -1912,8 +1936,8 @@ class cPatient(cPerson):
 					got_lock = True
 					break
 			if not got_lock:
-				_log.error('still failed to acquire EMR access lock, aborting (thread %s)', thread.get_ident())
-				raise AttributeError('cannot lock access to EMR for identity [%s]', self._payload[self._idx['pk_identity']])
+				_log.error('still failed to acquire EMR access lock, aborting (thread [%s])', thread.get_ident())
+				raise AttributeError('cannot lock access to EMR for identity [%s]' % self._payload[self._idx['pk_identity']])
 
 #			# maybe something slow is happening on the machine
 #			_log.debug('failed to acquire EMR access lock, sleeping for 500ms (thread %s)', thread.get_ident())
@@ -1923,14 +1947,24 @@ class cPatient(cPerson):
 #				raise AttributeError('cannot lock access to EMR')
 
 		if self.__emr is None:
-			_log.debug('pulling chart for identity [%s] (thread %s)', self._payload[self._idx['pk_identity']], thread.get_ident())
+			_log.debug('pulling chart for identity [%s], thread [%s]', self._payload[self._idx['pk_identity']], thread.get_ident())
+			if not stack_logged:
+				# do some logging as we are pulling the chart for the first time
+				call_stack = inspect.stack()
+				for idx in range(1, len(call_stack)):
+					caller = call_stack[idx]
+					_log.debug('%s[%s] @ [%s] in [%s]', u' '* idx, caller[3], caller[2], caller[1])
+				del call_stack
+				stack_logged = True
 			#emr = _pull_chart(self._payload[self._idx['pk_identity']])
 			emr = _pull_chart(self)
 			if emr is None:		# user aborted pulling chart
+				_log.info('user aborted pulling chart, returning None')
+				self.__emr_access_lock.release()
 				return None
 			self.__emr = emr
 
-		_log.debug('returning EMR for identity [%s] (thread %s)', self._payload[self._idx['pk_identity']], thread.get_ident())
+		_log.debug('returning EMR for identity [%s], thread [%s]', self._payload[self._idx['pk_identity']], thread.get_ident())
 		self.__emr_access_lock.release()
 		return self.__emr
 
diff --git a/client/business/gmPraxis.py b/client/business/gmPraxis.py
index 920b15b..6976b36 100644
--- a/client/business/gmPraxis.py
+++ b/client/business/gmPraxis.py
@@ -166,7 +166,7 @@ class cPraxisBranch(gmBusinessDBObject.cBusinessDBObject):
 			vcf_fields.append(u'EMAIL:%(url)s' % comms[0])
 		vcf_fields.append(u'END:VCARD')
 		vcf_fname = gmTools.get_unique_filename (
-			prefix = 'gm_praxis2vcf-',
+			prefix = 'gm-praxis-',
 			suffix = '.vcf'
 		)
 		vcf_file = io.open(vcf_fname, mode = 'wt', encoding = 'utf8')
diff --git a/client/doc/schema/gnumed-entire_schema.html b/client/doc/schema/gnumed-entire_schema.html
index 82a80df..3061072 100644
--- a/client/doc/schema/gnumed-entire_schema.html
+++ b/client/doc/schema/gnumed-entire_schema.html
@@ -112,7 +112,7 @@
   <body>
 
     <!-- Primary Index -->
-	<p><br><br>Dumped on 2016-07-07</p>
+	<p><br><br>Dumped on 2016-08-01</p>
 <h1><a name="index">Index of database - gnumed_v21</a></h1>
 <ul>
     
diff --git a/client/gnumed.py b/client/gnumed.py
index e6943c7..e68b5c6 100644
--- a/client/gnumed.py
+++ b/client/gnumed.py
@@ -88,7 +88,7 @@ against. Please run GNUmed as a non-root user.
 	sys.exit(1)
 
 #----------------------------------------------------------
-current_client_version = u'1.6.7'
+current_client_version = u'1.6.8'
 current_client_branch = u'1.6'
 
 _log = None
@@ -430,6 +430,7 @@ def setup_locale():
 	# make sure we re-get the default encoding
 	# in case it changed
 	gmLog2.set_string_encoding()
+
 #==========================================================
 def handle_help_request():
 	src = [(u'cli', u'return')]
@@ -447,6 +448,7 @@ def handle_help_request():
 		))
 		print(__doc__)
 		sys.exit(0)
+
 #==========================================================
 def handle_version_request():
 	src = [(u'cli', u'return')]
@@ -502,12 +504,22 @@ the hidden directory "%s/".""" % (
 	README.write(gnumed_DIR_README_TEXT)
 	README.close()
 
+	# wxPython not available yet
 	paths = gmTools.gmPaths(app_name = u'gnumed')
+	print("Temp dir:", paths.tmp_dir)
 
+	# ensure there's a user-level config file
 	io.open(os.path.expanduser(os.path.join('~', '.gnumed', 'gnumed.conf')), mode = 'a+t').close()
+
+	# symlink log file into temporary directory for easier debugging (everything in one place)
+	logfile_link = os.path.join(paths.tmp_dir, 'zzz-gnumed.log')
+	gmTools.mklink (gmLog2._logfile.name, logfile_link, overwrite = False)
+	print("Linked log file:", logfile_link)
+
 #==========================================================
 def setup_date_time():
 	gmDateTime.init()
+
 #==========================================================
 def setup_cfg():
 	"""Detect and setup access to GNUmed config file.
@@ -644,6 +656,7 @@ def shutdown_logging():
 
 	# do not choke on Windows
 	logging.raiseExceptions = False
+
 #==========================================================
 def shutdown_tmp_dir():
 
@@ -667,7 +680,10 @@ setup_cli()
 setup_signal_handlers()
 setup_local_repo_path()
 
-from Gnumed.pycommon import gmI18N, gmTools, gmDateTime, gmHooks
+from Gnumed.pycommon import gmI18N
+from Gnumed.pycommon import gmTools
+from Gnumed.pycommon import gmDateTime
+
 setup_locale()
 handle_help_request()
 handle_version_request()
@@ -682,6 +698,7 @@ if ui_type in [u'web']:
 setup_backend()
 
 
+from Gnumed.pycommon import gmHooks
 gmHooks.run_hook_script(hook = u'startup-before-GUI')
 
 if ui_type == u'wxp':
diff --git a/client/po/ar-gnumed.mo b/client/po/ar-gnumed.mo
index 484416d..45c76ac 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 cac3c73..34ef1b2 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:55+0200\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"
@@ -3990,12 +3990,6 @@ msgstr ""
 msgid "Select the paperwork receiver:"
 msgstr ""
 
-msgid "&Addresses"
-msgstr ""
-
-msgid "Or&Ganizations"
-msgstr ""
-
 msgid "&OK"
 msgstr ""
 
@@ -4017,10 +4011,10 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr ""
 
-msgid "Manage known organizations and units thereof."
+msgid "Select the organizational unit you want to write to."
 msgstr ""
 
-msgid "Select the organizational unit you want to write to."
+msgid "Manage known organizations and units thereof."
 msgstr ""
 
 msgid "Use the above name and address."
@@ -4029,13 +4023,38 @@ msgstr ""
 msgid "Abort the receiver selection."
 msgstr ""
 
-msgid "Selected receiver"
+msgid "Address"
 msgstr ""
 
-msgid "Address"
+msgid "Selected Receiver"
 msgstr ""
 
-msgid "Manage:"
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
 msgstr ""
 
 msgid "Quick picks"
@@ -5046,6 +5065,9 @@ msgstr ""
 msgid "Research:"
 msgstr ""
 
+msgid "Manage:"
+msgstr ""
+
 msgid "Certainty:"
 msgstr ""
 
@@ -7255,6 +7277,9 @@ msgstr ""
 msgid "Language: %s\n"
 msgstr ""
 
+msgid "Rationale for suppression:"
+msgstr ""
+
 msgid "Suppressed active dynamic hint"
 msgstr ""
 
@@ -12156,14 +12181,6 @@ msgid ""
 "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 "الت"
@@ -13365,7 +13382,7 @@ msgid "Missing long name for template."
 msgstr ""
 
 #, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr ""
 
 msgid "Choose a form template file"
@@ -13374,6 +13391,9 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+msgid "Receiver"
+msgstr ""
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -13389,9 +13409,6 @@ msgstr ""
 msgid "Bill receiver"
 msgstr ""
 
-msgid "Receiver"
-msgstr ""
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
diff --git a/client/po/bg-gnumed.mo b/client/po/bg-gnumed.mo
index c71db88..8e554f4 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 c2870f8..1b962e1 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:55+0200\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"
@@ -3990,12 +3990,6 @@ msgstr ""
 msgid "Select the paperwork receiver:"
 msgstr ""
 
-msgid "&Addresses"
-msgstr ""
-
-msgid "Or&Ganizations"
-msgstr ""
-
 msgid "&OK"
 msgstr ""
 
@@ -4017,10 +4011,10 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr ""
 
-msgid "Manage known organizations and units thereof."
+msgid "Select the organizational unit you want to write to."
 msgstr ""
 
-msgid "Select the organizational unit you want to write to."
+msgid "Manage known organizations and units thereof."
 msgstr ""
 
 msgid "Use the above name and address."
@@ -4029,13 +4023,38 @@ msgstr ""
 msgid "Abort the receiver selection."
 msgstr ""
 
-msgid "Selected receiver"
+msgid "Address"
 msgstr ""
 
-msgid "Address"
+msgid "Selected Receiver"
 msgstr ""
 
-msgid "Manage:"
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
 msgstr ""
 
 msgid "Quick picks"
@@ -5047,6 +5066,9 @@ msgstr ""
 msgid "Research:"
 msgstr ""
 
+msgid "Manage:"
+msgstr ""
+
 msgid "Certainty:"
 msgstr ""
 
@@ -7252,6 +7274,9 @@ msgstr ""
 msgid "Language: %s\n"
 msgstr ""
 
+msgid "Rationale for suppression:"
+msgstr ""
+
 msgid "Suppressed active dynamic hint"
 msgstr ""
 
@@ -12151,14 +12176,6 @@ msgid ""
 "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 ""
 
@@ -13357,7 +13374,7 @@ msgid "Missing long name for template."
 msgstr ""
 
 #, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr ""
 
 msgid "Choose a form template file"
@@ -13366,6 +13383,9 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+msgid "Receiver"
+msgstr ""
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -13381,9 +13401,6 @@ msgstr ""
 msgid "Bill receiver"
 msgstr ""
 
-msgid "Receiver"
-msgstr ""
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
diff --git a/client/po/ca-gnumed.mo b/client/po/ca-gnumed.mo
index a862516..73f573a 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 1510321..478b908 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:55+0200\n"
 "PO-Revision-Date: 2012-06-01 01:20+0000\n"
 "Last-Translator: ncq <Unknown>\n"
 "Language-Team: Catalan <ca at li.org>\n"
@@ -4198,14 +4198,6 @@ msgstr "Selecciona-ho si el pacient no té al·lèrgies"
 msgid "Select the paperwork receiver:"
 msgstr ""
 
-#, fuzzy
-msgid "&Addresses"
-msgstr "Direcció"
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "Vacunació"
-
 msgid "&OK"
 msgstr ""
 
@@ -4229,13 +4221,13 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr "Vacunació"
 
+msgid "Select the organizational unit you want to write to."
+msgstr ""
+
 #, fuzzy
 msgid "Manage known organizations and units thereof."
 msgstr "Vacunació"
 
-msgid "Select the organizational unit you want to write to."
-msgstr ""
-
 #, fuzzy
 msgid "Use the above name and address."
 msgstr "Edita l'entrada seleccionada."
@@ -4244,16 +4236,40 @@ msgstr "Edita l'entrada seleccionada."
 msgid "Abort the receiver selection."
 msgstr "Documents"
 
-#, fuzzy
-msgid "Selected receiver"
-msgstr "Selecciona"
-
 msgid "Address"
 msgstr "Direcció"
 
 #, fuzzy
-msgid "Manage:"
-msgstr "Vacunació"
+msgid "Selected Receiver"
+msgstr "Selecciona"
+
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
+msgstr ""
 
 msgid "Quick picks"
 msgstr ""
@@ -5298,6 +5314,10 @@ msgstr ""
 msgid "Research:"
 msgstr ""
 
+#, fuzzy
+msgid "Manage:"
+msgstr "Vacunació"
+
 msgid "Certainty:"
 msgstr ""
 
@@ -7592,6 +7612,10 @@ msgid "Language: %s\n"
 msgstr "Pacient"
 
 #, fuzzy
+msgid "Rationale for suppression:"
+msgstr "Identificació pacient extern"
+
+#, fuzzy
 msgid "Suppressed active dynamic hint"
 msgstr "Guarda el document finalitzat."
 
@@ -12637,14 +12661,6 @@ msgid ""
 "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"
@@ -13892,7 +13908,7 @@ msgid "Missing long name for template."
 msgstr "Un nom llarg i descriptiu per aquesta plantilla."
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr "Darrera modificació:"
 
 msgid "Choose a form template file"
@@ -13901,6 +13917,10 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+#, fuzzy
+msgid "Receiver"
+msgstr "Pacient"
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -13918,10 +13938,6 @@ msgstr "La teva revisió"
 msgid "Bill receiver"
 msgstr "Selecciona"
 
-#, fuzzy
-msgid "Receiver"
-msgstr "Pacient"
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
@@ -18730,6 +18746,14 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr "Interromput  i no connectat a GNUmed"
 
 #, fuzzy
+#~ msgid "&Addresses"
+#~ msgstr "Direcció"
+
+#, fuzzy
+#~ msgid "Or&Ganizations"
+#~ msgstr "Vacunació"
+
+#, fuzzy
 #~ msgid "health issue"
 #~ msgstr "Sisuplau, seleccioni un assumpte mèdic."
 
diff --git a/client/po/cs-gnumed.mo b/client/po/cs-gnumed.mo
index 07a4973..2d51337 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 7465045..2ed41ae 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:55+0200\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"
@@ -4146,13 +4146,6 @@ msgstr ""
 msgid "Select the paperwork receiver:"
 msgstr ""
 
-msgid "&Addresses"
-msgstr ""
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "Očkování"
-
 msgid "&OK"
 msgstr ""
 
@@ -4174,10 +4167,10 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr ""
 
-msgid "Manage known organizations and units thereof."
+msgid "Select the organizational unit you want to write to."
 msgstr ""
 
-msgid "Select the organizational unit you want to write to."
+msgid "Manage known organizations and units thereof."
 msgstr ""
 
 msgid "Use the above name and address."
@@ -4186,14 +4179,39 @@ msgstr ""
 msgid "Abort the receiver selection."
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 #, fuzzy
-msgid "Selected receiver"
+msgid "Selected Receiver"
 msgstr "Vybrat událost."
 
-msgid "Address"
+msgid "$<receiver_name::::>$"
 msgstr ""
 
-msgid "Manage:"
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
 msgstr ""
 
 msgid "Quick picks"
@@ -5208,6 +5226,9 @@ msgstr ""
 msgid "Research:"
 msgstr ""
 
+msgid "Manage:"
+msgstr ""
+
 #, fuzzy
 msgid "Certainty:"
 msgstr "Kontejner:"
@@ -7456,6 +7477,9 @@ msgstr ""
 msgid "Language: %s\n"
 msgstr ""
 
+msgid "Rationale for suppression:"
+msgstr ""
+
 #, fuzzy
 msgid "Suppressed active dynamic hint"
 msgstr "Otevřít existující časovou osu"
@@ -12394,14 +12418,6 @@ msgid ""
 "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 ""
 
@@ -13620,7 +13636,7 @@ msgid "Missing long name for template."
 msgstr ""
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr " (poslední potvrzená %s)"
 
 msgid "Choose a form template file"
@@ -13629,6 +13645,10 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+#, fuzzy
+msgid "Receiver"
+msgstr " Příjemce: #%s\n"
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -13645,10 +13665,6 @@ msgstr ""
 msgid "Bill receiver"
 msgstr "Vybrat událost."
 
-#, fuzzy
-msgid "Receiver"
-msgstr " Příjemce: #%s\n"
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
@@ -18351,6 +18367,10 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
 
 #, fuzzy
+#~ msgid "Or&Ganizations"
+#~ msgstr "Očkování"
+
+#, fuzzy
 #~ msgid "Copy to e&xport area..."
 #~ msgstr "Nelze kopírovat do schránky."
 
diff --git a/client/po/da-gnumed.mo b/client/po/da-gnumed.mo
index a63f63e..8dcf98b 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 42098c8..2fa2a7c 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:55+0200\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"
@@ -3993,13 +3993,6 @@ msgstr ""
 msgid "Select the paperwork receiver:"
 msgstr ""
 
-msgid "&Addresses"
-msgstr ""
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "Vaccinationer"
-
 msgid "&OK"
 msgstr ""
 
@@ -4021,10 +4014,10 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr ""
 
-msgid "Manage known organizations and units thereof."
+msgid "Select the organizational unit you want to write to."
 msgstr ""
 
-msgid "Select the organizational unit you want to write to."
+msgid "Manage known organizations and units thereof."
 msgstr ""
 
 msgid "Use the above name and address."
@@ -4033,13 +4026,38 @@ msgstr ""
 msgid "Abort the receiver selection."
 msgstr ""
 
-msgid "Selected receiver"
+msgid "Address"
 msgstr ""
 
-msgid "Address"
+msgid "Selected Receiver"
 msgstr ""
 
-msgid "Manage:"
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
 msgstr ""
 
 msgid "Quick picks"
@@ -5053,6 +5071,9 @@ msgstr ""
 msgid "Research:"
 msgstr ""
 
+msgid "Manage:"
+msgstr ""
+
 msgid "Certainty:"
 msgstr ""
 
@@ -7269,6 +7290,10 @@ msgstr ""
 msgid "Language: %s\n"
 msgstr ""
 
+#, fuzzy
+msgid "Rationale for suppression:"
+msgstr "Ekstern patient ID"
+
 msgid "Suppressed active dynamic hint"
 msgstr ""
 
@@ -12180,14 +12205,6 @@ msgid ""
 "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 ""
 
@@ -13387,7 +13404,7 @@ msgid "Missing long name for template."
 msgstr ""
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr " (sidst bekræftet %s)"
 
 msgid "Choose a form template file"
@@ -13396,6 +13413,9 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+msgid "Receiver"
+msgstr ""
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -13411,9 +13431,6 @@ msgstr ""
 msgid "Bill receiver"
 msgstr ""
 
-msgid "Receiver"
-msgstr ""
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
@@ -18076,6 +18093,10 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
 
 #, fuzzy
+#~ msgid "Or&Ganizations"
+#~ msgstr "Vaccinationer"
+
+#, fuzzy
 #~ msgid ""
 #~ "Health issue: %s%s%s (%s versions)\n"
 #~ "\n"
diff --git a/client/po/de-gnumed.mo b/client/po/de-gnumed.mo
index 71ec79d..eecbff6 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 eb6201d..3db9a4a 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: 2016-07-07 14:56+0200\n"
-"PO-Revision-Date: 2016-07-07 15:10+0200\n"
+"POT-Creation-Date: 2016-08-01 11:55+0200\n"
+"PO-Revision-Date: 2016-08-01 12:14+0200\n"
 "Last-Translator: Karsten Hilbert <Karsten.Hilbert at gmx.net>\n"
 "Language-Team: Deutsch\n"
 "Language: de_DE\n"
@@ -4495,12 +4495,6 @@ msgstr "Details der zusammenzuführenden Patienten"
 msgid "Select the paperwork receiver:"
 msgstr "Wählen Sie den Empfänger des Schriftstücks:"
 
-msgid "&Addresses"
-msgstr "&Adressen"
-
-msgid "Or&Ganizations"
-msgstr "Or&Ganisationen"
-
 msgid "&OK"
 msgstr "&OK"
 
@@ -4528,26 +4522,51 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr "Adressen verwalten."
 
-msgid "Manage known organizations and units thereof."
-msgstr "Organisationen und deren Abteilungen verwalten."
-
 msgid "Select the organizational unit you want to write to."
 msgstr "Wählen Sie die Abteilung, an welche Sie schreiben wollen."
 
+msgid "Manage known organizations and units thereof."
+msgstr "Organisationen und deren Abteilungen verwalten."
+
 msgid "Use the above name and address."
 msgstr "Obenstehenden Namen und Adresse verwenden."
 
 msgid "Abort the receiver selection."
 msgstr "Empfängerwahl abbrechen."
 
-msgid "Selected receiver"
-msgstr "Gewählter Empfänger"
-
 msgid "Address"
 msgstr "Adresse"
 
-msgid "Manage:"
-msgstr "Verwalten:"
+msgid "Selected Receiver"
+msgstr "Gewählter Empfänger"
+
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr "PLZ"
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
+msgstr ""
 
 msgid "Quick picks"
 msgstr "Schnellwahl"
@@ -5734,6 +5753,9 @@ msgstr "Medikament"
 msgid "Research:"
 msgstr "Recherchiere:"
 
+msgid "Manage:"
+msgstr "Verwalten:"
+
 msgid "Certainty:"
 msgstr "Gewißheit:"
 
@@ -8202,6 +8224,9 @@ msgstr "Quelle: %s\n"
 msgid "Language: %s\n"
 msgstr "Sprache: %s\n"
 
+msgid "Rationale for suppression:"
+msgstr "Begründung des Unterdrückens:"
+
 msgid "Suppressed active dynamic hint"
 msgstr "Unterdrückter aktiver dynamischer Hinweis"
 
@@ -13761,20 +13786,6 @@ msgstr ""
 "\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"
 
@@ -15206,8 +15217,8 @@ msgid "Missing long name for template."
 msgstr "Langname für die Vorlage fehlt."
 
 #, python-format
-msgid "last modified %s by %s"
-msgstr "zuletzt geändert %s von %s"
+msgid "last modified %s by %s, internal revision [%s]"
+msgstr "zuletzt geändert %s von %s, interne Version [%s]"
 
 msgid "Choose a form template file"
 msgstr "Wählen Sie eine Datei als Schriftstück-Vorlage."
@@ -15215,6 +15226,9 @@ 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 "Receiver"
+msgstr "Empfänger"
+
 msgid "Emergency contact"
 msgstr "Notfallkontakt"
 
@@ -15230,9 +15244,6 @@ msgstr "Diese Praxis"
 msgid "Bill receiver"
 msgstr "Rechnungsempfänger"
 
-msgid "Receiver"
-msgstr "Empfänger"
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
@@ -20731,6 +20742,46 @@ msgstr "Abbrechen"
 msgid "Abort and do NOT connect to GNUmed."
 msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 
+#~ msgid "&Addresses"
+#~ msgstr "&Adressen"
+
+#~ msgid "Or&Ganizations"
+#~ msgstr "Or&Ganisationen"
+
+#~ msgid ""
+#~ "Address #%(pk_address)s\n"
+#~ " Country:  %(l10n_country)s (%(country)s, %(code_country)s)\n"
+#~ " Region:   %(l10n_region)s (%(region)s, %(code_region)s)\n"
+#~ " ZIP:      %(postcode)s\n"
+#~ " Location: %(urb)s, %(suburb)s (ZIP %(postcode_urb)s)\n"
+#~ " Street:   %(street)s (ZIP %(postcode_street)s) %(notes_street)s\n"
+#~ " Number:   %(number)s %(subunit)s %(notes_subunit)s"
+#~ msgstr ""
+#~ "Addresse #%(pk_address)s\n"
+#~ " Land:     %(l10n_country)s (%(country)s, %(code_country)s)\n"
+#~ " Region:   %(l10n_region)s (%(region)s, %(code_region)s)\n"
+#~ " PLZ:      %(postcode)s\n"
+#~ " Ort:      %(urb)s, %(suburb)s (PLZ %(postcode_urb)s)\n"
+#~ " Straße:   %(street)s (PLZ %(postcode_street)s) %(notes_street)s\n"
+#~ " Nummer:   %(number)s %(subunit)s %(notes_subunit)s"
+
+#~ msgid "Select receiver"
+#~ msgstr "Wähle Empfänger"
+
+#~ 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 "Study time"
 #~ msgstr "Zeit der Studie"
 
diff --git a/client/po/el-gnumed.mo b/client/po/el-gnumed.mo
index 63c103b..cb35bfd 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 9c532b4..f503c0a 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:55+0200\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"
@@ -4473,14 +4473,6 @@ msgid "Select the paperwork receiver:"
 msgstr "Επέλεξε τον τύπο της συνεδρίας."
 
 #, fuzzy
-msgid "&Addresses"
-msgstr "Διεύθυνση"
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "Οργανισμός"
-
-#, fuzzy
 msgid "&OK"
 msgstr "OK"
 
@@ -4505,14 +4497,14 @@ msgid "Manage generic list of all addresses."
 msgstr "Αποθήκευση διεύθυνσης"
 
 #, fuzzy
-msgid "Manage known organizations and units thereof."
-msgstr "Εμφάνισε  Οργανώσεις"
-
-#, fuzzy
 msgid "Select the organizational unit you want to write to."
 msgstr "Η εμπορική ονομασία του φάρμακου που λαμβάνει ο ασθενής."
 
 #, fuzzy
+msgid "Manage known organizations and units thereof."
+msgstr "Εμφάνισε  Οργανώσεις"
+
+#, fuzzy
 msgid "Use the above name and address."
 msgstr "Επεξεργασία του επιλεγμένου αντικειμένου."
 
@@ -4520,16 +4512,40 @@ msgstr "Επεξεργασία του επιλεγμένου αντικειμέ
 msgid "Abort the receiver selection."
 msgstr "Τρέχουσα φαρμακευτική αγωγή"
 
-#, fuzzy
-msgid "Selected receiver"
-msgstr "Επιλογή"
-
 msgid "Address"
 msgstr "Διεύθυνση"
 
 #, fuzzy
-msgid "Manage:"
-msgstr "&Διαχείριση"
+msgid "Selected Receiver"
+msgstr "Επιλογή"
+
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
+msgstr ""
 
 msgid "Quick picks"
 msgstr ""
@@ -5607,6 +5623,10 @@ msgid "Research:"
 msgstr "Αναζήτηση"
 
 #, fuzzy
+msgid "Manage:"
+msgstr "&Διαχείριση"
+
+#, fuzzy
 msgid "Certainty:"
 msgstr "Συνέχεια"
 
@@ -8003,6 +8023,10 @@ msgid "Language: %s\n"
 msgstr "Γλώσσα"
 
 #, fuzzy
+msgid "Rationale for suppression:"
+msgstr "Κράτα *αυτόν* τον ασθενή"
+
+#, fuzzy
 msgid "Suppressed active dynamic hint"
 msgstr "Αποθήκευση εγγράφου"
 
@@ -13110,14 +13134,6 @@ msgid ""
 "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 "Κατευθύνσεις"
@@ -14393,7 +14409,7 @@ msgid "Missing long name for template."
 msgstr ""
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr "Τελευταία τροποποίηση:"
 
 msgid "Choose a form template file"
@@ -14403,6 +14419,10 @@ msgid "Enter a filename to save the template to"
 msgstr ""
 
 #, fuzzy
+msgid "Receiver"
+msgstr " Αιτία: %s\n"
+
+#, fuzzy
 msgid "Emergency contact"
 msgstr "σημειώσεις προόδου"
 
@@ -14421,10 +14441,6 @@ msgstr "εμβόλιο"
 msgid "Bill receiver"
 msgstr "Επιλογή"
 
-#, fuzzy
-msgid "Receiver"
-msgstr " Αιτία: %s\n"
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
@@ -19318,6 +19334,14 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr "Ματαίωση και ΔΕΝ θα συνδεθείτε με το GNUmed."
 
 #, fuzzy
+#~ msgid "&Addresses"
+#~ msgstr "Διεύθυνση"
+
+#, fuzzy
+#~ msgid "Or&Ganizations"
+#~ msgstr "Οργανισμός"
+
+#, fuzzy
 #~ msgid "Study time"
 #~ msgstr "Άρχισε νέο"
 
diff --git a/client/po/en_AU-gnumed.mo b/client/po/en_AU-gnumed.mo
index 385e398..74e3a6e 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 1da1d9c..cbc8344 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:55+0200\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"
@@ -3995,12 +3995,6 @@ msgstr ""
 msgid "Select the paperwork receiver:"
 msgstr ""
 
-msgid "&Addresses"
-msgstr ""
-
-msgid "Or&Ganizations"
-msgstr ""
-
 msgid "&OK"
 msgstr ""
 
@@ -4022,10 +4016,10 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr ""
 
-msgid "Manage known organizations and units thereof."
+msgid "Select the organizational unit you want to write to."
 msgstr ""
 
-msgid "Select the organizational unit you want to write to."
+msgid "Manage known organizations and units thereof."
 msgstr ""
 
 msgid "Use the above name and address."
@@ -4034,13 +4028,38 @@ msgstr ""
 msgid "Abort the receiver selection."
 msgstr ""
 
-msgid "Selected receiver"
+msgid "Address"
 msgstr ""
 
-msgid "Address"
+msgid "Selected Receiver"
 msgstr ""
 
-msgid "Manage:"
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
 msgstr ""
 
 msgid "Quick picks"
@@ -5053,6 +5072,9 @@ msgstr ""
 msgid "Research:"
 msgstr ""
 
+msgid "Manage:"
+msgstr ""
+
 msgid "Certainty:"
 msgstr ""
 
@@ -7275,6 +7297,9 @@ msgstr ""
 msgid "Language: %s\n"
 msgstr ""
 
+msgid "Rationale for suppression:"
+msgstr ""
+
 msgid "Suppressed active dynamic hint"
 msgstr ""
 
@@ -12190,14 +12215,6 @@ msgid ""
 "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 ""
 
@@ -13399,7 +13416,7 @@ msgid "Missing long name for template."
 msgstr ""
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr " (last confirmed %s)"
 
 msgid "Choose a form template file"
@@ -13408,6 +13425,9 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+msgid "Receiver"
+msgstr ""
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -13423,9 +13443,6 @@ msgstr ""
 msgid "Bill receiver"
 msgstr ""
 
-msgid "Receiver"
-msgstr ""
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
diff --git a/client/po/en_CA-gnumed.mo b/client/po/en_CA-gnumed.mo
index 7cb961f..a59274f 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 0992709..ab13f3e 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:55+0200\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"
@@ -4071,13 +4071,6 @@ msgstr ""
 msgid "Select the paperwork receiver:"
 msgstr ""
 
-msgid "&Addresses"
-msgstr ""
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "Vaccination"
-
 msgid "&OK"
 msgstr ""
 
@@ -4101,13 +4094,13 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr " %s documents\n"
 
+msgid "Select the organizational unit you want to write to."
+msgstr ""
+
 #, fuzzy
 msgid "Manage known organizations and units thereof."
 msgstr "Vaccination"
 
-msgid "Select the organizational unit you want to write to."
-msgstr ""
-
 msgid "Use the above name and address."
 msgstr ""
 
@@ -4115,16 +4108,40 @@ msgstr ""
 msgid "Abort the receiver selection."
 msgstr "The currently selected patient is:"
 
+msgid "Address"
+msgstr ""
+
 #, fuzzy
-msgid "Selected receiver"
+msgid "Selected Receiver"
 msgstr "external patient ID"
 
-msgid "Address"
+msgid "$<receiver_name::::>$"
 msgstr ""
 
-#, fuzzy
-msgid "Manage:"
-msgstr " %s documents\n"
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
+msgstr ""
 
 msgid "Quick picks"
 msgstr ""
@@ -5142,6 +5159,10 @@ msgstr ""
 msgid "Research:"
 msgstr ""
 
+#, fuzzy
+msgid "Manage:"
+msgstr " %s documents\n"
+
 msgid "Certainty:"
 msgstr ""
 
@@ -7413,6 +7434,10 @@ msgid "Language: %s\n"
 msgstr "Patient: %s (%s), No: %s\n"
 
 #, fuzzy
+msgid "Rationale for suppression:"
+msgstr "external patient ID"
+
+#, fuzzy
 msgid "Suppressed active dynamic hint"
 msgstr " %s documents\n"
 
@@ -12398,14 +12423,6 @@ msgid ""
 "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 ""
 
@@ -13626,7 +13643,7 @@ msgid "Missing long name for template."
 msgstr ""
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr "Last worked on: %s\n"
 
 msgid "Choose a form template file"
@@ -13635,6 +13652,10 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+#, fuzzy
+msgid "Receiver"
+msgstr "Patient: %s (%s), No: %s\n"
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -13651,10 +13672,6 @@ msgstr ""
 msgid "Bill receiver"
 msgstr "external patient ID"
 
-#, fuzzy
-msgid "Receiver"
-msgstr "Patient: %s (%s), No: %s\n"
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
@@ -18399,6 +18416,10 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr "Abort and do NOT connect to GNUmed."
 
 #, fuzzy
+#~ msgid "Or&Ganizations"
+#~ msgstr "Vaccination"
+
+#, fuzzy
 #~ msgid "health issue"
 #~ msgstr "health issue: %s"
 
diff --git a/client/po/es-gnumed.mo b/client/po/es-gnumed.mo
index ad1c78b..5892afd 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 e784670..aba5106 100644
--- a/client/po/es.po
+++ b/client/po/es.po
@@ -9,16 +9,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: es\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-07-07 14:56+0200\n"
-"PO-Revision-Date: 2016-02-24 18:28+0100\n"
-"Last-Translator: Karsten Hilbert <Karsten.Hilbert at gmx.net>\n"
+"POT-Creation-Date: 2016-08-01 11:55+0200\n"
+"PO-Revision-Date: 2016-07-25 17:47-0400\n"
+"Last-Translator: Uwe Koch <uwe.koch at opticakoch.cl>\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: 2016-02-19 21:36+0000\n"
-"X-Generator: Poedit 1.8.3\n"
+"X-Generator: Poedit 1.8.7.1\n"
 "X-Poedit-Bookmarks: -1,4225,-1,-1,-1,-1,-1,-1,-1,-1\n"
 "Generated-By: pygettext.py 1.4\n"
 
@@ -370,7 +370,7 @@ msgid "Check all parents of all childs"
 msgstr "Marca todos los padres de todos los niños"
 
 msgid "Checking not allowed when there is no timeline view."
-msgstr "No está permitido marcar mientras no haya vista de linea de tiempo."
+msgstr "No está permitido marcar mientras no haya vista de línea de tiempo."
 
 msgid "Edit Category"
 msgstr "Editar categoría"
@@ -478,7 +478,7 @@ msgid "Progress"
 msgstr "Progreso"
 
 msgid "Add more events after this one"
-msgstr "Agregar eventos después de este"
+msgstr "Agrego más eventos después de este"
 
 msgid "Edit Container"
 msgstr "Edito Contenedor"
@@ -530,7 +530,7 @@ msgid "New"
 msgstr "Nuevo"
 
 msgid "Create a new timeline"
-msgstr "Creo una nueva linea de tiempo"
+msgstr "Creo una nueva línea de tiempo"
 
 msgid "File Timeline..."
 msgstr "Archivo Timeline..."
@@ -551,7 +551,7 @@ msgid "Save As..."
 msgstr "Guardar Como ..."
 
 msgid "Import timeline..."
-msgstr "Importar liena de tiempo ..."
+msgstr "Importar línea de tiempo ..."
 
 msgid "&Export Current view to Image..."
 msgstr "&Exporto la vista actual a imagen ..."
@@ -560,10 +560,10 @@ msgid "Export the current view to a PNG image"
 msgstr "Exporto la vista actual a imagen PNG"
 
 msgid "&Export Whole Timeline to Images..."
-msgstr "&Exporto la linea de tiempo completa a imágenes ..."
+msgstr "&Exporto la línea de tiempo completa a imágenes ..."
 
 msgid "Export whole Timeline to PNG images"
-msgstr "Exporto la linea de tiempo completa a imágenes PNG"
+msgstr "Exporto la línea de tiempo completa a imágenes PNG"
 
 msgid "&Export to SVG..."
 msgstr "&Exporto a SVG ..."
@@ -653,7 +653,7 @@ msgid "&Contents\tF1"
 msgstr "&Contenidos\tF1"
 
 msgid "Getting started &tutorial"
-msgstr "Comienza &tutorial"
+msgstr "Comienzo &tutorial"
 
 msgid "Give &Feedback..."
 msgstr "Da &Retroalimentación"
@@ -674,7 +674,7 @@ msgid "SVG files"
 msgstr "Archivos SVG"
 
 msgid "Create Timeline"
-msgstr "Creo linea de tiempo"
+msgstr "Creo línea de tiempo"
 
 msgid "The specified timeline already exists."
 msgstr "Esta línea de tiempo ya existe."
@@ -686,10 +686,10 @@ msgid "Information"
 msgstr "Información"
 
 msgid "Open Timeline"
-msgstr "Abro linea de tiempo"
+msgstr "Abro línea de tiempo"
 
 msgid "Save Timeline As"
-msgstr "Guardo linea de tiempo"
+msgstr "Guardo línea de tiempo"
 
 msgid ""
 "Could not find pysvg Python package. It is needed to export to SVG. See the "
@@ -701,7 +701,7 @@ msgstr ""
 "instrucciones sobre cómo instalarlo."
 
 msgid "Export to SVG"
-msgstr "Exporte a SVG"
+msgstr "Exporto a SVG"
 
 msgid "Unable to write configuration file."
 msgstr "Imposible escribir archivo de configuración"
@@ -763,7 +763,7 @@ msgid "Week start on:"
 msgstr "Las semanas comienzan en:"
 
 msgid "Open most recent timeline on startup"
-msgstr "Abro linea de tiempo más reciente al comenzar"
+msgstr "Abro línea de tiempo más reciente al comenzar"
 
 msgid "Use inertial scrolling"
 msgstr "Uso desplazamiento inercial"
@@ -966,7 +966,7 @@ msgstr ""
 "el futuro.\n"
 
 msgid "Can multiple users work with the same timeline?"
-msgstr "Múltiples usuarios, ¿pueden trabajar sobre la misma linea de tiempo?"
+msgstr "Múltiples usuarios, ¿pueden trabajar sobre la misma línea de tiempo?"
 
 msgid ""
 "\n"
@@ -985,16 +985,16 @@ msgid ""
 msgstr ""
 "\n"
 "Existe algún soporte para múltiples usuarios que trabajen sobre el mismo "
-"archivo de linea de tiempo.\n"
+"archivo de línea de tiempo.\n"
 "\n"
 "Cuando trate de realizar un cambio y alguien más haya hecho un cambio, se le "
 "solicitará realizar una de dos opciones:\n"
 "\n"
-"- Fijar la linea de tiempo en modo solo lectura.\n"
-"- Sincronizar la linea de tiempo.\n"
+"- Fijar la línea de tiempo en modo solo lectura.\n"
+"- Sincronizar la línea de tiempo.\n"
 " \n"
-"Durante su acción de edición la linea de tiempo está asegurada respecto de "
-"cambio de otros. SI trata de editar una linea de tiempo cunado esté "
+"Durante su acción de edición la línea de tiempo está asegurada respecto de "
+"cambio de otros. SI trata de editar una línea de tiempo cunado esté "
 "asegurada por otro, Ud. será notificado/a sobre esta situación.\n"
 
 msgid "Timeline"
@@ -1015,21 +1015,21 @@ msgid ""
 "displayed above the line.\n"
 msgstr ""
 "\n"
-"La linea de tiempo muestra fechas acorde al calendario gregoriano en el eje "
+"La línea de tiempo muestra fechas acorde al calendario gregoriano en el eje "
 "de las abscisas (x). Actualmente la fecha más temprana está limitada al "
 "calendario juliano 0 (4714 aC, 11, 24).\n"
 "\n"
-"Versiones futuras podrían soportar carios tipos de lineas de tiempo, de "
+"Versiones futuras podrían soportar carios tipos de líneas de tiempo, de "
 "forma que, por ejemplo, se pueda especificar un lapso en términos del número "
 "de minutos a partir de un inicio. Si está interesado en tal característica, "
 "por favor póngase en contacto.\n"
 "\n"
-"La linea de tiempo está dividida en dos áreas con una una linea divisora "
+"La línea de tiempo está dividida en dos áreas con una una línea divisora "
 "horizontal ajustable. Eventos de períodos de tiempo se muestran bajo la "
-"linea y eventos puntuales, sobre ella.\n"
+"línea y eventos puntuales, sobre ella.\n"
 
 msgid "Scrolling Timeline"
-msgstr "Desplazando linea de tiempo"
+msgstr "Desplazando línea de tiempo"
 
 msgid ""
 "\n"
@@ -1047,7 +1047,7 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"Una linea de tiempo puede ser desplazada tanto horizontalmente (a lo largo "
+"Una línea de tiempo puede ser desplazada tanto horizontalmente (a lo largo "
 "del eje del tiempo), como verticalmente (a loa largo del eje del evento)\n"
 "\n"
 "Existen dos formas de desplazamiento horizontal. Puede usar indistintamente "
@@ -1056,12 +1056,12 @@ msgstr ""
 "\n"
 "Para desplazamiento vertival, apriete la tecla Shift y Ctrl y gire la rueda "
 "del ratón.\n"
-"Los eventos son desplazados desde y hacia la linea divisora separando "
+"Los eventos son desplazados desde y hacia la línea divisora separando "
 "eventos puntuales y por período de tiempo.\n"
 "\n"
 
 msgid "Zooming Timeline"
-msgstr "Agrando linea de tiempo"
+msgstr "Agrando línea de tiempo"
 
 msgid ""
 "\n"
@@ -1073,7 +1073,7 @@ msgid ""
 "To zoom vertically, hold down the Alt-key and scroll the mouse wheel.\n"
 msgstr ""
 "\n"
-"Una linea de tiempo puede ser agrandada tanto horizontal- (a lo largo del "
+"Una línea de tiempo puede ser agrandada tanto horizontal- (a lo largo del "
 "eje del tiempo) como verticalmente (a lo largo del eje de evento)\n"
 "\n"
 "Para agrandar horizontalmente, apriete la tecla Ctrl y gire la rueda de "
@@ -1092,8 +1092,8 @@ msgid ""
 "period.\n"
 msgstr ""
 "\n"
-"Un evento es el tipo básico de dato para representar la información de linea "
-"de tiempo. Debe especificar dónde será ubicada en la linea de tiempo (cuando "
+"Un evento es el tipo básico de dato para representar la información de línea "
+"de tiempo. Debe especificar dónde será ubicada en la línea de tiempo (cuando "
 "el evento sucedió). Esto puede ser tanto un punto específico en el tiempo o "
 "un período.\n"
 
@@ -1126,8 +1126,7 @@ msgstr ""
 " - Confuso - DIbuje el comienzo y término de un evento confuso, para indicar "
 "que los tiempos exactos son confusos.\n"
 " - Asegurado - Los puntos de Comienzo y Término no pueden ser cambiados.\n"
-" - Termina hoy - El punto de Teérmino está fijado siempre a la fecha "
-"actual.\n"
+" - Termina hoy - El punto de Término está fijado siempre a la fecha actual.\n"
 " - Descripción - La descripción de un evento que es mostrado en la burbuja.\n"
 " - Ícono - Ícono de imagen mostrada en la burbuja.\n"
 " - Alerta - Un diálogo de alerta se abre a la hora de alerta especificada..\n"
@@ -1241,7 +1240,7 @@ msgstr ""
 "eventos.\n"
 
 msgid "Import timeline"
-msgstr "Importa línea de tiempo"
+msgstr "Importo línea de tiempo"
 
 msgid ""
 "\n"
@@ -1251,10 +1250,10 @@ msgid ""
 "select the timeline to be imported.\n"
 msgstr ""
 "\n"
-"Esta caracterísitca puede ser usada para fusionar dos líneas de tiempo en "
+"Esta característica puede ser usada para fusionar dos líneas de tiempo en "
 "una.\n"
 "\n"
-"Primero abra una línea de tiempo y luego seleccione el meú 'Archivo -> "
+"Primero abra una línea de tiempo y luego seleccione el menú 'Archivo -> "
 "Importar línea de tiempo ...' y seleccione la línea de tiempo a importar.\n"
 
 msgid "Event Containers"
@@ -1326,7 +1325,7 @@ msgid ""
 msgstr ""
 "\n"
 "Si usted tiene más preguntas sobre la línea de tiempo o si quiere contactar "
-"con los usuarios y desarrolladores de la linea de tiempo, envíe un correo a "
+"con los usuarios y desarrolladores de la línea de tiempo, envíe un correo a "
 "la lista de correo de usuarios: <thetimelineproj-user at lists.sourceforge."
 "net>. Por favor, escriba en inglés.\n"
 
@@ -1523,7 +1522,7 @@ msgid "Navigate"
 msgstr "Navegar"
 
 msgid "Import..."
-msgstr "Importo\t ..."
+msgstr "Importo ..."
 
 msgid "Export Current view to Image..."
 msgstr "Exporto vista Actual a Imagen ..."
@@ -1680,7 +1679,7 @@ msgid ""
 "\n"
 "%s"
 msgstr ""
-"No se pudo recuperar la información de versión de:\n"
+"No puedo recuperar la información de versión de:\n"
 "\n"
 "%s"
 
@@ -1690,7 +1689,7 @@ msgid ""
 "\n"
 "%s"
 msgstr ""
-"No se pudo leer la información de versión de:\n"
+"No pude leer la información de versión de:\n"
 "\n"
 "%s"
 
@@ -2247,7 +2246,7 @@ msgid "Activate patient and remove from waiting list."
 msgstr "Activar el paciente y removerlo de la lista de espera."
 
 msgid "Add the active patient to the waiting list."
-msgstr "Agregar y activar un paciente en la lista de espera."
+msgstr "Agrego el paciente activo a la lista de espera."
 
 msgid "Remove selected patient from the waiting list."
 msgstr "Remover el paciente seleccionado de la lista de espera."
@@ -2326,7 +2325,7 @@ msgstr ""
 "Ya sea para mostrar todas las sustancias o solo las de la ingesta aprobada."
 
 msgid "Add a substance."
-msgstr "Agrega sustancia."
+msgstr "Agrego una substancia."
 
 msgid "Edit the selected substance intake entry."
 msgstr "Edita la ingesta de la sustancia seleccionada."
@@ -2374,7 +2373,7 @@ msgid ""
 msgstr ""
 "Escriba una prescripción basada alternativamente en\n"
 "\n"
-"- las lineas seleccionadas\n"
+"- las líneas seleccionadas\n"
 "- una copia de la prescripción más reciente"
 
 msgid "Report an Adverse Drug Reaction."
@@ -2393,7 +2392,7 @@ msgid "&Search"
 msgstr "&Búsqueda"
 
 msgid "Suggest"
-msgstr "Sugerir\t"
+msgstr "Sugiero"
 
 msgid "Set"
 msgstr "Fijar"
@@ -2405,7 +2404,7 @@ 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."
+msgstr "Sugiero una ID de paciente a partir del paciente activo."
 
 msgid "Search term:"
 msgstr "Busca término:"
@@ -2447,10 +2446,8 @@ msgstr ""
 "Mostrar el episodio asociado a este documento. Seleccione otro o escriba el "
 "nombre de un episodio nuevo para asociarlo con otro."
 
-#, fuzzy
 msgid "The organizational unit this document originates from."
-msgstr ""
-"Opcional: la organización (unidad) desde la cual se originó este documento."
+msgstr "La unidad de organización desde la cual se originó este documento."
 
 msgid "Enter the date of creation of the document."
 msgstr "Ingrese la fecha de creación del documento."
@@ -2488,9 +2485,9 @@ msgid ""
 msgstr ""
 "Muesta evaluaciones previas de esta parte del documento\n"
 "\n"
-"La primera linea (marcada con un ícono) mostrará la evaluación previa, si "
+"La primera línea (marcada con un ícono) mostrará la evaluación previa, si "
 "existe alguna.\n"
-"La segunda linea (marcada con una barra azul) muestra la evaluación del "
+"La segunda línea (marcada con una barra azul) muestra la evaluación del "
 "proveedor responsable, si existe.\n"
 "\n"
 "  Puede editar si revisión a continuación."
@@ -3005,7 +3002,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."
@@ -3084,7 +3081,7 @@ msgid ""
 "Defaults to 0 meaning \"no VAT\"."
 msgstr ""
 "El Impuesto al Valor Agregado (IVA) en porcentaje a aplicar a este cargo.\n"
-"Por defectos es 0, o sea, \"sin IVA\"."
+"Por defecto es 0, o sea, \"sin IVA\"."
 
 msgid "Optional: A comment on this billable."
 msgstr "Opcional: un comentario acerca de este cargo."
@@ -3209,7 +3206,7 @@ msgid "E&xport area"
 msgstr "Área de &Exportación"
 
 msgid "Refresh the timeline display."
-msgstr "Refresca la vista de linea de tiempo."
+msgstr "Refresca la vista de línea de tiempo."
 
 msgid "Save timeline as SVG image."
 msgstr "Guarda la línea de tiempo como imagen SVG."
@@ -3308,7 +3305,7 @@ msgid "Load template data from a file."
 msgstr "Cargar los datos de plantilla de un archivo."
 
 msgid "Export the form template into a file."
-msgstr "Exporte la forma de plantilla a un archivo."
+msgstr "Exporto la forma de plantilla a un archivo."
 
 msgid "Alias"
 msgstr "Alias"
@@ -3660,14 +3657,14 @@ msgstr ""
 "también)."
 
 msgid "Add a new message."
-msgstr "Agregue un nuevo mensaje."
+msgstr "Agrego un nuevo mensaje."
 
 msgid "This shows the entirety of the selected message in your Inbox."
 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:"
@@ -3920,7 +3917,7 @@ msgid "Data of current patient to be displayed here."
 msgstr "Datos del paciente actual a ser desplegados acá."
 
 msgid "Enlist"
-msgstr "Enlistar"
+msgstr "Enlisto"
 
 msgid "Enlist person as GNUmed user"
 msgstr "Enliste la persona como usuario de GNUmed"
@@ -4066,7 +4063,7 @@ msgid "The provider who administered the vaccine, if known."
 msgstr "El proveedor que administró la vacuna, si se conoce."
 
 msgid "Record any adverse reactions to this vaccine."
-msgstr "Registre cualquier reacción adversa a esta vacuna."
+msgstr "Registro cualquier reacción adversa a esta vacuna."
 
 msgid "Report this event as an adverse drug reaction."
 msgstr "Divulgue este acontecimiento como reacción adversa a la vacuna."
@@ -4126,7 +4123,7 @@ msgid "Manage test types."
 msgstr "Administro tipos de test."
 
 msgid "Add measurments."
-msgstr "Agregue mediciones."
+msgstr "Agrego mediciones."
 
 msgid "Show all measurements in a chronological list."
 msgstr "Muestro todas las mediciones en una lista cronológica."
@@ -4181,7 +4178,7 @@ msgid "Print &remotely"
 msgstr "Imprimir &remotamente"
 
 msgid "&Export only"
-msgstr "&Export solamente"
+msgstr "&Exporto solamente"
 
 msgid "&Archive only"
 msgstr "&Guardo solamente"
@@ -4295,7 +4292,7 @@ msgid "During which hospitalization was this procedure performed."
 msgstr "Durante cuál hospitalización se realizó este procedimiento."
 
 msgid "Add a hospitalization."
-msgstr "Agrega una hospitalización."
+msgstr "Agrego una hospitalización."
 
 msgid "Codes relevant to this procedure."
 msgstr "Códigos relevantes para este procedimiento."
@@ -4475,7 +4472,7 @@ msgid "right extra"
 msgstr "derecha extra"
 
 msgid "Add a new item to the list."
-msgstr "Agregar un ítem a la lista."
+msgstr "Agrego un nuevo ítem a la lista."
 
 msgid "Edit the selected item."
 msgstr "Editar el ítem seleccionado."
@@ -4523,10 +4520,10 @@ msgid "Show the topmost selected document."
 msgstr "Muestra el documentos seleccionado más alto."
 
 msgid "Add document(s) from file(s)."
-msgstr "Agrega documento(s) desde el/los archivos)."
+msgstr "Agrego documento(s) desde el (los) archivo(s)."
 
 msgid "Add document(s) from archive."
-msgstr "Agrega documentos(s) desde archivo."
+msgstr "Agrego documentos(s) desde archivo."
 
 msgid "Acquire images from image source (scanner, ...)."
 msgstr "Obtiene imagen desde una fuente (scanner, ...)"
@@ -4596,12 +4593,6 @@ msgstr "Detalles del paciente a unir"
 msgid "Select the paperwork receiver:"
 msgstr "Seleccione al receptor del papeleo:"
 
-msgid "&Addresses"
-msgstr "&Direcciones"
-
-msgid "Or&Ganizations"
-msgstr "Or&Ganizaciones"
-
 msgid "&OK"
 msgstr "&OK"
 
@@ -4629,26 +4620,52 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr "Administra lista genérica de direcciones."
 
-msgid "Manage known organizations and units thereof."
-msgstr "Maneja organizaciones conocidas y sus unidades."
-
 msgid "Select the organizational unit you want to write to."
 msgstr "Selecciona la unidad organizacional a la que Ud. le quiere escribir."
 
+msgid "Manage known organizations and units thereof."
+msgstr "Maneja organizaciones conocidas y sus unidades."
+
 msgid "Use the above name and address."
 msgstr "Use los nombres y dirección de arriba."
 
 msgid "Abort the receiver selection."
 msgstr "Aborte la selección del receptor."
 
-msgid "Selected receiver"
-msgstr "Selecciona receptor."
-
 msgid "Address"
 msgstr "Dirección"
 
-msgid "Manage:"
-msgstr "Administra:"
+#, fuzzy
+msgid "Selected Receiver"
+msgstr "Selecciona receptor."
+
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
+msgstr ""
 
 msgid "Quick picks"
 msgstr "Selecciones rápidas"
@@ -5054,7 +5071,7 @@ msgid "Cancel this dialog."
 msgstr "Cerrar este diálogo."
 
 msgid "Add a new item to the list above."
-msgstr "Agregar un ítem a la lista de arriba."
+msgstr "Agrego un ítem a la lista de arriba."
 
 msgid "Edit the (first or only) item selected in the list above."
 msgstr "Editar el (primer o único) ítem seleccionado de la lista de arriba."
@@ -5563,9 +5580,8 @@ msgstr "Cerrar este diálogo."
 msgid "Age"
 msgstr "Edad"
 
-#, fuzzy
 msgid "Review status"
-msgstr "revisar estado"
+msgstr "Reviso estado"
 
 msgid "Health issue"
 msgstr "Problema de salud"
@@ -5574,26 +5590,25 @@ msgid "Organization"
 msgstr "Organización"
 
 msgid "Sort newest documents to top of tree."
-msgstr "Ordenar los documentos más nuevos al principio del árbol."
+msgstr "Ordeno los documentos más nuevos al principio del árbol."
 
 msgid "Sort unreviewed documents to top of tree."
-msgstr "Ordenar los documentos sin revisar al principio del árbol."
+msgstr "Ordeno los documentos sin revisar al principio del árbol."
 
 msgid "Sort documents by the episode they belong to."
-msgstr "Ordenar documentos por el episodio al que pertenecen."
+msgstr "Ordeno documentos por el episodio al que pertenecen."
 
 msgid "Sort documents by the health issue they belong to."
 msgstr "Ordene documentos por el problema de salud al cual pertenecen."
 
 msgid "Sort documents by their type."
-msgstr "Ordenar documentos por tipo."
+msgstr "Ordeno documentos por tipo."
 
-#, fuzzy
 msgid "Sort documents by the organization they are from."
-msgstr "Ordenar documentos por el episodio al que pertenecen."
+msgstr "Ordeno documentos por la organización a la que pertenecen."
 
 msgid "Sort documents by"
-msgstr "Ordenar documentos por"
+msgstr "Ordeno documentos por"
 
 msgid "Se&lect"
 msgstr "Se&lecciona"
@@ -5849,6 +5864,9 @@ msgstr "Droga"
 msgid "Research:"
 msgstr "Investigación:"
 
+msgid "Manage:"
+msgstr "Administra:"
+
 msgid "Certainty:"
 msgstr "Certeza:"
 
@@ -5884,10 +5902,10 @@ msgstr "El tipo de documento en el idioma local"
 
 msgid "Change translation of selected document type for your local language."
 msgstr ""
-"Cambiar la traducción del tipo de documento seleccionado a su idioma local."
+"Cambio la traducción del tipo de documento seleccionado a su idioma local."
 
 msgid "Add above input as a new document type."
-msgstr "Agregar la entrada de arriba como un nuevo tipo de documento."
+msgstr "Agrego la entrada de arriba como un nuevo tipo de documento."
 
 msgid ""
 "Delete selected document type. Note that you can only delete document types "
@@ -5993,7 +6011,7 @@ msgid "The total value of this bill after VAT has been applied."
 msgstr "El valor total de esta cuenta después de aplicado el IVA."
 
 msgid "Add an arbitrary comment on this bill."
-msgstr "Agregue un comentario cualquiera a esta cuenta."
+msgstr "Agrego un comentario cualquiera a esta cuenta."
 
 msgid "Invoice ID"
 msgstr "ID de la factura"
@@ -6018,13 +6036,11 @@ msgstr ""
 msgid "Channel"
 msgstr "Canal"
 
-#, fuzzy
 msgid "&Modification"
-msgstr "&Medicación"
+msgstr "&Modificación"
 
-#, fuzzy
 msgid "&Event"
-msgstr "Evento"
+msgstr "&Evento"
 
 msgid "Order by start of encounter a chart entry is linked to."
 msgstr "Ordeno por inicio del encuentro enlazado a un ingreso de cartilla."
@@ -6120,7 +6136,7 @@ msgid "&Insert"
 msgstr "&Insertar"
 
 msgid "Add billing item to current encounter"
-msgstr "Agregar ítem cargable a la consulta actual."
+msgstr "Agrego ítem cargable a la consulta actual."
 
 msgid ""
 "Select - by code or part of the description - a billable item to add to the "
@@ -6140,7 +6156,7 @@ msgstr ""
 "ítem. Será mostrado en la cuenta."
 
 msgid "Add the selected billing item to the patient."
-msgstr "Agrega el ítem cargable seleccionado al paciente."
+msgstr "Agrego el ítem cargable seleccionado al paciente."
 
 msgid "Item:"
 msgstr "Ítem:"
@@ -6377,7 +6393,7 @@ msgid "Do not reformat text"
 msgstr "No reformatee texto"
 
 msgid "Generic multi line text entry dialog"
-msgstr "Dialogo genérico de entrada de texto multilinea"
+msgstr "Dialogo genérico de entrada de texto multilínea"
 
 msgid ""
 "Leave this unchecked so that GNUmed can check for characters that need "
@@ -6721,7 +6737,7 @@ msgid "The encounter."
 msgstr "La cita."
 
 msgid "Start a new encounter for the active patient."
-msgstr "Comienza una nueva cita para el paciente activo."
+msgstr "Comienzo una nueva cita para el paciente activo."
 
 msgid "Clinically relevant"
 msgstr "Clínicamente relevante"
@@ -6829,7 +6845,7 @@ msgid "Discharge staff"
 msgstr "Despedir personal"
 
 msgid "Enlist current patient"
-msgstr "Enlistar paciente acutual"
+msgstr "Enlisto paciente acutual"
 
 msgid "button_1"
 msgstr "button_1"
@@ -6844,7 +6860,7 @@ msgid "Discharge the selected person from the staff list."
 msgstr "Eliminar la persona selecionada de la lista de personal."
 
 msgid "Add a new user to the GNUmed system."
-msgstr "Agregar un usuario a GNUmed."
+msgstr "Agrego un usuario a GNUmed."
 
 msgid ""
 "Required: The database account assigned to this staff member. Must exist in "
@@ -7014,7 +7030,7 @@ msgid ""
 "suppression\n"
 "for this patient"
 msgstr ""
-"Racional para\n"
+"Razón fundada para\n"
 "supresión\n"
 "para este paciente"
 
@@ -7076,7 +7092,7 @@ msgstr ""
 "contactos."
 
 msgid "Add a visual progress note for this episode."
-msgstr "Agregue una nota de progreso visual para este episodio."
+msgstr "Agrego una nota de progreso visual para este episodio."
 
 msgid "tab1"
 msgstr "tab1"
@@ -7152,10 +7168,10 @@ msgid "&Last modification time"
 msgstr "Ú&ltima fecha de modificación"
 
 msgid "Show journal ordered by encounter."
-msgstr "Muestra diario ordenado por citas."
+msgstr "Muestra libro diario ordenado por citas."
 
 msgid "Show journal ordered by time of last modification."
-msgstr "Muestra diario ordenado por fecha de últimas modificaciones."
+msgstr "Muestra libro diario ordenado por fecha de últimas modificaciones."
 
 msgid "Show search dialog."
 msgstr "Muestra diálogo de búsqueda."
@@ -7435,9 +7451,10 @@ msgstr "ÍMC: peso no numérico"
 msgid "BMI: weight not in kg or g"
 msgstr "ÍMC: peso no expresado en kg o g"
 
-#, fuzzy, python-format
+#, python-format
 msgid "BMI (Quetelet): formula does not apply at age [%s] (0 < age < 18)"
-msgstr "ÍMC (Quetelet): fórmula no es válida para la edad de [%s] (edad <18)"
+msgstr ""
+"ÍMC (Quetelet): fórmula no es válida para la edad de [%s] (0 < edad < 18)"
 
 #, python-format
 msgid "BMI (Quetelet): %.2f %s"
@@ -7459,52 +7476,41 @@ msgstr "ERROR: estado alérgico desconocido [%s]"
 msgid "definite"
 msgstr "definido"
 
-#, fuzzy
 msgid "indefinite"
-msgstr "definido"
+msgstr "indefinido"
 
-#, fuzzy
 msgid "Reaction:"
 msgstr "Reacción"
 
-#, fuzzy
 msgid "Noted:"
-msgstr "Anotado"
+msgstr "Anotado:"
 
-#, fuzzy
 msgid "Allergene:"
-msgstr "Alergias"
+msgstr "Alergénico:"
 
-#, fuzzy
 msgid "Substance:"
-msgstr "Sustancia"
+msgstr "Sustancia:"
 
-#, fuzzy
 msgid "Code:"
-msgstr "Códigos:"
+msgstr "Código:"
 
-#, fuzzy
 msgid "ATC:"
-msgstr "ATQ: %s\n"
+msgstr "ATQ:"
 
-#, fuzzy
 msgid "Specific to:"
-msgstr "Poner estado en:"
+msgstr "Específico para:"
 
-#, fuzzy
 msgid "this substance only"
-msgstr "abuso de sustancia activa"
+msgstr "solo esta substancia"
 
-#, fuzzy
 msgid "drug class"
-msgstr "Clases de Drogas"
+msgstr "Clase de Droga"
 
 msgid "unknown"
 msgstr "desconocido/a"
 
-#, fuzzy
 msgid "Generics:"
-msgstr "Genéricos"
+msgstr "Genéricos:"
 
 msgid "Medication history"
 msgstr "Historial de medicamentos"
@@ -7705,9 +7711,9 @@ msgstr " (planeado para %s%s)"
 msgid ", planned for %s%s"
 msgstr ", planeado para %s%s"
 
-#, fuzzy, python-format
+#, python-format
 msgid "%s %s ago (for %s: %s %s %s)"
-msgstr "%s atrás (para %s: %s %s %s)"
+msgstr "%s %s atrás (para %s: %s %s %s)"
 
 msgid "Additional notes"
 msgstr "Notas adicionales"
@@ -7784,7 +7790,7 @@ msgid "HL7 Source"
 msgstr "Fuente HL7"
 
 msgid "HL7 data size"
-msgstr "Tamaños de datos HL7"
+msgstr "Tamaño de datos HL7"
 
 #, python-format
 msgid "%s bytes"
@@ -7810,7 +7816,7 @@ msgstr "%s campos"
 
 #, python-format
 msgid "HL7 %s field"
-msgstr "HL7 %s campo"
+msgstr "Campo HL7 %s"
 
 msgid "<EMTPY>"
 msgstr "<VACÍO>"
@@ -7824,7 +7830,7 @@ msgid ""
 "Imported HL7 file [%s]:\n"
 " lab \"%s\" (%s@%s), %s results (%s)"
 msgstr ""
-"Importado archivo HL7 [%s]:\n"
+"Archivo HL7 importado [%s]:\n"
 " lab \"%s\" (%s@%s), %s resultados (%s)"
 
 msgid "list of imported HL7 data files"
@@ -7903,37 +7909,37 @@ msgstr "Error al correr pdftk. No se puede llenar plantilla PDF."
 msgid "Error running pdftk. Cannot flatten filled in PDF form."
 msgstr "Error corriendo pdftk. No puedo sellar formulario PDF."
 
-#, fuzzy, python-format
+#, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
 "%(code_region)s, %(code_country)s (%(l10n_region)s, %(l10n_country)s)"
 msgstr ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_region)s, %(code_country)s"
+"%(code_region)s, %(code_country)s (%(l10n_region)s, %(l10n_country)s)"
 
-#, fuzzy, python-format
+#, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
 "%(code_region)s, %(code_country)s (%(l10n_region)s, %(l10n_country)s)"
 msgstr ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_region)s, %(code_country)s"
+"%(code_region)s, %(code_country)s (%(l10n_region)s, %(l10n_country)s)"
 
-#, fuzzy, python-format
+#, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
 "%(code_region)s, %(code_country)s (%(l10n_region)s, %(l10n_country)s)"
 msgstr ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
-"%(code_region)s, %(code_country)s"
+"%(code_region)s, %(code_country)s (%(l10n_region)s, %(l10n_country)s)"
 
-#, fuzzy, python-format
+#, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s (%(l10n_region)s, %(l10n_country)s)"
 msgstr ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
-"%(code_country)s"
+"%(code_country)s (%(l10n_region)s, %(l10n_country)s)"
 
 #, python-format
 msgid ""
@@ -8051,7 +8057,7 @@ msgid "Hospital stay"
 msgstr "Hospitalización"
 
 msgid "Performed procedure"
-msgstr " Procedimiento realizado"
+msgstr "Procedimiento realizado"
 
 msgid "Family history"
 msgstr "Historial Familiar"
@@ -8059,9 +8065,8 @@ msgstr "Historial Familiar"
 msgid "Document"
 msgstr "Documento"
 
-#, fuzzy
 msgid "Inbox message"
-msgstr "Editando bandeja de entrada de mensajes"
+msgstr "Bandeja de entrada"
 
 #, python-format
 msgid "unmapped entry type from table [%s]"
@@ -8354,6 +8359,9 @@ msgstr "Fuente: %s\n"
 msgid "Language: %s\n"
 msgstr "Idioma: %s\n"
 
+msgid "Rationale for suppression:"
+msgstr "Razón fundada para supresión:"
+
 msgid "Suppressed active dynamic hint"
 msgstr "Suprime ayuda dinámica activa"
 
@@ -8452,7 +8460,7 @@ msgstr "Asunto: %s"
 
 #, python-format
 msgid "Health issue: %s"
-msgstr "Tema de salud: %s"
+msgstr "Problema de salud: %s"
 
 msgid "also treated here"
 msgstr "también tratado acá"
@@ -8563,7 +8571,7 @@ msgid "U (HL7: mark as final (I/P/R/S -> F, value Unchanged)"
 msgstr "N (HL7: marcado como final (I/P/R/S -> F, valor no cambiado)"
 
 msgid "W (HL7: original Wrong (say, wrong patient))"
-msgstr "E (HL7: original erróneo (say, paciente erróneo))"
+msgstr "E (HL7: original erróneo (digamos, paciente erróneo))"
 
 #, python-format
 msgid "Test panel \"%s\"          [#%s]\n"
@@ -8589,7 +8597,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 " Agrego el siguiente tipo de examen:\n"
 
 #, python-format
 msgid " Most recent (%s): %s%s%s"
@@ -8836,7 +8844,7 @@ msgstr ""
 msgid ""
 "blank line inserted to allow for discontinued line drawing of same-day values"
 msgstr ""
-"linea en blanco insertada para permitir dibujo de linea segmentada de "
+"línea en blanco insertada para permitir dibujo de línea segmentada de "
 "valores del mismo día"
 
 msgid "The lab request already exists but belongs to a different patient."
@@ -8883,7 +8891,7 @@ msgstr " Parte %s: %s %s(%s Bytes)\n"
 
 #, python-format
 msgid " Filename: %s%s\n"
-msgstr "Nombre del archivo: %s%s\n"
+msgstr " Nombre del archivo: %s%s\n"
 
 msgid "no parts"
 msgstr "sin partes"
@@ -9241,7 +9249,7 @@ msgstr "No se encontraron contactos por este problema de salud."
 
 #, python-format
 msgid "Encounters: %s (%s - %s):"
-msgstr "Contactos: %s (%s - %s):"
+msgstr "Citas: %s (%s - %s):"
 
 #, python-format
 msgid " Most recent: %s - %s"
@@ -9273,9 +9281,9 @@ msgstr "Vacunaciones:"
 msgid "External care:"
 msgstr "Cuidado externo:"
 
-#, fuzzy, python-format
+#, python-format
 msgid "Health issue: %s%s%s"
-msgstr "Tema de salud: %s"
+msgstr "Problema de salud: %s%s%s"
 
 msgid "Unattributed episodes"
 msgstr "Episodios sin causa aparente"
@@ -9332,11 +9340,9 @@ msgstr "Notas de progreso del contacto más reciente:"
 msgid "Measurements and Results:"
 msgstr "Exámenes y resultados"
 
-#, fuzzy, python-format
+#, python-format
 msgid "Episode: %s%s%s"
-msgstr ""
-"\n"
-"Episodio %s%s%s%s:"
+msgstr "Episodio: %s%s%s"
 
 #, python-format
 msgid "  your time: %s - %s  (@%s = %s%s)\n"
@@ -9364,15 +9370,15 @@ msgstr ""
 msgid "%s other episodes touched upon during this encounter:"
 msgstr "%s otros episodios tratados durante este ccontacto:"
 
-#, fuzzy, python-format
+#, python-format
 msgid "Encounter: %s%s%s"
-msgstr "Contactos: %s (%s - %s):"
+msgstr "Cita: %s%s%s"
 
 msgid " (ongoing)"
 msgstr " (en curso)"
 
 msgid "Health issues"
-msgstr "Tema de salud"
+msgstr "Problemas de salud"
 
 msgid "Episodes"
 msgstr "Episodio"
@@ -9432,7 +9438,7 @@ msgid ""
 "%sLast worked on: %s\n"
 msgstr ""
 "%sEpisodio \"%s\" [%s]\n"
-"%sContactos: %s (%s - %s)\n"
+"%sCitas: %s (%s - %s)\n"
 "%sSe trabajó por última vez en: %s\n"
 
 msgid "Administrative"
@@ -9444,8 +9450,8 @@ msgid ""
 "\n"
 "Please check the log file for details."
 msgstr ""
-"Ha ocurrido un error durante la obtención del\n"
-"volcado textual del RME del paciente activo.\n"
+"Ha ocurrido un error durante la obtención de\n"
+"la descarga textual del RME del paciente activo.\n"
 "\n"
 "Para más información, revise el archivo de log."
 
@@ -9488,7 +9494,7 @@ msgid "Exported: %s\n"
 msgstr "Exportado: %s\n"
 
 msgid "Chronological EMR Journal\n"
-msgstr "Diario Cronológico de la HC\n"
+msgstr "Libro diario Cronológico del RME\n"
 
 msgid "Doc"
 msgstr "Documento"
@@ -10060,7 +10066,7 @@ msgid "all files"
 msgstr "todos los archivos"
 
 msgid "Save EMR extract for MEDISTAR import as..."
-msgstr "Guarde el sumario del RME de MEDISTAR como ..."
+msgstr "Guarde el resumen del RME para que MEDISTAR lo importe como ..."
 
 msgid "Error exporting progress notes for MEDISTAR import."
 msgstr "Error exportando notas de progreso para la importación de MEDISTAR."
@@ -10214,7 +10220,7 @@ 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 "
+"Vacunaciones del Recomendador (X = paciente en régimen, 0 = paciente fuera "
 "de régimen) "
 
 msgid "enrolled regime vaccinations not yet given"
@@ -10685,7 +10691,7 @@ msgid "Recall"
 msgstr "Recordación"
 
 msgid "Add a recall for a vaccination"
-msgstr "Agrega una recordación para una vacunación"
+msgstr "Agrego una recordación para una vacunación"
 
 msgid "Vx schedules"
 msgstr "Programa Vx"
@@ -10814,7 +10820,7 @@ msgid "nicotine"
 msgstr "nicotina"
 
 msgid "ethanol"
-msgstr ""
+msgstr "etanol"
 
 msgid "unit"
 msgstr "unidad"
@@ -11047,7 +11053,7 @@ msgstr ""
 "en el paciente recién atendido:\n"
 
 msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
-msgstr "Edite el hallazgo actual del paciente con el que está POR TERMINAR:"
+msgstr "Edite el encuentro actual del paciente con el que está POR TERMINAR:"
 
 msgid "Adding new person"
 msgstr "Agregando paciente"
@@ -12071,7 +12077,7 @@ msgid "Sudden"
 msgstr "Repentino"
 
 msgid "Type name of disease"
-msgstr "Escriba nombre de la enfermedad"
+msgstr "Escribo nombre de la enfermedad"
 
 msgid ""
 "Today is your lucky day !\n"
@@ -12395,11 +12401,11 @@ msgid ""
 msgstr ""
 "Esta consulta devolvió más de %s resultados.\n"
 "\n"
-"GNUmed solo mostrará las primeras %s lineas.\n"
+"GNUmed solo mostrará las primeras %s líneas.\n"
 "\n"
 "Puede desea acotar los criterios WHERE o\n"
 "utilizar LIMIT y OFFSET, de forma de acertar las\n"
-"lineas por lotes."
+"líneas por lotes."
 
 msgid "Report Generator"
 msgstr "Generador de reporte"
@@ -12414,7 +12420,7 @@ msgid "Message cannot expire before being due."
 msgstr "Mensage no puede expirar antes de estar vencido."
 
 msgid "Adding new inbox message"
-msgstr "Agregando una nueva bandeja de entada de mensajes"
+msgstr "Agregando una nueva bandeja de entrada de mensajes"
 
 msgid "Editing inbox message"
 msgstr "Editando bandeja de entrada de mensajes"
@@ -12642,11 +12648,11 @@ msgid ""
 "Cannot load lab journal.\n"
 "You first need to select a patient."
 msgstr ""
-"No puedo cargar libro de laboratorio.\n"
+"No puedo cargar libro diario de laboratorio.\n"
 "Primero debe seleccionar un paciente."
 
 msgid "loading lab journal"
-msgstr "abriendo libro de laboratorio"
+msgstr "abriendo libro diario de laboratorio"
 
 msgid "pending"
 msgstr "pendiente"
@@ -12878,7 +12884,7 @@ msgstr ""
 
 #, python-format
 msgid "Invalid invoice template [%s - %s (%s)]"
-msgstr "Plantilla de factura inválida [%s - %s (%s)]"
+msgstr "Plantilla inválida de factura [%s - %s (%s)]"
 
 msgid "Printing medication list"
 msgstr "Imprimo lista de medicación"
@@ -13380,14 +13386,14 @@ msgid ""
 "\n"
 "Please select the line you want to insert:"
 msgstr ""
-"¡El fragmento <%s> expande a múltiples lineas!\n"
+"¡El fragmento <%s> expande a múltiples líneas!\n"
 "\n"
-"Este campo de texto puede, sin embargo, ser mantenido una vez por linea.\n"
+"Este campo de texto puede, sin embargo, ser mantenido una vez por línea.\n"
 "\n"
-"Por favor, seleccione la linea que desea insertar:"
+"Por favor, seleccione la línea que desea insertar:"
 
 msgid "Adapting multi-line expansion to single-line text field"
-msgstr "Adapto expansión multi-linea a campo de texto de linea única"
+msgstr "Adapto expansión multi-línea a campo de texto de línea única"
 
 msgid "Keyword expansion lines"
 msgstr "Lineas de expansión de palabra clave"
@@ -13719,13 +13725,11 @@ msgstr "Mapa"
 msgid "Show selected address on map"
 msgstr "Muestro la dirección seleccionada en el mapa."
 
-#, fuzzy
 msgid "Distance"
-msgstr "Sustancia"
+msgstr "Distancia"
 
-#, fuzzy
 msgid "Show distance from your praxis"
-msgstr "Sucursales de su consulta"
+msgstr "Muestro distancia desde su consulta"
 
 msgid "Adding new address"
 msgstr "Agregando una nueva dirección"
@@ -13936,33 +13940,18 @@ msgstr ""
 "\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."
-
-#, fuzzy
 msgid "List Item Actions"
-msgstr "Despliego Acciones sobre los items:"
+msgstr "Despliego Acciones sobre los items"
 
-#, fuzzy
 msgid "List Item Actions (selected: 1 entry)"
-msgstr "Despliego Acciones sobre los items:"
+msgstr "Despliego Acciones sobre los items (seleccionado: 1 entrada)"
 
-#, fuzzy, python-format
+#, python-format
 msgid "List Item Actions (selected: %s entries)"
-msgstr "Despliego Acciones sobre los items:"
+msgstr "Despliego Acciones sobre los items (seleccionados: %s entradas)"
 
 msgid "Add (<INS>)"
-msgstr "Agrega (<INS>)"
+msgstr "Agrego (<INS>)"
 
 msgid "Delete (<DEL>)"
 msgstr "Eliminar (<DEL>)"
@@ -13974,77 +13963,67 @@ msgstr "Encuentra (<CTRL-F>)"
 msgid "Find next [%s] (<CTRL-N>)"
 msgstr "Encuentra siguiente [%s] (<CTRL-N>)"
 
-#, fuzzy
 msgid "&All rows"
-msgstr "&Todos los usuarios"
+msgstr "&Todos las filas"
 
 msgid "All rows as &CSV"
-msgstr ""
+msgstr "Todas las filas como &CSV"
 
-#, fuzzy
 msgid "&Tooltips of all rows"
-msgstr "Herramientas de ayuda sobre filas seleccionadas"
+msgstr "&Herramientas de ayuda para todas las filas"
 
 msgid "&Data of all rows"
-msgstr ""
+msgstr "&Datos de todas las filas"
 
-#, fuzzy
 msgid "&Selected rows"
-msgstr "&Seleccionar"
+msgstr "Filas &seleccionadas"
 
 msgid "&Selected rows as CSV"
-msgstr ""
+msgstr "&Filas seleccionadas como CSV"
 
-#, fuzzy
 msgid "&Tooltips of selected rows"
-msgstr "Herramientas de ayuda sobre filas seleccionadas"
+msgstr "&Herramientas de ayuda para filas seleccionadas"
 
-#, fuzzy
 msgid "&Data of selected rows"
-msgstr "Herramientas de ayuda sobre filas seleccionadas"
+msgstr "&Datos de filas seleccionadas"
 
 msgid "Tooltips of selected rows"
 msgstr "Herramientas de ayuda sobre filas seleccionadas"
 
-#, fuzzy
 msgid "Data (formatted as text) of selected rows"
-msgstr "Datos de fila (en una linea)"
+msgstr "Datos (formateados como texto) de filas seleccionadas"
 
 msgid "Content (as one line each) of selected rows"
-msgstr "Contenido (individual por linea) de las filas seleccionadas"
+msgstr "Contenido (individual por línea) de las filas seleccionadas"
 
 msgid "Tooltip of current row"
 msgstr "Herrmienta de ayuda de la fila actual"
 
-#, fuzzy
 msgid "Data (formatted as text) of current row"
-msgstr "Datos de fila (en una linea)"
+msgstr "Datos (formateados como texto) de fila actual"
 
-#, fuzzy
 msgid "Content (as one line) of current row"
-msgstr "Contenido de fila (como una linea)"
+msgstr "Contenido (como una línea) de fila actual"
 
-#, fuzzy
 msgid "Content (one line per column) of current row"
-msgstr "Contenido de linea (una linea por columna )"
+msgstr "Contenido (una línea por columna ) de fila actual"
 
-#, fuzzy, python-format
+#, python-format
 msgid "Column &%s (current row): \"%s\" [#%s]"
-msgstr "Columna &%s: \"%s\" [#%s]"
+msgstr "Columna &%s (fila actual): \"%s\" [#%s]"
 
-#, fuzzy, python-format
+#, python-format
 msgid "Column &%s (current row): %s"
-msgstr "Columna &%s: %s"
+msgstr "Columna &%s (fila actual): %s"
 
-#, fuzzy
 msgid "&Save to file..."
-msgstr "Guardar Como ..."
+msgstr "&Guardar en archivo ..."
 
 msgid "&Copy to clipboard..."
 msgstr "&Copiar al portapapeles ..."
 
 msgid "Append (&+) to clipboard..."
-msgstr "Agregue (&+) al portapapeles ..."
+msgstr "Agrego (&+) al portapapeles ..."
 
 #, python-format
 msgid ""
@@ -14074,27 +14053,27 @@ msgstr ""
 
 #, python-format
 msgid "All rows saved to [%s]."
-msgstr ""
+msgstr "Todas las filas guardadas en [%s]."
 
 #, python-format
 msgid "All tooltips saved to [%s]."
-msgstr ""
+msgstr "Todas las herramientas de ayuda guardades en [%s]."
 
 #, python-format
 msgid "All data saved to [%s]."
-msgstr ""
+msgstr "Todos los datos guardados en [%s]."
 
-#, fuzzy, python-format
+#, python-format
 msgid "Selected rows saved to [%s]."
-msgstr "Definición de reporte borrado [%s]."
+msgstr "Filas seleccionadas guardadas en [%s]."
 
-#, fuzzy, python-format
+#, python-format
 msgid "Selected tooltips saved to [%s]."
-msgstr "Definición de reporte borrado [%s]."
+msgstr "Herramienta de ayuda seleccionada guardada en [%s]."
 
-#, fuzzy, python-format
+#, python-format
 msgid "Selected data saved to [%s]."
-msgstr "Fijar el idioma de la base de datos en [%s]."
+msgstr "Guardar datos seleccionados en [%s]."
 
 msgid "Monty the Serpent && the FSF Present"
 msgstr "La Serpiente Monty && la FSF presentan"
@@ -14215,7 +14194,7 @@ msgid "Edit the active encounter"
 msgstr "Edita la cita activa."
 
 msgid "Start new active encounter for the current patient."
-msgstr "Comienza una nueva cita activa para el paciente actual."
+msgstr "Comienzo una nueva cita activa para el paciente actual."
 
 #, python-format
 msgid "old praxis branch: %s (%s)"
@@ -14687,8 +14666,8 @@ msgid ""
 "%(pat)s turns %(age)s on %(month)s %(day)s ! (today is %(month_now)s "
 "%(day_now)s)"
 msgstr ""
-"%(pat)s cumplirá %(age)s en %(month)s %(day)s ! (hoy es %(month_now)s "
-"%(day_now)s)"
+"¡ %(pat)s cumplirá %(age)s el %(day)s de %(month)s ! (hoy es %(day_now)s de "
+"%(month_now)s)"
 
 #, python-format
 msgid "%(name)s (locked)"
@@ -15185,9 +15164,8 @@ msgstr ""
 "\n"
 " %s"
 
-#, fuzzy
 msgid "Browse patient data pack ?"
-msgstr "Reviso datos del paciente"
+msgstr "¿Reviso paquetes de datos del paciente?"
 
 msgid "If you wish to include an existing directory select it here:"
 msgstr "Si desea incluir un directorio exstente, selecciónelo acá:"
@@ -15389,8 +15367,8 @@ msgid "Missing long name for template."
 msgstr "Falta nombre completo para la plantilla."
 
 #, python-format
-msgid "last modified %s by %s"
-msgstr "modificado el %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
+msgstr "última vez modificado el %s por %s, revisión interna [%s]"
 
 msgid "Choose a form template file"
 msgstr "Elija un archivo de formulario de plantilla."
@@ -15398,6 +15376,9 @@ 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 "Receiver"
+msgstr "Receptor"
+
 msgid "Emergency contact"
 msgstr "Contacto de emergencia"
 
@@ -15413,9 +15394,6 @@ msgstr "Esta consulta"
 msgid "Bill receiver"
 msgstr "Selecciona receptor"
 
-msgid "Receiver"
-msgstr "Receptor"
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
@@ -15812,9 +15790,8 @@ msgstr "ordenado por tema de salud"
 msgid "sorted by type"
 msgstr "ordenado por tipo"
 
-#, fuzzy
 msgid "sorted by organization"
-msgstr "Agregando una nueva organización"
+msgstr "clasificado por organización"
 
 msgid "Cannot load documents. No active patient."
 msgstr "No se pueden cargar documentos. No hay paciente activo."
@@ -15901,9 +15878,8 @@ msgstr "%s%7s (%s):%s (%s)"
 msgid "%s (unattributed episode)"
 msgstr "%s (episodio no atribuido)"
 
-#, fuzzy
 msgid "unknown organization"
-msgstr "reacción desconocida"
+msgstr "organización desconocida"
 
 #, python-format
 msgid "part %2s"
@@ -16083,7 +16059,7 @@ msgstr ""
 " 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."
+"URL de la referencia externa en la línea de comando."
 
 msgid "Save document into directory ..."
 msgstr "Guardar documento en el directorio ..."
@@ -16098,9 +16074,8 @@ msgstr "¿Está seguro de que quiere borrar el documento?"
 msgid "Deleting document"
 msgstr "Borrando documento"
 
-#, fuzzy
 msgid "Referrer"
-msgstr "Remisiones"
+msgstr "Remitente"
 
 msgid "Time"
 msgstr "Tiempo"
@@ -16142,9 +16117,9 @@ msgstr ""
 "SCAI: se encontró más de una coincidencia de paciente para la ID, "
 "cuidadosamente revise los estudios"
 
-#, fuzzy, python-format
+#, python-format
 msgid "%s series%s"
-msgstr "%s series"
+msgstr "%s series%s"
 
 msgid "no studies"
 msgstr "sin estudios"
@@ -16189,17 +16164,15 @@ msgstr "IMposible guardar estudios."
 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\")"
 
-#, fuzzy, python-format
+#, python-format
 msgid "%s image(s)%s"
-msgstr "%s%s imágenes"
+msgstr "%s imágenes%s"
 
-#, fuzzy
 msgid "Study"
-msgstr "Fecha del estudio"
+msgstr "Estudio"
 
-#, fuzzy
 msgid "Series"
-msgstr "%s series"
+msgstr "Series"
 
 msgid "Select the directory from which to recursively upload DICOM files."
 msgstr ""
@@ -16595,7 +16568,7 @@ msgid "Manage various lists of master data."
 msgstr "Administrar varias listas de datos maestros."
 
 msgid "Manage praxis"
-msgstr "Adminstro consulta"
+msgstr "Administro consulta"
 
 msgid "Manage your praxis branches."
 msgstr "Administro su sucursal de consulta."
@@ -16640,7 +16613,7 @@ msgid "Edit the list of GNUmed users"
 msgstr "Editar la lista de usuarios de GNUmed"
 
 msgid "&Change DB owner PWD"
-msgstr "&Cambiar la contraseña del dueño de la base de datos"
+msgstr "&Cambio la contraseña del dueño de la base de datos"
 
 msgid "Change the password of the GNUmed database owner"
 msgstr "Cambie la contraseña del dueño de la base de datos GNUmed"
@@ -16658,7 +16631,7 @@ msgid "Search for a person."
 msgstr "Busco una persona."
 
 msgid "&Register person"
-msgstr "&Registre una persona"
+msgstr "&Registro una persona"
 
 msgid "Register a new person with GNUmed"
 msgstr "Registre persona nuevo en GNUmed"
@@ -16690,26 +16663,26 @@ msgstr "Importo demográficos desde portapapeles (vCard) como paciente"
 
 msgid "Export demographics of currently active person as GDT into clipboard."
 msgstr ""
-"Exporte demografía de la persona actualmente activa como GDT en el "
+"Exporto demografía de la persona actualmente activa como GDT en el "
 "portapapeles."
 
 msgid ""
 "Export demographics of currently active person as XML (LinuxMedNews) into "
 "clipboard"
 msgstr ""
-"Exporte demografía de la persona actualmente activa como XML (LicuxMedNews) "
+"Exporto demografía de la persona actualmente activa como XML (LicuxMedNews) "
 "al portapapeles"
 
 msgid "Export demographics of currently active person as vCard into clipboard"
 msgstr ""
-"Exporte demografía de la persona actualmente activacomo vCard al portapapeles"
+"Exporto demografía de la persona actualmente activacomo vCard al portapapeles"
 
 msgid "Export demographics of currently active person into GDT file."
-msgstr "Exporte demografía de la persona actualmente activa en un archivo GDT."
+msgstr "Exporto demografía de la persona actualmente activa en un archivo GDT."
 
 msgid "Export demographics of currently active person into vCard file."
 msgstr ""
-"Exporte demografía de la persona actualmente activa como archivo vCard."
+"Exporto demografía de la persona actualmente activa como archivo vCard."
 
 msgid "→ &Clipboard as…"
 msgstr "→ &Portapapeles como ..."
@@ -16724,23 +16697,23 @@ msgid "Merge two persons into one."
 msgstr "Combino dos personas en una."
 
 msgid "Deactivate record"
-msgstr "Desactive registro"
+msgstr "Desactivo registro"
 
 msgid "Deactivate (exclude from search) person record in database."
 msgstr ""
 "Desactivar (excluya de búsqueda) registro de persona en la base de datos."
 
 msgid "Add &tag"
-msgstr "Agregue &símbolo"
+msgstr "Agrego &etiqueta"
 
 msgid "Add a text/image tag to this person."
-msgstr "Agregue una etiqueta de texto/imagen para esta persona."
+msgstr "Agrego una etiqueta de texto/imagen para esta persona."
 
 msgid "Enlist as user"
-msgstr "Enlistar como usuario"
+msgstr "Enlisto como usuario"
 
 msgid "Enlist current person as GNUmed user"
-msgstr "Enlistar persona activa como usuario en GNUmed"
+msgstr "Enlisto persona activa como usuario en GNUmed"
 
 msgid "&Past history (health issue / PMH)"
 msgstr "Historial &pasado (problemas de salud)"
@@ -16749,20 +16722,20 @@ msgid ""
 "Add a past/previous medical history item (health issue) to the EMR of the "
 "active patient"
 msgstr ""
-"Agregue un ítem de historial médico pasado/previo (problema de salud) al RME "
+"Agrego un ítem de historial médico pasado/previo (problema de salud) al RME "
 "para el paciente activo"
 
 msgid "&Episode"
 msgstr "&Episodio"
 
 msgid "Add an episode of illness to the EMR of the active patient"
-msgstr "Agrega un episodio de enfermedad al RME del paciente activo"
+msgstr "Agrego un episodio de enfermedad al RME del paciente activo"
 
 msgid "&Medication"
 msgstr "&Medicación"
 
 msgid "Add medication / substance use entry."
-msgstr "Agregue Medicación / uso de sustancia"
+msgstr "Agrego Medicación / uso de sustancia"
 
 msgid "&Allergies"
 msgstr "&Alergias"
@@ -16804,7 +16777,7 @@ msgid "&Vaccinations"
 msgstr "&Vacunaciones"
 
 msgid "Add (a) vaccination(s) for the current patient."
-msgstr "Agrega (una) vacunación(es) para el paciente activo."
+msgstr "Agrego (una) vacunación(es) para el paciente activo."
 
 msgid "&Family history (FHx)"
 msgstr "Historial &Familiar"
@@ -16837,7 +16810,7 @@ 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 ..."
+msgstr "&Agrego / Edito ..."
 
 msgid "Search this EMR"
 msgstr "Reviso este RME"
@@ -16846,10 +16819,10 @@ msgid "Search for data in the EMR of the active patient"
 msgstr "Busco datos en el RME del paciente activo"
 
 msgid "Start new encounter"
-msgstr "Comienza nuevo contacto"
+msgstr "Comienzo nuevo contacto"
 
 msgid "Start a new encounter for the active patient right now."
-msgstr "Comienza un nuevo contacto para el paciente activo ahora mismo."
+msgstr "Comienzo un nuevo contacto para el paciente activo ahora mismo."
 
 msgid "Statistics"
 msgstr "Estadísticas"
@@ -16919,7 +16892,7 @@ msgid "&EMR"
 msgstr "&RME"
 
 msgid "&Write letter"
-msgstr "&Escriba carta"
+msgstr "&Escribo carta"
 
 msgid "Write a letter for the current patient."
 msgstr "Escribe una carta para el paciente activo."
@@ -17016,7 +16989,7 @@ msgstr "Fuente de &Medicamentos"
 
 msgid "Show \"kompendium.ch\" drug database (online, Switzerland)"
 msgstr ""
-"Muestre base de datos de medicamentos \"kompendium.ch\" (en linea, Suiza)"
+"Muestre base de datos de medicamentos \"kompendium.ch\" (en línea, Suiza)"
 
 msgid "Medical links (www)"
 msgstr "Enlaces médicos (www)"
@@ -17067,10 +17040,10 @@ msgid "View the reference for menu items on the web."
 msgstr "Vea la ayuda de los ítemes del menú en la red."
 
 msgid "&Clear status line"
-msgstr "&Limpio linea de estado"
+msgstr "&Limpio línea de estado"
 
 msgid "Clear out the status line."
-msgstr "Vacío la linea de estado."
+msgstr "Vacío la línea de estado."
 
 msgid "Screenshot"
 msgstr "Captura de pantalla"
@@ -17858,7 +17831,7 @@ msgstr ""
 "\n"
 "pero puede configurar cualquier otra URL localmente. Note que\n"
 "debe ingresarla como una URL válida. Dependiendo de la URL, el\n"
-"cliente necesitará de acceso en linea al verificar actualizaciones."
+"cliente necesitará de acceso en línea al verificar actualizaciones."
 
 msgid ""
 "Do you want to allow saving of new documents without\n"
@@ -18198,14 +18171,15 @@ 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"
+msgstr "Libro diario del RME"
 
 msgid "Error exporting patient EMR as chronological journal."
-msgstr "Error al exportar RME del paciente como registro cronológico."
+msgstr "Error al exportar el RME del paciente como libro diario 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]."
+msgstr ""
+"RME exportado exitosamente como libro diario cronológico al archivo [%s]."
 
 msgid "EMR journal by last modification time"
 msgstr "Diario de RME por la última hora de modificación."
@@ -18353,7 +18327,7 @@ msgstr ""
 "No puedo encontrar el archivo de configuración entre:\n"
 "\n"
 " %s\n"
-"Puede necesitar la opción de linea de comando\n"
+"Puede necesitar la opción de línea de comando\n"
 "\n"
 "\t--conf-file=<FILE>"
 
@@ -18426,13 +18400,13 @@ msgstr ""
 "  [%s]"
 
 msgid "Save timeline as SVG image under..."
-msgstr "Guardo linea de tiempo como imagen SVG en ..."
+msgstr "Guardo línea de tiempo como imagen SVG en ..."
 
 msgid "timeline image"
-msgstr "imagen de linea de tiempo"
+msgstr "imagen de línea de tiempo"
 
 msgid "timeline data"
-msgstr "datos de linea de tiempo"
+msgstr "datos de línea de tiempo"
 
 msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
@@ -18979,7 +18953,7 @@ msgid "No EMR data loaded."
 msgstr "Datos del RME no cargados"
 
 msgid "EMR text dump"
-msgstr "Extracto textual del RME"
+msgstr "Descarga de textol del RME"
 
 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."
@@ -18988,10 +18962,10 @@ msgid "SOAP Editor Actions:"
 msgstr "Acciones de Editor SOAP:"
 
 msgid "&Sort lines"
-msgstr "&Ordeno lineas"
+msgstr "&Ordeno líneas"
 
 msgid "Sort lines by SOAP category"
-msgstr "Ordeno lineas por categoría SOAP"
+msgstr "Ordeno líneas por categoría SOAP"
 
 msgid "e&Xpand keyword"
 msgstr "e&Xpando palabra clave"
@@ -19003,49 +18977,49 @@ msgid "as &Subjective"
 msgstr "como &Subjectivo"
 
 msgid "Set line to category \"Subjective\""
-msgstr "Fijo linea a la categoría \"Subjetivo\""
+msgstr "Fijo línea a la categoría \"Subjetivo\""
 
 msgid "as &Objective"
 msgstr "como &Objectivo"
 
 msgid "Set line to category \"Objective\""
-msgstr "Fijo linea a la categoría \"Objetivo\""
+msgstr "Fijo línea a la categoría \"Objetivo\""
 
 msgid "as &Assessment"
 msgstr "como &Evaluación"
 
 msgid "Set line to category \"Assessment\""
-msgstr "Fijo la linea de categoría \"Evaluación\""
+msgstr "Fijo la línea de categoría \"Evaluación\""
 
 msgid "as &Plan"
 msgstr "como &Plan"
 
 msgid "Set line to category \"Plan\""
-msgstr "Fijo la linea de categoria \"Plan\""
+msgstr "Fijo la línea de categoria \"Plan\""
 
 msgid "as &Unspecified"
 msgstr "como &Inespecífico"
 
 msgid "Set line to category \"unspecified\""
-msgstr "Fijo la linea de categoría \"inespecífico\""
+msgstr "Fijo la línea de categoría \"inespecífico\""
 
 msgid "as ad&Ministrative"
 msgstr "como ad&Ministrativo"
 
 msgid "Set line to category \"administrative\""
-msgstr "Fijo la linea de categoría \"administrativo\""
+msgstr "Fijo la línea de categoría \"administrativo\""
 
 msgid "→ &Clipboard"
 msgstr "→ &Portapapeles"
 
 msgid "Copy line to clipboard"
-msgstr "Copia linea al portapapeles"
+msgstr "Copia línea al portapapeles"
 
 msgid "→ +Clipboard+"
 msgstr "→ +Porapapeles+"
 
 msgid "Add line to clipboard"
-msgstr "Agrego linea al portapapeles"
+msgstr "Agrego línea al portapapeles"
 
 msgid "Copy content to clipboard"
 msgstr "Copio contenido al portapapeles"
@@ -19263,10 +19237,10 @@ msgid "Review and &sign"
 msgstr "Revise y &firme"
 
 msgid "Export to &file"
-msgstr "Exporte a &archivo"
+msgstr "Exporto a &archivo"
 
 msgid "Export to &clipboard"
-msgstr "Exporte a &block de notas"
+msgstr "Exporto a &block de notas"
 
 msgid "Panels"
 msgstr "Paneles"
@@ -19534,10 +19508,10 @@ msgid "Pick the measurement types for this panel."
 msgstr "Escojo los tipos de medición para este panel."
 
 msgid "Cannot export EMR. No active patient."
-msgstr "No puedo exportar el EMR. No existe paciente activo."
+msgstr "No puedo exportar el RME. No existe paciente activo."
 
 msgid "emr-export"
-msgstr "Exportación de EMR"
+msgstr "Exportación de RME"
 
 msgid "Save patient's EMR as..."
 msgstr "Guardo el EMR del paciente como ..."
@@ -19729,13 +19703,11 @@ msgstr "&Nueva nota %s"
 msgid "Find text in EMR Journal"
 msgstr "Encuentro texto en diario del RME"
 
-#, fuzzy
 msgid "Modified"
-msgstr "Modificador:"
+msgstr "Modificado"
 
-#, fuzzy
 msgid "Clinical time"
-msgstr "Notas Clínicas"
+msgstr "Hora clínica"
 
 msgid "Who / When"
 msgstr "Quién / Cuándo"
@@ -19939,7 +19911,7 @@ msgid ""
 "Type or select an alias (nick name, preferred name, call name, warrior name, "
 "artist name)."
 msgstr ""
-"Escriba o elija un alias (mote, nombre preferido, nombrete, nombre de "
+"Escribo o elijo un alias (mote, nombre preferido, sobrenombre, nombre de "
 "guerra, seudónimo artístico)."
 
 msgid ""
@@ -19963,7 +19935,7 @@ msgid ""
 "but will provoke nag screens if this person\n"
 "becomes a patient.\n"
 msgstr ""
-"¿Está seguro/s que desea dejar a esta\n"
+"¿Está seguro/a que desea dejar a esta\n"
 "persona sin una fecha de nacimiento válida?\n"
 "\n"
 "Esto puede ser útil para miembros temporales de\n"
@@ -20683,10 +20655,10 @@ msgid "&Appointments"
 msgstr "&Citas"
 
 msgid "lab journal"
-msgstr "diario de laboratorio"
+msgstr "libro diario de laboratorio"
 
 msgid "Show &lab journal"
-msgstr "Muestro diario de &laboratorio"
+msgstr "Muestro libro diario de &laboratorio"
 
 msgid "PACS"
 msgstr "SCAI"
@@ -20918,7 +20890,7 @@ msgid "&Notes"
 msgstr "&Notas"
 
 msgid "Billing"
-msgstr "Facturando"
+msgstr "Facturo"
 
 msgid "Clinical"
 msgstr "Clínico"
@@ -20978,6 +20950,25 @@ msgstr "Aborto"
 msgid "Abort and do NOT connect to GNUmed."
 msgstr "Aborto y NO conecto a GNUMed."
 
+#~ msgid "&Addresses"
+#~ msgstr "&Direcciones"
+
+#~ msgid "Or&Ganizations"
+#~ msgstr "Or&Ganizaciones"
+
+#~ 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 "Study time"
 #~ msgstr "Hora del estudio"
 
diff --git a/client/po/fr-gnumed.mo b/client/po/fr-gnumed.mo
index 252917e..0c5a634 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 5113bdb..1c3e29b 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:55+0200\n"
 "PO-Revision-Date: 2012-06-01 01:16+0000\n"
 "Last-Translator: ncq <Unknown>\n"
 "Language-Team: FR <LL at li.org>\n"
@@ -4580,14 +4580,6 @@ msgid "Select the paperwork receiver:"
 msgstr "Sélectionnez le type de visite"
 
 #, fuzzy
-msgid "&Addresses"
-msgstr "Adresse"
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "Organisation"
-
-#, fuzzy
 msgid "&OK"
 msgstr "Valider"
 
@@ -4612,14 +4604,14 @@ msgid "Manage generic list of all addresses."
 msgstr "&Gérer les orgas"
 
 #, fuzzy
-msgid "Manage known organizations and units thereof."
-msgstr "Gérer les organisations et leurs unités."
-
-#, fuzzy
 msgid "Select the organizational unit you want to write to."
 msgstr "Nom de l'organisation."
 
 #, fuzzy
+msgid "Manage known organizations and units thereof."
+msgstr "Gérer les organisations et leurs unités."
+
+#, fuzzy
 msgid "Use the above name and address."
 msgstr "Modifier l'objet sélectionné."
 
@@ -4627,16 +4619,40 @@ msgstr "Modifier l'objet sélectionné."
 msgid "Abort the receiver selection."
 msgstr "Enregistrer le patient actuel"
 
-#, fuzzy
-msgid "Selected receiver"
-msgstr "choisir"
-
 msgid "Address"
 msgstr "Adresse"
 
 #, fuzzy
-msgid "Manage:"
-msgstr "Gérer"
+msgid "Selected Receiver"
+msgstr "choisir"
+
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
+msgstr ""
 
 msgid "Quick picks"
 msgstr ""
@@ -5816,6 +5832,10 @@ msgid "Research:"
 msgstr "Chercher"
 
 #, fuzzy
+msgid "Manage:"
+msgstr "Gérer"
+
+#, fuzzy
 msgid "Certainty:"
 msgstr "Certitude"
 
@@ -8353,6 +8373,12 @@ msgid "Language: %s\n"
 msgstr "Langue"
 
 #, fuzzy
+msgid "Rationale for suppression:"
+msgstr ""
+"\n"
+"Compléter l'historique des vaccinations de ce patient.\n"
+
+#, fuzzy
 msgid "Suppressed active dynamic hint"
 msgstr "Vaccins affichés."
 
@@ -13594,20 +13620,6 @@ msgid ""
 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"
 
@@ -14890,7 +14902,7 @@ 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"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr "Dernière modification :"
 
 msgid "Choose a form template file"
@@ -14900,6 +14912,10 @@ msgid "Enter a filename to save the template to"
 msgstr ""
 
 #, fuzzy
+msgid "Receiver"
+msgstr "Patient :"
+
+#, fuzzy
 msgid "Emergency contact"
 msgstr "Contact d'urgence (dans la base de données)"
 
@@ -14919,10 +14935,6 @@ msgstr "Votre examen"
 msgid "Bill receiver"
 msgstr "choisir"
 
-#, fuzzy
-msgid "Receiver"
-msgstr "Patient :"
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
@@ -19916,6 +19928,28 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr "Annuler et ne PAS se connecter a GNUmed."
 
 #, fuzzy
+#~ msgid "&Addresses"
+#~ msgstr "Adresse"
+
+#, fuzzy
+#~ msgid "Or&Ganizations"
+#~ msgstr "Organisation"
+
+#, 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 "Study time"
 #~ msgstr "Démarré"
 
diff --git a/client/po/id-gnumed.mo b/client/po/id-gnumed.mo
index d74d892..082fa10 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 82ace81..549a805 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:56+0200\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"
@@ -4021,12 +4021,6 @@ msgstr ""
 msgid "Select the paperwork receiver:"
 msgstr ""
 
-msgid "&Addresses"
-msgstr ""
-
-msgid "Or&Ganizations"
-msgstr ""
-
 msgid "&OK"
 msgstr ""
 
@@ -4048,10 +4042,10 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr ""
 
-msgid "Manage known organizations and units thereof."
+msgid "Select the organizational unit you want to write to."
 msgstr ""
 
-msgid "Select the organizational unit you want to write to."
+msgid "Manage known organizations and units thereof."
 msgstr ""
 
 msgid "Use the above name and address."
@@ -4060,14 +4054,39 @@ msgstr ""
 msgid "Abort the receiver selection."
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 #, fuzzy
-msgid "Selected receiver"
+msgid "Selected Receiver"
 msgstr "Pilih acara"
 
-msgid "Address"
+msgid "$<receiver_name::::>$"
 msgstr ""
 
-msgid "Manage:"
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
 msgstr ""
 
 msgid "Quick picks"
@@ -5079,6 +5098,9 @@ msgstr ""
 msgid "Research:"
 msgstr ""
 
+msgid "Manage:"
+msgstr ""
+
 msgid "Certainty:"
 msgstr ""
 
@@ -7298,6 +7320,9 @@ msgstr ""
 msgid "Language: %s\n"
 msgstr ""
 
+msgid "Rationale for suppression:"
+msgstr ""
+
 msgid "Suppressed active dynamic hint"
 msgstr ""
 
@@ -12203,14 +12228,6 @@ msgid ""
 "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 ""
 
@@ -13416,7 +13433,7 @@ msgid "Missing long name for template."
 msgstr ""
 
 #, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr ""
 
 msgid "Choose a form template file"
@@ -13425,6 +13442,9 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+msgid "Receiver"
+msgstr ""
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -13441,9 +13461,6 @@ msgstr ""
 msgid "Bill receiver"
 msgstr "Pilih acara"
 
-msgid "Receiver"
-msgstr ""
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
diff --git a/client/po/it-gnumed.mo b/client/po/it-gnumed.mo
index e22a7d0..f582d7b 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 c83dc9c..998f388 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:56+0200\n"
 "PO-Revision-Date: 2012-06-01 01:22+0000\n"
 "Last-Translator: ncq <Unknown>\n"
 "Language-Team: GNUmed\n"
@@ -4365,14 +4365,6 @@ msgid "Select the paperwork receiver:"
 msgstr "Seleziona il tipo d'appuntamento"
 
 #, fuzzy
-msgid "&Addresses"
-msgstr "Indirizzo"
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "Organizzazione"
-
-#, fuzzy
 msgid "&OK"
 msgstr "OK"
 
@@ -4397,14 +4389,14 @@ msgid "Manage generic list of all addresses."
 msgstr "Salva indirizzo"
 
 #, fuzzy
-msgid "Manage known organizations and units thereof."
-msgstr "Gestisci le descrizioni"
-
-#, fuzzy
 msgid "Select the organizational unit you want to write to."
 msgstr "Selezionare l'episodio del quale si desidera spostare la narrazione."
 
 #, fuzzy
+msgid "Manage known organizations and units thereof."
+msgstr "Gestisci le descrizioni"
+
+#, fuzzy
 msgid "Use the above name and address."
 msgstr "un indirizzo deve essere selezionato"
 
@@ -4412,16 +4404,40 @@ msgstr "un indirizzo deve essere selezionato"
 msgid "Abort the receiver selection."
 msgstr "Elimina la persona selezionata."
 
-#, fuzzy
-msgid "Selected receiver"
-msgstr "Sto selezionando il paziente"
-
 msgid "Address"
 msgstr "Indirizzo"
 
 #, fuzzy
-msgid "Manage:"
-msgstr "Gestisci le descrizioni"
+msgid "Selected Receiver"
+msgstr "Sto selezionando il paziente"
+
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
+msgstr ""
 
 msgid "Quick picks"
 msgstr ""
@@ -5502,6 +5518,10 @@ msgid "Research:"
 msgstr "Cerca"
 
 #, fuzzy
+msgid "Manage:"
+msgstr "Gestisci le descrizioni"
+
+#, fuzzy
 msgid "Certainty:"
 msgstr "Certezza"
 
@@ -7932,6 +7952,10 @@ msgid "Language: %s\n"
 msgstr "Lingua"
 
 #, fuzzy
+msgid "Rationale for suppression:"
+msgstr "Aspettando una lista dettagliata per questo paziente."
+
+#, fuzzy
 msgid "Suppressed active dynamic hint"
 msgstr "Mostro il documento"
 
@@ -13118,14 +13142,6 @@ msgid ""
 "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"
@@ -14415,7 +14431,7 @@ msgid "Missing long name for template."
 msgstr "Elimino dal modello."
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr "Ultima modifica:"
 
 msgid "Choose a form template file"
@@ -14425,6 +14441,10 @@ msgid "Enter a filename to save the template to"
 msgstr ""
 
 #, fuzzy
+msgid "Receiver"
+msgstr "Paziente"
+
+#, fuzzy
 msgid "Emergency contact"
 msgstr "progressi, note"
 
@@ -14442,10 +14462,6 @@ msgstr "Il tuo esame"
 msgid "Bill receiver"
 msgstr "Sto selezionando il paziente"
 
-#, fuzzy
-msgid "Receiver"
-msgstr "Paziente"
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
@@ -19438,6 +19454,14 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr "Annulla e NON connetti a GNUmed"
 
 #, fuzzy
+#~ msgid "&Addresses"
+#~ msgstr "Indirizzo"
+
+#, fuzzy
+#~ msgid "Or&Ganizations"
+#~ msgstr "Organizzazione"
+
+#, fuzzy
 #~ msgid "Study time"
 #~ msgstr "Incomincia nuovo"
 
diff --git a/client/po/ka-gnumed.mo b/client/po/ka-gnumed.mo
index 12a3d41..3369c64 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 ff4f2bf..836aa54 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:56+0200\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"
@@ -3991,13 +3991,6 @@ msgstr ""
 msgid "Select the paperwork receiver:"
 msgstr ""
 
-msgid "&Addresses"
-msgstr ""
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "ვაქცინაცია"
-
 msgid "&OK"
 msgstr ""
 
@@ -4019,10 +4012,10 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr ""
 
-msgid "Manage known organizations and units thereof."
+msgid "Select the organizational unit you want to write to."
 msgstr ""
 
-msgid "Select the organizational unit you want to write to."
+msgid "Manage known organizations and units thereof."
 msgstr ""
 
 msgid "Use the above name and address."
@@ -4031,13 +4024,38 @@ msgstr ""
 msgid "Abort the receiver selection."
 msgstr ""
 
-msgid "Selected receiver"
+msgid "Address"
 msgstr ""
 
-msgid "Address"
+msgid "Selected Receiver"
 msgstr ""
 
-msgid "Manage:"
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
 msgstr ""
 
 msgid "Quick picks"
@@ -5050,6 +5068,9 @@ msgstr ""
 msgid "Research:"
 msgstr ""
 
+msgid "Manage:"
+msgstr ""
+
 msgid "Certainty:"
 msgstr ""
 
@@ -7277,6 +7298,9 @@ msgstr ""
 msgid "Language: %s\n"
 msgstr ""
 
+msgid "Rationale for suppression:"
+msgstr ""
+
 msgid "Suppressed active dynamic hint"
 msgstr ""
 
@@ -12194,14 +12218,6 @@ msgid ""
 "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 ""
 
@@ -13400,7 +13416,7 @@ msgid "Missing long name for template."
 msgstr ""
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr " (ბოლო დადასტურება %ს)"
 
 msgid "Choose a form template file"
@@ -13409,6 +13425,9 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+msgid "Receiver"
+msgstr ""
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -13424,9 +13443,6 @@ msgstr ""
 msgid "Bill receiver"
 msgstr ""
 
-msgid "Receiver"
-msgstr ""
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
@@ -18087,6 +18103,10 @@ msgstr ""
 msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
 
+#, fuzzy
+#~ msgid "Or&Ganizations"
+#~ msgstr "ვაქცინაცია"
+
 #~ msgid "soap_S"
 #~ msgstr "საპონი"
 
diff --git a/client/po/nb-gnumed.mo b/client/po/nb-gnumed.mo
index 6211cd6..b00f7b9 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 81e8cf8..7a5f8b3 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:56+0200\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"
@@ -4100,13 +4100,6 @@ msgstr ""
 msgid "Select the paperwork receiver:"
 msgstr ""
 
-msgid "&Addresses"
-msgstr ""
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "Vaksinasjon"
-
 msgid "&OK"
 msgstr ""
 
@@ -4129,13 +4122,13 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr "har allergier"
 
+msgid "Select the organizational unit you want to write to."
+msgstr ""
+
 #, fuzzy
 msgid "Manage known organizations and units thereof."
 msgstr "Vaksinasjon"
 
-msgid "Select the organizational unit you want to write to."
-msgstr ""
-
 msgid "Use the above name and address."
 msgstr ""
 
@@ -4143,16 +4136,40 @@ msgstr ""
 msgid "Abort the receiver selection."
 msgstr "Dokumenter:"
 
+msgid "Address"
+msgstr ""
+
 #, fuzzy
-msgid "Selected receiver"
+msgid "Selected Receiver"
 msgstr "Dokumenter:"
 
-msgid "Address"
+msgid "$<receiver_name::::>$"
 msgstr ""
 
-#, fuzzy
-msgid "Manage:"
-msgstr "har allergier"
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
+msgstr ""
 
 msgid "Quick picks"
 msgstr ""
@@ -5182,6 +5199,10 @@ msgstr ""
 msgid "Research:"
 msgstr ""
 
+#, fuzzy
+msgid "Manage:"
+msgstr "har allergier"
+
 msgid "Certainty:"
 msgstr ""
 
@@ -7464,6 +7485,10 @@ msgid "Language: %s\n"
 msgstr "   Dok: %s"
 
 #, fuzzy
+msgid "Rationale for suppression:"
+msgstr "har allergier"
+
+#, fuzzy
 msgid "Suppressed active dynamic hint"
 msgstr "Dokumenter:"
 
@@ -12469,14 +12494,6 @@ msgid ""
 "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"
@@ -13705,7 +13722,7 @@ msgid "Missing long name for template."
 msgstr ""
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr "etternavn"
 
 msgid "Choose a form template file"
@@ -13714,6 +13731,10 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+#, fuzzy
+msgid "Receiver"
+msgstr "Dokumenter: %s"
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -13731,10 +13752,6 @@ msgstr "Vaksinasjon"
 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"
@@ -18485,6 +18502,10 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
 
 #, fuzzy
+#~ msgid "Or&Ganizations"
+#~ msgstr "Vaksinasjon"
+
+#, fuzzy
 #~ msgid "Copy to e&xport area..."
 #~ msgstr "Vaksinasjon"
 
diff --git a/client/po/nl-gnumed.mo b/client/po/nl-gnumed.mo
index 0ef706a..642c9b0 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 3b62d77..177aeda 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:56+0200\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"
@@ -4540,14 +4540,6 @@ msgid "Select the paperwork receiver:"
 msgstr "Selecteer het type ontmoeting."
 
 #, fuzzy
-msgid "&Addresses"
-msgstr "Adres"
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "Organisatie"
-
-#, fuzzy
 msgid "&OK"
 msgstr "OK"
 
@@ -4572,11 +4564,11 @@ msgid "Manage generic list of all addresses."
 msgstr "Adres verwijderen"
 
 #, fuzzy
-msgid "Manage known organizations and units thereof."
+msgid "Select the organizational unit you want to write to."
 msgstr "instellingen bewaren"
 
 #, fuzzy
-msgid "Select the organizational unit you want to write to."
+msgid "Manage known organizations and units thereof."
 msgstr "instellingen bewaren"
 
 #, fuzzy
@@ -4587,16 +4579,40 @@ msgstr "moet adres selecteren"
 msgid "Abort the receiver selection."
 msgstr "Annuleer selectie van persoon."
 
-#, fuzzy
-msgid "Selected receiver"
-msgstr "Patiënt selecteren"
-
 msgid "Address"
 msgstr "Adres"
 
 #, fuzzy
-msgid "Manage:"
-msgstr "Allergieën bewerken"
+msgid "Selected Receiver"
+msgstr "Patiënt selecteren"
+
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
+msgstr ""
 
 msgid "Quick picks"
 msgstr ""
@@ -5753,6 +5769,10 @@ msgid "Research:"
 msgstr "Zoeken"
 
 #, fuzzy
+msgid "Manage:"
+msgstr "Allergieën bewerken"
+
+#, fuzzy
 msgid "Certainty:"
 msgstr "Zekerheid"
 
@@ -8231,6 +8251,10 @@ msgid "Language: %s\n"
 msgstr "Taal"
 
 #, fuzzy
+msgid "Rationale for suppression:"
+msgstr "Lijst met momenteel bestaande stafleden."
+
+#, fuzzy
 msgid "Suppressed active dynamic hint"
 msgstr "Meting bewerken"
 
@@ -13773,14 +13797,6 @@ msgid ""
 "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"
@@ -15166,7 +15182,7 @@ msgid "Missing long name for template."
 msgstr "Formuliersjabloon verwijderen."
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr "Laatst gewijzigd:"
 
 msgid "Choose a form template file"
@@ -15177,6 +15193,12 @@ msgid "Enter a filename to save the template to"
 msgstr "Geef een beschrijvende naam voor de nieuwe werkplek:"
 
 #, fuzzy
+msgid "Receiver"
+msgstr ""
+"%s Laatst gezien: %s\n"
+"\n"
+
+#, fuzzy
 msgid "Emergency contact"
 msgstr "voortgangsrapport"
 
@@ -15196,12 +15218,6 @@ msgid "Bill receiver"
 msgstr "Patiënt selecteren"
 
 #, 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"
@@ -20854,6 +20870,14 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr "Afbreken en GEEN verbinding maken met GNUmed."
 
 #, fuzzy
+#~ msgid "&Addresses"
+#~ msgstr "Adres"
+
+#, fuzzy
+#~ msgid "Or&Ganizations"
+#~ msgstr "Organisatie"
+
+#, fuzzy
 #~ msgid "Study time"
 #~ msgstr "Begin nieuw"
 
diff --git a/client/po/pl-gnumed.mo b/client/po/pl-gnumed.mo
index 1006ad4..9e1bc74 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 a93f98a..07eef85 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:56+0200\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"
@@ -4301,14 +4301,6 @@ msgid "Select the paperwork receiver:"
 msgstr "Tu wybierz typ adresu."
 
 #, fuzzy
-msgid "&Addresses"
-msgstr "Adres"
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "Dodawanie nowego epizodu"
-
-#, fuzzy
 msgid "&OK"
 msgstr "OK"
 
@@ -4333,14 +4325,14 @@ msgid "Manage generic list of all addresses."
 msgstr "Opis"
 
 #, fuzzy
-msgid "Manage known organizations and units thereof."
-msgstr "Opis"
-
-#, fuzzy
 msgid "Select the organizational unit you want to write to."
 msgstr "Wybierz epizod, do którego chcesz przenieść opis."
 
 #, fuzzy
+msgid "Manage known organizations and units thereof."
+msgstr "Opis"
+
+#, fuzzy
 msgid "Use the above name and address."
 msgstr "To wyświetla listę dostępnych typów dokumentów."
 
@@ -4348,16 +4340,40 @@ msgstr "To wyświetla listę dostępnych typów dokumentów."
 msgid "Abort the receiver selection."
 msgstr "Aktualnie wybrany pacjent to:"
 
-#, fuzzy
-msgid "Selected receiver"
-msgstr "Wybierz zdarzenie"
-
 msgid "Address"
 msgstr "Adres"
 
 #, fuzzy
-msgid "Manage:"
-msgstr "Opis"
+msgid "Selected Receiver"
+msgstr "Wybierz zdarzenie"
+
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
+msgstr ""
 
 msgid "Quick picks"
 msgstr ""
@@ -5415,6 +5431,10 @@ msgstr "Lek"
 msgid "Research:"
 msgstr ""
 
+#, fuzzy
+msgid "Manage:"
+msgstr "Opis"
+
 msgid "Certainty:"
 msgstr ""
 
@@ -7768,6 +7788,10 @@ msgid "Language: %s\n"
 msgstr " Twoja wersja: \"%s\"\n"
 
 #, fuzzy
+msgid "Rationale for suppression:"
+msgstr "Wprowadź opis tego zewnętrznego identyfikatora."
+
+#, fuzzy
 msgid "Suppressed active dynamic hint"
 msgstr "Usuwanie epizodu"
 
@@ -12930,14 +12954,6 @@ msgid ""
 "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"
@@ -14199,7 +14215,7 @@ msgid "Missing long name for template."
 msgstr "Długa,opisowa nazwa tego szablonu."
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr "Ostatnio pracowano %s\n"
 
 msgid "Choose a form template file"
@@ -14208,6 +14224,10 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+#, fuzzy
+msgid "Receiver"
+msgstr " Twoja wersja: \"%s\"\n"
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -14226,10 +14246,6 @@ msgid "Bill receiver"
 msgstr "Wybierz zdarzenie"
 
 #, fuzzy
-msgid "Receiver"
-msgstr " Twoja wersja: \"%s\"\n"
-
-#, fuzzy
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
@@ -19129,6 +19145,14 @@ msgstr "Przerwij"
 msgid "Abort and do NOT connect to GNUmed."
 msgstr "Przerwij i NIE łącz z GNUmed-em"
 
+#, fuzzy
+#~ msgid "&Addresses"
+#~ msgstr "Adres"
+
+#, fuzzy
+#~ msgid "Or&Ganizations"
+#~ msgstr "Dodawanie nowego epizodu"
+
 #~ msgid "episode"
 #~ msgstr "epizod"
 
diff --git a/client/po/pt-gnumed.mo b/client/po/pt-gnumed.mo
index 8a6cd81..7c443ee 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 ed58d56..9ad6314 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:56+0200\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"
@@ -4401,14 +4401,6 @@ msgid "Select the paperwork receiver:"
 msgstr "Selecciona o tipo de consulta"
 
 #, fuzzy
-msgid "&Addresses"
-msgstr "Endereço"
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "Organização"
-
-#, fuzzy
 msgid "&OK"
 msgstr "OK"
 
@@ -4433,14 +4425,14 @@ msgid "Manage generic list of all addresses."
 msgstr "Adicionando novo endereço"
 
 #, fuzzy
-msgid "Manage known organizations and units thereof."
-msgstr "Acrescenta uma empresa"
-
-#, fuzzy
 msgid "Select the organizational unit you want to write to."
 msgstr "Nome da organização"
 
 #, fuzzy
+msgid "Manage known organizations and units thereof."
+msgstr "Acrescenta uma empresa"
+
+#, fuzzy
 msgid "Use the above name and address."
 msgstr "obrigatório selecionar endereço"
 
@@ -4448,16 +4440,40 @@ msgstr "obrigatório selecionar endereço"
 msgid "Abort the receiver selection."
 msgstr "Cancelar seleção de pessoa."
 
-#, fuzzy
-msgid "Selected receiver"
-msgstr "Selecione"
-
 msgid "Address"
 msgstr "Endereço"
 
 #, fuzzy
-msgid "Manage:"
-msgstr "Administrar as descrições."
+msgid "Selected Receiver"
+msgstr "Selecione"
+
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
+msgstr ""
 
 msgid "Quick picks"
 msgstr ""
@@ -5558,6 +5574,10 @@ msgid "Research:"
 msgstr "Pesquisa"
 
 #, fuzzy
+msgid "Manage:"
+msgstr "Administrar as descrições."
+
+#, fuzzy
 msgid "Certainty:"
 msgstr "Certamente"
 
@@ -7991,6 +8011,10 @@ msgid "Language: %s\n"
 msgstr "Idioma"
 
 #, fuzzy
+msgid "Rationale for suppression:"
+msgstr "Detalhes da fila de espera para esse paciente."
+
+#, fuzzy
 msgid "Suppressed active dynamic hint"
 msgstr "Apagando documento"
 
@@ -13262,14 +13286,6 @@ msgid ""
 "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"
@@ -14562,7 +14578,7 @@ msgid "Missing long name for template."
 msgstr "Apagar do modelo"
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr "Modificado em:"
 
 msgid "Choose a form template file"
@@ -14572,6 +14588,10 @@ msgid "Enter a filename to save the template to"
 msgstr ""
 
 #, fuzzy
+msgid "Receiver"
+msgstr "Paciente"
+
+#, fuzzy
 msgid "Emergency contact"
 msgstr "&Urgencia"
 
@@ -14590,10 +14610,6 @@ msgstr "Sua revisão"
 msgid "Bill receiver"
 msgstr "Selecione"
 
-#, fuzzy
-msgid "Receiver"
-msgstr "Paciente"
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
@@ -19728,6 +19744,14 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr "Imterromper e NÃO ligar ao GNUmed"
 
 #, fuzzy
+#~ msgid "&Addresses"
+#~ msgstr "Endereço"
+
+#, fuzzy
+#~ msgid "Or&Ganizations"
+#~ msgstr "Organização"
+
+#, fuzzy
 #~ msgid "Study time"
 #~ msgstr "Iniciar Nova"
 
diff --git a/client/po/pt_BR-gnumed.mo b/client/po/pt_BR-gnumed.mo
index a377c8d..b8e2bb9 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 6ce4e9a..d462b15 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:56+0200\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"
@@ -4536,14 +4536,6 @@ msgid "Select the paperwork receiver:"
 msgstr "Selecione o tipo de consulta"
 
 #, fuzzy
-msgid "&Addresses"
-msgstr "Endereço"
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "Consultas: %s (%s - %s):"
-
-#, fuzzy
 msgid "&OK"
 msgstr "OK"
 
@@ -4568,14 +4560,14 @@ msgid "Manage generic list of all addresses."
 msgstr "Administrar as descrições."
 
 #, fuzzy
-msgid "Manage known organizations and units thereof."
-msgstr "Administrar as descrições."
-
-#, fuzzy
 msgid "Select the organizational unit you want to write to."
 msgstr "Selecione o episódio para o qual você quer mover a descrição"
 
 #, fuzzy
+msgid "Manage known organizations and units thereof."
+msgstr "Administrar as descrições."
+
+#, fuzzy
 msgid "Use the above name and address."
 msgstr "obrigatório selecionar endereço"
 
@@ -4583,16 +4575,40 @@ msgstr "obrigatório selecionar endereço"
 msgid "Abort the receiver selection."
 msgstr "Cancelar seleção de pessoa."
 
-#, fuzzy
-msgid "Selected receiver"
-msgstr "Selecionando paciente"
-
 msgid "Address"
 msgstr "Endereço"
 
 #, fuzzy
-msgid "Manage:"
-msgstr "Gerenciar"
+msgid "Selected Receiver"
+msgstr "Selecionando paciente"
+
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
+msgstr ""
 
 msgid "Quick picks"
 msgstr ""
@@ -5718,6 +5734,10 @@ msgid "Research:"
 msgstr "Pesquisa"
 
 #, fuzzy
+msgid "Manage:"
+msgstr "Gerenciar"
+
+#, fuzzy
 msgid "Certainty:"
 msgstr "Certamente"
 
@@ -8169,6 +8189,10 @@ msgid "Language: %s\n"
 msgstr "Idioma"
 
 #, fuzzy
+msgid "Rationale for suppression:"
+msgstr "Detalhes da fila de espera para esse paciente."
+
+#, fuzzy
 msgid "Suppressed active dynamic hint"
 msgstr "Apagando documento"
 
@@ -13445,14 +13469,6 @@ msgid ""
 "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"
@@ -14749,7 +14765,7 @@ msgid "Missing long name for template."
 msgstr "Apagar do modelo"
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr "Modificado em:"
 
 msgid "Choose a form template file"
@@ -14759,6 +14775,10 @@ msgid "Enter a filename to save the template to"
 msgstr ""
 
 #, fuzzy
+msgid "Receiver"
+msgstr " Receptor: #%s\n"
+
+#, fuzzy
 msgid "Emergency contact"
 msgstr "&Urgencia"
 
@@ -14776,10 +14796,6 @@ msgstr "Sua revisão"
 msgid "Bill receiver"
 msgstr "Selecionando paciente"
 
-#, fuzzy
-msgid "Receiver"
-msgstr " Receptor: #%s\n"
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
@@ -19916,6 +19932,14 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr "Cancelar e NÃO conectar ao GNUmed."
 
 #, fuzzy
+#~ msgid "&Addresses"
+#~ msgstr "Endereço"
+
+#, fuzzy
+#~ msgid "Or&Ganizations"
+#~ msgstr "Consultas: %s (%s - %s):"
+
+#, fuzzy
 #~ msgid "Study time"
 #~ msgstr "Iniciar Nova"
 
diff --git a/client/po/ro-gnumed.mo b/client/po/ro-gnumed.mo
index b7d5f0c..9dbfe54 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 8017c63..9c2d0ce 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:56+0200\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"
@@ -3985,12 +3985,6 @@ msgstr ""
 msgid "Select the paperwork receiver:"
 msgstr ""
 
-msgid "&Addresses"
-msgstr ""
-
-msgid "Or&Ganizations"
-msgstr ""
-
 msgid "&OK"
 msgstr ""
 
@@ -4012,10 +4006,10 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr ""
 
-msgid "Manage known organizations and units thereof."
+msgid "Select the organizational unit you want to write to."
 msgstr ""
 
-msgid "Select the organizational unit you want to write to."
+msgid "Manage known organizations and units thereof."
 msgstr ""
 
 msgid "Use the above name and address."
@@ -4024,13 +4018,38 @@ msgstr ""
 msgid "Abort the receiver selection."
 msgstr ""
 
-msgid "Selected receiver"
+msgid "Address"
 msgstr ""
 
-msgid "Address"
+msgid "Selected Receiver"
 msgstr ""
 
-msgid "Manage:"
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
 msgstr ""
 
 msgid "Quick picks"
@@ -5042,6 +5061,9 @@ msgstr ""
 msgid "Research:"
 msgstr ""
 
+msgid "Manage:"
+msgstr ""
+
 msgid "Certainty:"
 msgstr ""
 
@@ -7247,6 +7269,9 @@ msgstr ""
 msgid "Language: %s\n"
 msgstr ""
 
+msgid "Rationale for suppression:"
+msgstr ""
+
 msgid "Suppressed active dynamic hint"
 msgstr ""
 
@@ -12145,14 +12170,6 @@ msgid ""
 "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 ""
 
@@ -13347,7 +13364,7 @@ msgid "Missing long name for template."
 msgstr ""
 
 #, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr ""
 
 msgid "Choose a form template file"
@@ -13356,6 +13373,9 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+msgid "Receiver"
+msgstr ""
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -13371,9 +13391,6 @@ msgstr ""
 msgid "Bill receiver"
 msgstr ""
 
-msgid "Receiver"
-msgstr ""
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
diff --git a/client/po/ru-gnumed.mo b/client/po/ru-gnumed.mo
index d8f0915..74de07d 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 381f94f..e3926ef 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:56+0200\n"
 "PO-Revision-Date: 2012-01-21 13:50+0000\n"
 "Last-Translator: YvLy <Unknown>\n"
 "Language-Team: Russian <ru at li.org>\n"
@@ -4679,14 +4679,6 @@ msgid "Select the paperwork receiver:"
 msgstr "Выберите тип обращения."
 
 #, fuzzy
-msgid "&Addresses"
-msgstr "Адрес"
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "Организация"
-
-#, fuzzy
 msgid "&OK"
 msgstr "OK"
 
@@ -4711,16 +4703,16 @@ msgid "Manage generic list of all addresses."
 msgstr "Сохранение адреса"
 
 #, fuzzy
-msgid "Manage known organizations and units thereof."
-msgstr "Управление организациями и их подразделениями."
-
-#, fuzzy
 msgid "Select the organizational unit you want to write to."
 msgstr ""
 "\n"
 "Выберите нужное пребывание в стационаре для редактирования!\n"
 
 #, fuzzy
+msgid "Manage known organizations and units thereof."
+msgstr "Управление организациями и их подразделениями."
+
+#, fuzzy
 msgid "Use the above name and address."
 msgstr "должен выбрать адрес"
 
@@ -4728,16 +4720,40 @@ msgstr "должен выбрать адрес"
 msgid "Abort the receiver selection."
 msgstr "Выбор неверного адреса."
 
-#, fuzzy
-msgid "Selected receiver"
-msgstr "Выбор пациента"
-
 msgid "Address"
 msgstr "Адрес"
 
 #, fuzzy
-msgid "Manage:"
-msgstr "Редактор"
+msgid "Selected Receiver"
+msgstr "Выбор пациента"
+
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
+msgstr ""
 
 msgid "Quick picks"
 msgstr ""
@@ -5935,6 +5951,10 @@ msgid "Research:"
 msgstr "Найти"
 
 #, fuzzy
+msgid "Manage:"
+msgstr "Редактор"
+
+#, fuzzy
 msgid "Certainty:"
 msgstr "Подтвердить"
 
@@ -8473,6 +8493,10 @@ msgid "Language: %s\n"
 msgstr "Язык"
 
 #, fuzzy
+msgid "Rationale for suppression:"
+msgstr "Введите имя файла для сохранения этого шаблона в"
+
+#, fuzzy
 msgid "Suppressed active dynamic hint"
 msgstr "Отображение вакцин."
 
@@ -14184,15 +14208,6 @@ msgid ""
 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 "Операции с эпизодом:"
 
@@ -15615,7 +15630,7 @@ msgid "Missing long name for template."
 msgstr "Удаление шаблона формы."
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr "Последнее изменение:"
 
 msgid "Choose a form template file"
@@ -15626,6 +15641,10 @@ msgid "Enter a filename to save the template to"
 msgstr "Введите имя файла для сохранения этого шаблона в"
 
 #, fuzzy
+msgid "Receiver"
+msgstr " Режим: %s\n"
+
+#, fuzzy
 msgid "Emergency contact"
 msgstr "Экстренные контакты (в БД)"
 
@@ -15645,10 +15664,6 @@ msgstr "Ваше заключение"
 msgid "Bill receiver"
 msgstr "Выбор пациента"
 
-#, fuzzy
-msgid "Receiver"
-msgstr " Режим: %s\n"
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
@@ -21287,6 +21302,23 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr "Отменить и НЕ подключаться к GNUmed."
 
 #, fuzzy
+#~ msgid "&Addresses"
+#~ msgstr "Адрес"
+
+#, fuzzy
+#~ msgid "Or&Ganizations"
+#~ 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 "Study time"
 #~ msgstr "Запустить новое"
 
diff --git a/client/po/ru_RU-gnumed.mo b/client/po/ru_RU-gnumed.mo
index 464c82c..76a9fe1 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 a877fcf..51ac645 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:56+0200\n"
 "PO-Revision-Date: 2012-05-30 18:43+0000\n"
 "Last-Translator: YvLy <Unknown>\n"
 "Language-Team: Russian <ru at li.org>\n"
@@ -4684,14 +4684,6 @@ msgid "Select the paperwork receiver:"
 msgstr "Выберите тип обращения."
 
 #, fuzzy
-msgid "&Addresses"
-msgstr "Адрес"
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "Организация"
-
-#, fuzzy
 msgid "&OK"
 msgstr "OK"
 
@@ -4716,14 +4708,14 @@ msgid "Manage generic list of all addresses."
 msgstr "Сохранение адреса"
 
 #, fuzzy
-msgid "Manage known organizations and units thereof."
-msgstr "Управление организациями и их подразделениями."
-
-#, fuzzy
 msgid "Select the organizational unit you want to write to."
 msgstr "Выберите единицу организации."
 
 #, fuzzy
+msgid "Manage known organizations and units thereof."
+msgstr "Управление организациями и их подразделениями."
+
+#, fuzzy
 msgid "Use the above name and address."
 msgstr "должен выбрать адрес"
 
@@ -4731,16 +4723,40 @@ msgstr "должен выбрать адрес"
 msgid "Abort the receiver selection."
 msgstr "Выбор неверного адреса."
 
-#, fuzzy
-msgid "Selected receiver"
-msgstr "Выбор пациента"
-
 msgid "Address"
 msgstr "Адрес"
 
 #, fuzzy
-msgid "Manage:"
-msgstr "Редактор"
+msgid "Selected Receiver"
+msgstr "Выбор пациента"
+
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
+msgstr ""
 
 msgid "Quick picks"
 msgstr ""
@@ -5936,6 +5952,10 @@ msgid "Research:"
 msgstr "Найти"
 
 #, fuzzy
+msgid "Manage:"
+msgstr "Редактор"
+
+#, fuzzy
 msgid "Certainty:"
 msgstr "Подтвердить"
 
@@ -8458,6 +8478,10 @@ msgid "Language: %s\n"
 msgstr "Язык: %s\n"
 
 #, fuzzy
+msgid "Rationale for suppression:"
+msgstr "Введите имя файла для сохранения этого шаблона в"
+
+#, fuzzy
 msgid "Suppressed active dynamic hint"
 msgstr "Отображение динамических подсказок."
 
@@ -14099,20 +14123,6 @@ msgid ""
 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 "Действия с эпизодом:"
 
@@ -15533,7 +15543,7 @@ msgid "Missing long name for template."
 msgstr "Удаление шаблона формы."
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr "Последнее изменение:"
 
 msgid "Choose a form template file"
@@ -15544,6 +15554,10 @@ msgid "Enter a filename to save the template to"
 msgstr "Введите имя файла для сохранения этого шаблона в"
 
 #, fuzzy
+msgid "Receiver"
+msgstr " Получатель: #%s\n"
+
+#, fuzzy
 msgid "Emergency contact"
 msgstr "Экстренные контакты (в БД)"
 
@@ -15562,10 +15576,6 @@ msgstr "Ваше заключение"
 msgid "Bill receiver"
 msgstr "Выбор пациента"
 
-#, fuzzy
-msgid "Receiver"
-msgstr " Получатель: #%s\n"
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
@@ -21175,6 +21185,28 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr "Отменить и НЕ подключаться к GNUmed."
 
 #, fuzzy
+#~ msgid "&Addresses"
+#~ msgstr "Адрес"
+
+#, fuzzy
+#~ msgid "Or&Ganizations"
+#~ 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 "Study time"
 #~ msgstr "Запустить новое"
 
diff --git a/client/po/sq-gnumed.mo b/client/po/sq-gnumed.mo
index b799b68..e0f41f3 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 ce2f608..09e5cbc 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: 2016-07-07 14:56+0200\n"
+"POT-Creation-Date: 2016-08-01 11:56+0200\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"
@@ -4154,13 +4154,6 @@ msgstr ""
 msgid "Select the paperwork receiver:"
 msgstr ""
 
-msgid "&Addresses"
-msgstr ""
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "Organizate: %s (%s)"
-
 msgid "&OK"
 msgstr ""
 
@@ -4182,10 +4175,10 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr ""
 
-msgid "Manage known organizations and units thereof."
+msgid "Select the organizational unit you want to write to."
 msgstr ""
 
-msgid "Select the organizational unit you want to write to."
+msgid "Manage known organizations and units thereof."
 msgstr ""
 
 msgid "Use the above name and address."
@@ -4194,14 +4187,39 @@ msgstr ""
 msgid "Abort the receiver selection."
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 #, fuzzy
-msgid "Selected receiver"
+msgid "Selected Receiver"
 msgstr "Zgjidhni ngjarje"
 
-msgid "Address"
+msgid "$<receiver_name::::>$"
 msgstr ""
 
-msgid "Manage:"
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
 msgstr ""
 
 msgid "Quick picks"
@@ -5216,6 +5234,9 @@ msgstr "Ilac"
 msgid "Research:"
 msgstr ""
 
+msgid "Manage:"
+msgstr ""
+
 #, fuzzy
 msgid "Certainty:"
 msgstr "Kontenier:"
@@ -7505,6 +7526,9 @@ msgstr ""
 msgid "Language: %s\n"
 msgstr ""
 
+msgid "Rationale for suppression:"
+msgstr ""
+
 #, fuzzy
 msgid "Suppressed active dynamic hint"
 msgstr "Hap nje linje kohore egzistuese..."
@@ -12463,14 +12487,6 @@ msgid ""
 "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 ""
 
@@ -13690,7 +13706,7 @@ msgid "Missing long name for template."
 msgstr ""
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr " (konfirmimi i fundit %s)"
 
 msgid "Choose a form template file"
@@ -13699,6 +13715,10 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+#, fuzzy
+msgid "Receiver"
+msgstr " Pritesi: #%s\n"
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -13716,10 +13736,6 @@ msgstr "orë"
 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"
@@ -18429,6 +18445,10 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
 
 #, fuzzy
+#~ msgid "Or&Ganizations"
+#~ msgstr "Organizate: %s (%s)"
+
+#, fuzzy
 #~ msgid "Copy to e&xport area..."
 #~ msgstr "E pamundur te kopjoj"
 
diff --git a/client/po/sr-gnumed.mo b/client/po/sr-gnumed.mo
index 9475446..38b0133 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 505f983..e3ca325 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: 2016-07-07 14:57+0200\n"
+"POT-Creation-Date: 2016-08-01 11:56+0200\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"
@@ -4096,13 +4096,6 @@ msgstr ""
 msgid "Select the paperwork receiver:"
 msgstr ""
 
-msgid "&Addresses"
-msgstr ""
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "&Вакцинације"
-
 msgid "&OK"
 msgstr ""
 
@@ -4125,13 +4118,13 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr "Уреди вакцинације"
 
+msgid "Select the organizational unit you want to write to."
+msgstr ""
+
 #, fuzzy
 msgid "Manage known organizations and units thereof."
 msgstr "Уреди вакцинације"
 
-msgid "Select the organizational unit you want to write to."
-msgstr ""
-
 #, fuzzy
 msgid "Use the above name and address."
 msgstr "Брисање вакцине"
@@ -4139,16 +4132,40 @@ msgstr "Брисање вакцине"
 msgid "Abort the receiver selection."
 msgstr ""
 
+msgid "Address"
+msgstr ""
+
 #, fuzzy
-msgid "Selected receiver"
+msgid "Selected Receiver"
 msgstr "Брисање вакцине"
 
-msgid "Address"
+msgid "$<receiver_name::::>$"
 msgstr ""
 
-#, fuzzy
-msgid "Manage:"
-msgstr "Уреди вакцинације"
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
+msgstr ""
 
 msgid "Quick picks"
 msgstr ""
@@ -5167,6 +5184,10 @@ msgstr "Лек"
 msgid "Research:"
 msgstr ""
 
+#, fuzzy
+msgid "Manage:"
+msgstr "Уреди вакцинације"
+
 msgid "Certainty:"
 msgstr ""
 
@@ -7429,6 +7450,12 @@ msgid "Language: %s\n"
 msgstr "Пацијент: %s (%s), Бр: %s\n"
 
 #, fuzzy
+msgid "Rationale for suppression:"
+msgstr ""
+"\n"
+"Комплетна историја вакцинације овог пацијента.\n"
+
+#, fuzzy
 msgid "Suppressed active dynamic hint"
 msgstr "Приказивање вакцина."
 
@@ -12436,14 +12463,6 @@ msgid ""
 "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 ""
 
@@ -13682,7 +13701,7 @@ msgid "Missing long name for template."
 msgstr ""
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr "Последње потрврђено:"
 
 msgid "Choose a form template file"
@@ -13691,6 +13710,10 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+#, fuzzy
+msgid "Receiver"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -13708,10 +13731,6 @@ msgstr "вакцина"
 msgid "Bill receiver"
 msgstr "Брисање вакцине"
 
-#, fuzzy
-msgid "Receiver"
-msgstr "Пацијент: %s (%s), Бр: %s\n"
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
@@ -18500,6 +18519,10 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
 
 #, fuzzy
+#~ msgid "Or&Ganizations"
+#~ msgstr "&Вакцинације"
+
+#, fuzzy
 #~ msgid "health issue"
 #~ msgstr "Здравствени проблем"
 
diff --git a/client/po/sv-gnumed.mo b/client/po/sv-gnumed.mo
index 2beb2ee..2c40121 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 217091a..12da35a 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: 2016-07-07 14:57+0200\n"
+"POT-Creation-Date: 2016-08-01 11:56+0200\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"
@@ -4281,13 +4281,6 @@ msgstr ""
 msgid "Select the paperwork receiver:"
 msgstr "Välj typ av undersökning"
 
-msgid "&Addresses"
-msgstr ""
-
-#, fuzzy
-msgid "Or&Ganizations"
-msgstr "Organisation: %s (%s)"
-
 msgid "&OK"
 msgstr ""
 
@@ -4311,15 +4304,15 @@ msgid "Manage generic list of all addresses."
 msgstr ""
 
 #, fuzzy
-msgid "Manage known organizations and units thereof."
-msgstr "Senaste vaccineringar"
-
-#, fuzzy
 msgid "Select the organizational unit you want to write to."
 msgstr ""
 "\n"
 "Välj den undersökningstyp du vill redigera!\n"
 
+#, fuzzy
+msgid "Manage known organizations and units thereof."
+msgstr "Senaste vaccineringar"
+
 msgid "Use the above name and address."
 msgstr ""
 
@@ -4327,16 +4320,40 @@ msgstr ""
 msgid "Abort the receiver selection."
 msgstr "Den för närvarande valda patienten är:"
 
+msgid "Address"
+msgstr ""
+
 #, fuzzy
-msgid "Selected receiver"
+msgid "Selected Receiver"
 msgstr "Välj händelse"
 
-msgid "Address"
+msgid "$<receiver_name::::>$"
 msgstr ""
 
-#, fuzzy
-msgid "Manage:"
-msgstr "Provtagnings-resultat"
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
+msgstr ""
 
 msgid "Quick picks"
 msgstr ""
@@ -5375,6 +5392,10 @@ msgid "Research:"
 msgstr ""
 
 #, fuzzy
+msgid "Manage:"
+msgstr "Provtagnings-resultat"
+
+#, fuzzy
 msgid "Certainty:"
 msgstr "Behållare:"
 
@@ -7710,6 +7731,10 @@ msgid "Language: %s\n"
 msgstr ""
 
 #, fuzzy
+msgid "Rationale for suppression:"
+msgstr "externt patient-ID"
+
+#, fuzzy
 msgid "Suppressed active dynamic hint"
 msgstr "Öppna en befintlig tidslinje"
 
@@ -12731,14 +12756,6 @@ msgid ""
 "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:"
@@ -13980,7 +13997,7 @@ msgid "Missing long name for template."
 msgstr ""
 
 #, fuzzy, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr "Senast bearbetad: %s\n"
 
 msgid "Choose a form template file"
@@ -13989,6 +14006,9 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+msgid "Receiver"
+msgstr ""
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -14006,9 +14026,6 @@ msgstr "timmar"
 msgid "Bill receiver"
 msgstr "Välj händelse"
 
-msgid "Receiver"
-msgstr ""
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
@@ -18867,6 +18884,10 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr "Avbryt och anslut EJ till GNUmed."
 
 #, fuzzy
+#~ msgid "Or&Ganizations"
+#~ msgstr "Organisation: %s (%s)"
+
+#, fuzzy
 #~ msgid "Copy to e&xport area..."
 #~ msgstr "Lägger till ny undersökningstyp"
 
diff --git a/client/po/tr-gnumed.mo b/client/po/tr-gnumed.mo
index 821e880..2e14d9f 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 4d69374..2ad5528 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: 2016-07-07 14:57+0200\n"
+"POT-Creation-Date: 2016-08-01 11:56+0200\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"
@@ -4003,12 +4003,6 @@ msgstr ""
 msgid "Select the paperwork receiver:"
 msgstr ""
 
-msgid "&Addresses"
-msgstr ""
-
-msgid "Or&Ganizations"
-msgstr ""
-
 msgid "&OK"
 msgstr ""
 
@@ -4030,10 +4024,10 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr ""
 
-msgid "Manage known organizations and units thereof."
+msgid "Select the organizational unit you want to write to."
 msgstr ""
 
-msgid "Select the organizational unit you want to write to."
+msgid "Manage known organizations and units thereof."
 msgstr ""
 
 msgid "Use the above name and address."
@@ -4042,13 +4036,39 @@ msgstr ""
 msgid "Abort the receiver selection."
 msgstr ""
 
-msgid "Selected receiver"
+msgid "Address"
 msgstr ""
 
-msgid "Address"
+#, fuzzy
+msgid "Selected Receiver"
+msgstr "Etkinliği Düzelt"
+
+msgid "$<receiver_name::::>$"
 msgstr ""
 
-msgid "Manage:"
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
 msgstr ""
 
 msgid "Quick picks"
@@ -5060,6 +5080,9 @@ msgstr ""
 msgid "Research:"
 msgstr ""
 
+msgid "Manage:"
+msgstr ""
+
 msgid "Certainty:"
 msgstr ""
 
@@ -7268,6 +7291,9 @@ msgstr ""
 msgid "Language: %s\n"
 msgstr ""
 
+msgid "Rationale for suppression:"
+msgstr ""
+
 msgid "Suppressed active dynamic hint"
 msgstr ""
 
@@ -12167,14 +12193,6 @@ msgid ""
 "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 ""
 
@@ -13372,7 +13390,7 @@ msgid "Missing long name for template."
 msgstr ""
 
 #, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr ""
 
 msgid "Choose a form template file"
@@ -13381,6 +13399,9 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+msgid "Receiver"
+msgstr ""
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -13396,9 +13417,6 @@ msgstr ""
 msgid "Bill receiver"
 msgstr ""
 
-msgid "Receiver"
-msgstr ""
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
diff --git a/client/po/uk-gnumed.mo b/client/po/uk-gnumed.mo
index a3a18f1..d73b115 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 7faf361..d819152 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: 2016-07-07 14:57+0200\n"
+"POT-Creation-Date: 2016-08-01 11:56+0200\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"
@@ -3985,12 +3985,6 @@ msgstr ""
 msgid "Select the paperwork receiver:"
 msgstr ""
 
-msgid "&Addresses"
-msgstr ""
-
-msgid "Or&Ganizations"
-msgstr ""
-
 msgid "&OK"
 msgstr ""
 
@@ -4012,10 +4006,10 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr ""
 
-msgid "Manage known organizations and units thereof."
+msgid "Select the organizational unit you want to write to."
 msgstr ""
 
-msgid "Select the organizational unit you want to write to."
+msgid "Manage known organizations and units thereof."
 msgstr ""
 
 msgid "Use the above name and address."
@@ -4024,13 +4018,38 @@ msgstr ""
 msgid "Abort the receiver selection."
 msgstr ""
 
-msgid "Selected receiver"
+msgid "Address"
 msgstr ""
 
-msgid "Address"
+msgid "Selected Receiver"
 msgstr ""
 
-msgid "Manage:"
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
 msgstr ""
 
 msgid "Quick picks"
@@ -5042,6 +5061,9 @@ msgstr ""
 msgid "Research:"
 msgstr ""
 
+msgid "Manage:"
+msgstr ""
+
 msgid "Certainty:"
 msgstr ""
 
@@ -7245,6 +7267,9 @@ msgstr ""
 msgid "Language: %s\n"
 msgstr ""
 
+msgid "Rationale for suppression:"
+msgstr ""
+
 msgid "Suppressed active dynamic hint"
 msgstr ""
 
@@ -12143,14 +12168,6 @@ msgid ""
 "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 ""
 
@@ -13345,7 +13362,7 @@ msgid "Missing long name for template."
 msgstr ""
 
 #, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr ""
 
 msgid "Choose a form template file"
@@ -13354,6 +13371,9 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+msgid "Receiver"
+msgstr ""
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -13369,9 +13389,6 @@ msgstr ""
 msgid "Bill receiver"
 msgstr ""
 
-msgid "Receiver"
-msgstr ""
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
diff --git a/client/po/zh_TW-gnumed.mo b/client/po/zh_TW-gnumed.mo
index a0d4675..a20c1ab 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 cddd27c..f1ff160 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: 2016-07-07 14:57+0200\n"
+"POT-Creation-Date: 2016-08-01 11:56+0200\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"
@@ -3989,12 +3989,6 @@ msgstr ""
 msgid "Select the paperwork receiver:"
 msgstr ""
 
-msgid "&Addresses"
-msgstr ""
-
-msgid "Or&Ganizations"
-msgstr ""
-
 msgid "&OK"
 msgstr ""
 
@@ -4016,10 +4010,10 @@ msgstr ""
 msgid "Manage generic list of all addresses."
 msgstr ""
 
-msgid "Manage known organizations and units thereof."
+msgid "Select the organizational unit you want to write to."
 msgstr ""
 
-msgid "Select the organizational unit you want to write to."
+msgid "Manage known organizations and units thereof."
 msgstr ""
 
 msgid "Use the above name and address."
@@ -4028,13 +4022,38 @@ msgstr ""
 msgid "Abort the receiver selection."
 msgstr ""
 
-msgid "Selected receiver"
+msgid "Address"
 msgstr ""
 
-msgid "Address"
+msgid "Selected Receiver"
 msgstr ""
 
-msgid "Manage:"
+msgid "$<receiver_name::::>$"
+msgstr ""
+
+msgid "address['l10n_country'] → $<receiver_country::::>$"
+msgstr ""
+
+msgid "address['l10n_region'] → $<receiver_region::::>$"
+msgstr ""
+
+msgid "ZIP"
+msgstr ""
+
+msgid "address['postcode'] → $<receiver_postcode::::>$"
+msgstr ""
+
+msgid ""
+"address['urb'] → $<receiver_urb::::>$\n"
+"address['suburb'] → $<receiver_suburb::::>$"
+msgstr ""
+
+msgid "address['street'] → $<receiver_street::::>$"
+msgstr ""
+
+msgid ""
+"address['number'] → $<receiver_number::::>$\n"
+"address['subunit'] → $<receiver_subunit::::>$"
 msgstr ""
 
 msgid "Quick picks"
@@ -5046,6 +5065,9 @@ msgstr ""
 msgid "Research:"
 msgstr ""
 
+msgid "Manage:"
+msgstr ""
+
 msgid "Certainty:"
 msgstr ""
 
@@ -7255,6 +7277,9 @@ msgstr ""
 msgid "Language: %s\n"
 msgstr ""
 
+msgid "Rationale for suppression:"
+msgstr ""
+
 msgid "Suppressed active dynamic hint"
 msgstr ""
 
@@ -12159,14 +12184,6 @@ msgid ""
 "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 ""
 
@@ -13362,7 +13379,7 @@ msgid "Missing long name for template."
 msgstr ""
 
 #, python-format
-msgid "last modified %s by %s"
+msgid "last modified %s by %s, internal revision [%s]"
 msgstr ""
 
 msgid "Choose a form template file"
@@ -13371,6 +13388,9 @@ msgstr ""
 msgid "Enter a filename to save the template to"
 msgstr ""
 
+msgid "Receiver"
+msgstr ""
+
 msgid "Emergency contact"
 msgstr ""
 
@@ -13386,9 +13406,6 @@ msgstr ""
 msgid "Bill receiver"
 msgstr ""
 
-msgid "Receiver"
-msgstr ""
-
 msgid ""
 "Are you sure you want to delete this\n"
 "description from the document ?\n"
diff --git a/client/pycommon/gmDateTime.py b/client/pycommon/gmDateTime.py
index 06cd3ea..37aed7c 100644
--- a/client/pycommon/gmDateTime.py
+++ b/client/pycommon/gmDateTime.py
@@ -240,6 +240,7 @@ def mxdt2py_dt(mxDateTime):
 			mxDateTime.tz
 		)
 		raise
+
 #===========================================================================
 def format_dob(dob, format='%Y %b %d', encoding=None, none_string=None, dob_is_estimated=False):
 	if dob is None:
@@ -252,6 +253,7 @@ def format_dob(dob, format='%Y %b %d', encoding=None, none_string=None, dob_is_e
 		return u'%s%s' % (u'\u2248', dob_txt)
 
 	return dob_txt
+
 #---------------------------------------------------------------------------
 def pydt_strftime(dt=None, format='%Y %b %d  %H:%M.%S', encoding=None, accuracy=None, none_str=None):
 
@@ -296,6 +298,7 @@ def pydt_strftime(dt=None, format='%Y %b %d  %H:%M.%S', encoding=None, accuracy=
 		dt.minute,
 		dt.second
 	)
+
 #---------------------------------------------------------------------------
 def pydt_replace(dt=None, year=None, month=None, day=None, hour=None, minute=None, second=None, microsecond=None, tzinfo=None, strict=True):
 
@@ -338,13 +341,16 @@ def pydt_replace(dt=None, year=None, month=None, day=None, hour=None, minute=Non
 			day = 30
 
 	return dt.replace(year = year, month = month, day = day, hour = hour, minute = minute, second = second, microsecond = microsecond, tzinfo = tzinfo)
+
 #---------------------------------------------------------------------------
 def pydt_now_here():
 	"""Returns NOW @ HERE (IOW, in the local timezone."""
 	return pyDT.datetime.now(gmCurrentLocalTimezone)
+
 #---------------------------------------------------------------------------
 def pydt_max_here():
 	return pyDT.datetime.max.replace(tzinfo = gmCurrentLocalTimezone)
+
 #---------------------------------------------------------------------------
 def wx_now_here(wx=None):
 	"""Returns NOW @ HERE (IOW, in the local timezone."""
@@ -606,6 +612,7 @@ def is_leap_year(year):
 		return True
 
 	return False
+
 #---------------------------------------------------------------------------
 def calculate_apparent_age(start=None, end=None):
 	"""The result of this is a tuple (years, ..., seconds) as one would
@@ -706,6 +713,7 @@ def calculate_apparent_age(start=None, end=None):
 			seconds = seconds - 1
 
 	return (years, months, days, hours, minutes, seconds)
+
 #---------------------------------------------------------------------------
 def format_apparent_age_medically(age=None):
 	"""<age> must be a tuple as created by calculate_apparent_age()"""
diff --git a/client/pycommon/gmTools.py b/client/pycommon/gmTools.py
index bbf50cc..781f5b1 100644
--- a/client/pycommon/gmTools.py
+++ b/client/pycommon/gmTools.py
@@ -82,6 +82,7 @@ u_sum = u'\u2211'								# sigma
 u_almost_equal_to = u'\u2248'					# approximately / nearly / roughly
 u_corresponds_to = u'\u2258'
 u_infinity = u'\u221E'
+u_arrow2right_until_vertical_bar2 = u'\u2b72'	# -->|
 u_diameter = u'\u2300'
 u_checkmark_crossed_out = u'\u237B'
 u_box_vert_left = u'\u23b8'
@@ -677,6 +678,43 @@ def get_unique_filename(prefix=None, suffix=None, tmp_dir=None, include_timestam
 
 	return filename
 
+#---------------------------------------------------------------------------
+def __make_symlink_on_windows(physical_name, link_name):
+	import ctypes
+	csl = ctypes.windll.kernel32.CreateSymbolicLinkW
+	csl.argtypes = (ctypes.c_wchar_p, ctypes.c_wchar_p, ctypes.c_uint32)
+	csl.restype = ctypes.c_ubyte
+	if os.path.isdir(physical_name):
+		flags = 1
+	else:
+		flags = 0
+	ret_code = csl(link_name, physical_name.replace('/', '\\'), flags)
+	_log.debug('ctypes.windll.kernel32.CreateSymbolicLinkW() exit code: %s', ret_code)
+	if ret_code == 0:
+		raise ctypes.WinError()
+	return ret_code
+
+#---------------------------------------------------------------------------
+def mklink(physical_name, link_name, overwrite=False):
+
+	_log.debug('creating symlink (overwrite = %s):', overwrite)
+	_log.debug('link [%s] =>', link_name)
+	_log.debug('=> physical [%s]', physical_name)
+
+	if os.path.exists(link_name):
+		_log.debug('link exists')
+		if overwrite:
+			return True
+		return False
+
+	try:
+		os.symlink(physical_name, link_name)
+	except AttributeError:
+		_log.debug('Windows does not have os.symlink(), resorting to ctypes')
+		__make_symlink_on_windows(physical_name, link_name)
+
+	return True
+
 #===========================================================================
 def import_module_from_directory(module_path=None, module_name=None, always_remove_path=False):
 	"""Import a module from any location."""
@@ -1838,10 +1876,10 @@ second line\n
 	#test_fname_stem()
 	#test_tex_escape()
 	#test_dir_is_empty()
-	#test_compare_dicts()
+	test_compare_dicts()
 	#test_rm_dir()
 	#test_strip_prefix()
 	#test_shorten_text()
-	test_format_compare_dicts()
+	#test_format_compare_dicts()
 
 #===========================================================================
diff --git a/client/wxGladeWidgets/wxgReceiverSelectionDlg.py b/client/wxGladeWidgets/wxgReceiverSelectionDlg.py
index 5fd7bda..55141c0 100644
--- a/client/wxGladeWidgets/wxgReceiverSelectionDlg.py
+++ b/client/wxGladeWidgets/wxgReceiverSelectionDlg.py
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: UTF-8 -*-
 #
-# generated by wxGlade 0.6.8
+# generated by wxGlade 0.7.2
 #
 
 import wx
@@ -21,18 +21,25 @@ from Gnumed.wxpython.gmOrganizationWidgets import cOrgUnitPhraseWheel
 class wxgReceiverSelectionDlg(wx.Dialog):
 	def __init__(self, *args, **kwds):
 		# begin wxGlade: wxgReceiverSelectionDlg.__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._LBL_message_top = wx.StaticText(self, wx.ID_ANY, _("Select the paperwork receiver:"))
-		self._TCTRL_final_name = cTextCtrl(self, wx.ID_ANY, "", style=wx.NO_BORDER)
-		self._PRW_other_address = cAddressPhraseWheel(self, wx.ID_ANY, "", style=wx.NO_BORDER)
+		self._TCTRL_final_name = cTextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE)
+		self._PRW_other_address = cAddressPhraseWheel(self, wx.ID_ANY, "", style=wx.BORDER_NONE)
+		self._BTN_manage_addresses = wx.Button(self, wx.ID_ANY, _("&Manage"), style=wx.BU_EXACTFIT)
 		self._LBL_address_details = wx.StaticText(self, wx.ID_ANY, "")
-		self.__szr_info_staticbox = wx.StaticBox(self, wx.ID_ANY, "")
-		self._BTN_manage_addresses = wx.Button(self, wx.ID_ANY, _("&Addresses"), style=wx.BU_EXACTFIT)
-		self._BTN_manage_orgs = wx.Button(self, wx.ID_ANY, _("Or&Ganizations"), style=wx.BU_EXACTFIT)
-		self._LCTRL_candidates = cReportListCtrl(self, wx.ID_ANY, style=wx.LC_REPORT | wx.LC_SINGLE_SEL | wx.NO_BORDER)
-		self._PRW_org_unit = cOrgUnitPhraseWheel(self, wx.ID_ANY, "", style=wx.NO_BORDER)
-		self._LCTRL_addresses = cReportListCtrl(self, wx.ID_ANY, style=wx.LC_REPORT | wx.LC_SINGLE_SEL | wx.NO_BORDER)
+		self._TCTRL_org_unit_details = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_MULTILINE | wx.TE_READONLY)
+		self._LBL_final_name = wx.StaticText(self, wx.ID_ANY, "")
+		self._LBL_final_country = wx.StaticText(self, wx.ID_ANY, "")
+		self._LBL_final_region = wx.StaticText(self, wx.ID_ANY, "")
+		self._LBL_final_zip = wx.StaticText(self, wx.ID_ANY, "")
+		self._LBL_final_location = wx.StaticText(self, wx.ID_ANY, "")
+		self._LBL_final_street = wx.StaticText(self, wx.ID_ANY, "")
+		self._LBL_final_number = wx.StaticText(self, wx.ID_ANY, "")
+		self._LCTRL_candidates = cReportListCtrl(self, wx.ID_ANY, style=wx.BORDER_NONE | wx.LC_REPORT | wx.LC_SINGLE_SEL)
+		self._PRW_org_unit = cOrgUnitPhraseWheel(self, wx.ID_ANY, "", style=wx.BORDER_NONE)
+		self._BTN_manage_orgs = wx.Button(self, wx.ID_ANY, _("&Manage"), style=wx.BU_EXACTFIT)
+		self._LCTRL_addresses = cReportListCtrl(self, wx.ID_ANY, style=wx.BORDER_NONE | wx.LC_REPORT | wx.LC_SINGLE_SEL)
 		self._BTN_OK = wx.Button(self, wx.ID_OK, _("&OK"))
 		self._BTN_cancel = wx.Button(self, wx.ID_CANCEL, "")
 
@@ -40,20 +47,21 @@ class wxgReceiverSelectionDlg(wx.Dialog):
 		self.__do_layout()
 
 		self.Bind(wx.EVT_BUTTON, self._on_manage_addresses_button_pressed, self._BTN_manage_addresses)
-		self.Bind(wx.EVT_BUTTON, self._on_manage_orgs_button_pressed, self._BTN_manage_orgs)
 		self.Bind(wx.EVT_LIST_ITEM_SELECTED, self._on_candidate_selected, self._LCTRL_candidates)
+		self.Bind(wx.EVT_BUTTON, self._on_manage_orgs_button_pressed, self._BTN_manage_orgs)
 		self.Bind(wx.EVT_BUTTON, self._on_ok_button_pressed, id=wx.ID_OK)
 		# end wxGlade
 
 	def __set_properties(self):
 		# begin wxGlade: wxgReceiverSelectionDlg.__set_properties
 		self.SetTitle(_("Letter receiver selection"))
-		self.SetSize(wx.DLG_SZE(self, (360, 224)))
+		self.SetSize(wx.DLG_SZE(self, (360, 255)))
 		self._TCTRL_final_name.SetToolTipString(_("This name will be used.\n\nYou can edit the (or type another) name here, too."))
 		self._PRW_other_address.SetToolTipString(_("This address will be used.\n\nYou can also search for an arbitrary address in this field."))
 		self._BTN_manage_addresses.SetToolTipString(_("Manage generic list of all addresses."))
-		self._BTN_manage_orgs.SetToolTipString(_("Manage known organizations and units thereof."))
+		self._TCTRL_org_unit_details.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
 		self._PRW_org_unit.SetToolTipString(_("Select the organizational unit you want to write to."))
+		self._BTN_manage_orgs.SetToolTipString(_("Manage known organizations and units thereof."))
 		self._BTN_OK.SetToolTipString(_("Use the above name and address."))
 		self._BTN_cancel.SetToolTipString(_("Abort the receiver selection."))
 		# end wxGlade
@@ -66,44 +74,70 @@ class wxgReceiverSelectionDlg(wx.Dialog):
 		__szr_selections = wx.BoxSizer(wx.VERTICAL)
 		__szr_org_unit = wx.BoxSizer(wx.HORIZONTAL)
 		__szr_final_address = wx.BoxSizer(wx.VERTICAL)
-		__szr_mgmt_buttons = wx.BoxSizer(wx.HORIZONTAL)
-		self.__szr_info_staticbox.Lower()
-		__szr_info = wx.StaticBoxSizer(self.__szr_info_staticbox, wx.HORIZONTAL)
-		__fgszr_selected = wx.FlexGridSizer(2, 2, 2, 3)
-		__szr_main.Add(self._LBL_message_top, 0, wx.LEFT | wx.RIGHT | wx.ALIGN_CENTER_HORIZONTAL, 3)
-		__lbl_final_address = wx.StaticText(self, wx.ID_ANY, _("Selected receiver"))
-		__szr_final_address.Add(__lbl_final_address, 0, wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL, 3)
+		__fgszr_final = wx.FlexGridSizer(7, 2, 2, 3)
+		__fgszr_selected = wx.FlexGridSizer(3, 2, 2, 3)
+		__szr_main.Add(self._LBL_message_top, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.LEFT | wx.RIGHT, 3)
 		__lbl_name = wx.StaticText(self, wx.ID_ANY, _("Name"))
 		__fgszr_selected.Add(__lbl_name, 0, wx.ALIGN_CENTER_VERTICAL, 5)
-		__fgszr_selected.Add(self._TCTRL_final_name, 0, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 3)
+		__fgszr_selected.Add(self._TCTRL_final_name, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 3)
 		__lbl_address_search = wx.StaticText(self, wx.ID_ANY, _("Address"))
 		__fgszr_selected.Add(__lbl_address_search, 0, wx.ALIGN_CENTER_VERTICAL, 5)
-		__fgszr_selected.Add(self._PRW_other_address, 1, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 3)
+		__fgszr_selected.Add(self._PRW_other_address, 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 3)
+		__fgszr_selected.Add((20, 20), 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__fgszr_selected.Add(self._BTN_manage_addresses, 0, wx.ALIGN_CENTER, 3)
 		__fgszr_selected.AddGrowableCol(1)
-		__szr_final_address.Add(__fgszr_selected, 0, wx.BOTTOM | wx.EXPAND, 3)
-		__szr_info.Add(self._LBL_address_details, 1, wx.EXPAND, 0)
-		__szr_final_address.Add(__szr_info, 1, wx.LEFT | wx.BOTTOM | wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 2)
-		__lbl_manage = wx.StaticText(self, wx.ID_ANY, _("Manage:"))
-		__szr_mgmt_buttons.Add(__lbl_manage, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)
-		__szr_mgmt_buttons.Add(self._BTN_manage_addresses, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 3)
-		__szr_mgmt_buttons.Add(self._BTN_manage_orgs, 0, wx.ALIGN_CENTER_VERTICAL, 0)
-		__szr_final_address.Add(__szr_mgmt_buttons, 0, wx.TOP | wx.EXPAND, 3)
+		__szr_final_address.Add(__fgszr_selected, 0, wx.BOTTOM | wx.EXPAND, 5)
+		__szr_final_address.Add(self._LBL_address_details, 0, wx.EXPAND, 0)
+		__szr_final_address.Add(self._TCTRL_org_unit_details, 1, wx.BOTTOM | wx.EXPAND, 5)
+		__LBL_receiver_heading = wx.StaticText(self, wx.ID_ANY, _("Selected Receiver"), style=wx.ALIGN_CENTER_HORIZONTAL)
+		__szr_final_address.Add(__LBL_receiver_heading, 0, wx.ALIGN_CENTER, 0)
+		__lbl_final_name = wx.StaticText(self, wx.ID_ANY, _("Name"))
+		__lbl_final_name.SetToolTipString(_("$<receiver_name::::>$"))
+		__fgszr_final.Add(__lbl_final_name, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__fgszr_final.Add(self._LBL_final_name, 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__lbl_final_country = wx.StaticText(self, wx.ID_ANY, _("Country"))
+		__lbl_final_country.SetToolTipString(_(u"address['l10n_country'] \u2192 $<receiver_country::::>$"))
+		__fgszr_final.Add(__lbl_final_country, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__fgszr_final.Add(self._LBL_final_country, 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__lbl_final_region = wx.StaticText(self, wx.ID_ANY, _("Region"))
+		__lbl_final_region.SetToolTipString(_(u"address['l10n_region'] \u2192 $<receiver_region::::>$"))
+		__fgszr_final.Add(__lbl_final_region, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__fgszr_final.Add(self._LBL_final_region, 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__lbl_final_zip = wx.StaticText(self, wx.ID_ANY, _("ZIP"))
+		__lbl_final_zip.SetToolTipString(_(u"address['postcode'] \u2192 $<receiver_postcode::::>$"))
+		__fgszr_final.Add(__lbl_final_zip, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__fgszr_final.Add(self._LBL_final_zip, 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__lbl_final_location = wx.StaticText(self, wx.ID_ANY, _("Location"))
+		__lbl_final_location.SetToolTipString(_(u"address['urb'] \u2192 $<receiver_urb::::>$\naddress['suburb'] \u2192 $<receiver_suburb::::>$"))
+		__fgszr_final.Add(__lbl_final_location, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__fgszr_final.Add(self._LBL_final_location, 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__lbl_final_street = wx.StaticText(self, wx.ID_ANY, _("Street"))
+		__lbl_final_street.SetToolTipString(_(u"address['street'] \u2192 $<receiver_street::::>$"))
+		__fgszr_final.Add(__lbl_final_street, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__fgszr_final.Add(self._LBL_final_street, 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__lbl_final_number = wx.StaticText(self, wx.ID_ANY, _("Number"))
+		__lbl_final_number.SetToolTipString(_(u"address['number'] \u2192 $<receiver_number::::>$\naddress['subunit'] \u2192 $<receiver_subunit::::>$"))
+		__fgszr_final.Add(__lbl_final_number, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__fgszr_final.Add(self._LBL_final_number, 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__fgszr_final.AddGrowableCol(1)
+		__szr_final_address.Add(__fgszr_final, 1, 0, 0)
 		__szr_middle.Add(__szr_final_address, 2, wx.EXPAND, 5)
 		__lbl_quick_picks = wx.StaticText(self, wx.ID_ANY, _("Quick picks"))
-		__szr_selections.Add(__lbl_quick_picks, 0, wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL, 3)
-		__szr_selections.Add(self._LCTRL_candidates, 1, wx.BOTTOM | wx.EXPAND, 2)
+		__szr_selections.Add(__lbl_quick_picks, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.BOTTOM, 3)
+		__szr_selections.Add(self._LCTRL_candidates, 2, wx.BOTTOM | wx.EXPAND, 2)
 		__lbl_org_unit = wx.StaticText(self, wx.ID_ANY, _("Org:"))
-		__szr_org_unit.Add(__lbl_org_unit, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)
+		__szr_org_unit.Add(__lbl_org_unit, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
 		__szr_org_unit.Add(self._PRW_org_unit, 1, wx.ALIGN_CENTER_VERTICAL, 0)
-		__szr_selections.Add(__szr_org_unit, 0, wx.BOTTOM | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 3)
+		__szr_org_unit.Add(self._BTN_manage_orgs, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_selections.Add(__szr_org_unit, 0, wx.ALIGN_CENTER_VERTICAL | wx.BOTTOM | wx.EXPAND, 3)
 		__szr_selections.Add(self._LCTRL_addresses, 1, wx.EXPAND, 3)
-		__szr_middle.Add(__szr_selections, 3, wx.LEFT | wx.EXPAND, 5)
-		__szr_main.Add(__szr_middle, 1, wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.EXPAND, 3)
-		__szr_buttons.Add((20, 20), 1, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0)
-		__szr_buttons.Add(self._BTN_OK, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)
-		__szr_buttons.Add(self._BTN_cancel, 0, wx.LEFT | wx.ALIGN_CENTER_VERTICAL, 5)
-		__szr_buttons.Add((20, 20), 1, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0)
-		__szr_main.Add(__szr_buttons, 0, wx.LEFT | wx.RIGHT | wx.TOP | wx.EXPAND, 3)
+		__szr_middle.Add(__szr_selections, 3, wx.EXPAND | wx.LEFT, 5)
+		__szr_main.Add(__szr_middle, 1, wx.BOTTOM | wx.EXPAND | wx.LEFT | wx.RIGHT, 3)
+		__szr_buttons.Add((20, 20), 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__szr_buttons.Add(self._BTN_OK, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_buttons.Add(self._BTN_cancel, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 5)
+		__szr_buttons.Add((20, 20), 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__szr_main.Add(__szr_buttons, 0, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 3)
 		self.SetSizer(__szr_main)
 		self.Layout()
 		# end wxGlade
@@ -112,25 +146,16 @@ class wxgReceiverSelectionDlg(wx.Dialog):
 		print "Event handler '_on_manage_addresses_button_pressed' not implemented!"
 		event.Skip()
 
-	def _on_manage_orgs_button_pressed(self, event):  # wxGlade: wxgReceiverSelectionDlg.<event_handler>
-		print "Event handler '_on_manage_orgs_button_pressed' not implemented!"
-		event.Skip()
-
 	def _on_candidate_selected(self, event):  # wxGlade: wxgReceiverSelectionDlg.<event_handler>
 		print "Event handler '_on_candidate_selected' not implemented!"
 		event.Skip()
 
+	def _on_manage_orgs_button_pressed(self, event):  # wxGlade: wxgReceiverSelectionDlg.<event_handler>
+		print "Event handler '_on_manage_orgs_button_pressed' not implemented!"
+		event.Skip()
+
 	def _on_ok_button_pressed(self, event):  # wxGlade: wxgReceiverSelectionDlg.<event_handler>
 		print "Event handler '_on_ok_button_pressed' not implemented!"
 		event.Skip()
 
 # end of class wxgReceiverSelectionDlg
-if __name__ == "__main__":
-	gettext.install("app") # replace with the appropriate catalog name
-
-	app = wx.PySimpleApp(0)
-	wx.InitAllImageHandlers()
-	dialog_1 = wxgReceiverSelectionDlg(None, wx.ID_ANY, "")
-	app.SetTopWindow(dialog_1)
-	dialog_1.Show()
-	app.MainLoop()
\ No newline at end of file
diff --git a/client/wxpython/gmDocumentWidgets.py b/client/wxpython/gmDocumentWidgets.py
index a94e0ea..21abb62 100644
--- a/client/wxpython/gmDocumentWidgets.py
+++ b/client/wxpython/gmDocumentWidgets.py
@@ -1736,7 +1736,7 @@ class cDocTree(wx.TreeCtrl, gmRegetMixin.cRegetOnPaintMixin, treemixin.Expansion
 
 			# need intermediate branch level ?
 			if self.__sort_mode == 'episode':
-				inter_label = u'%s%s' % (doc['episode'], gmTools.coalesce(doc['health_issue'], u'', u' (%s)'))
+				intermediate_label = u'%s%s' % (doc['episode'], gmTools.coalesce(doc['health_issue'], u'', u' (%s)'))
 				doc_label = _('%s%7s %s:%s (%s)') % (
 					gmTools.bool2subst(doc.has_unreviewed_parts, gmTools.u_writing_hand, u'', u'?'),
 					doc['clin_when'].strftime('%m/%Y'),
@@ -1744,15 +1744,15 @@ class cDocTree(wx.TreeCtrl, gmRegetMixin.cRegetOnPaintMixin, treemixin.Expansion
 					gmTools.coalesce(initial = doc['comment'], instead = u'', template_initial = u' %s'),
 					no_parts
 				)
-				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)
-					self.SetItemHasChildren(intermediate_nodes[inter_label], True)
-				parent = intermediate_nodes[inter_label]
+				if intermediate_label not in intermediate_nodes:
+					intermediate_nodes[intermediate_label] = self.AppendItem(parent = self.root, text = intermediate_label)
+					self.SetItemBold(intermediate_nodes[intermediate_label], bold = True)
+					self.SetItemPyData(intermediate_nodes[intermediate_label], None)
+					self.SetItemHasChildren(intermediate_nodes[intermediate_label], True)
+				parent = intermediate_nodes[intermediate_label]
 
 			elif self.__sort_mode == 'type':
-				inter_label = doc['l10n_type']
+				intermediate_label = doc['l10n_type']
 				doc_label = _('%s%7s (%s):%s (%s)') % (
 					gmTools.bool2subst(doc.has_unreviewed_parts, gmTools.u_writing_hand, u'', u'?'),
 					doc['clin_when'].strftime('%m/%Y'),
@@ -1760,18 +1760,18 @@ class cDocTree(wx.TreeCtrl, gmRegetMixin.cRegetOnPaintMixin, treemixin.Expansion
 					gmTools.coalesce(initial = doc['comment'], instead = u'', template_initial = u' %s'),
 					u'%s%s' % (gmTools.coalesce(doc['health_issue'], u'', u'%s: '), doc['episode'])
 				)
-				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)
-					self.SetItemHasChildren(intermediate_nodes[inter_label], True)
-				parent = intermediate_nodes[inter_label]
+				if intermediate_label not in intermediate_nodes:
+					intermediate_nodes[intermediate_label] = self.AppendItem(parent = self.root, text = intermediate_label)
+					self.SetItemBold(intermediate_nodes[intermediate_label], bold = True)
+					self.SetItemPyData(intermediate_nodes[intermediate_label], None)
+					self.SetItemHasChildren(intermediate_nodes[intermediate_label], True)
+				parent = intermediate_nodes[intermediate_label]
 
 			elif self.__sort_mode == 'issue':
 				if doc['health_issue'] is None:
-					inter_label = _('%s (unattributed episode)') % doc['episode']
+					intermediate_label = _('%s (unattributed episode)') % doc['episode']
 				else:
-					inter_label = doc['health_issue']
+					intermediate_label = doc['health_issue']
 				doc_label = _('%s%7s %s:%s (%s)') % (
 					gmTools.bool2subst(doc.has_unreviewed_parts, gmTools.u_writing_hand, u'', u'?'),
 					doc['clin_when'].strftime('%m/%Y'),
@@ -1779,18 +1779,21 @@ class cDocTree(wx.TreeCtrl, gmRegetMixin.cRegetOnPaintMixin, treemixin.Expansion
 					gmTools.coalesce(initial = doc['comment'], instead = u'', template_initial = u' %s'),
 					no_parts
 				)
-				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)
-					self.SetItemHasChildren(intermediate_nodes[inter_label], True)
-				parent = intermediate_nodes[inter_label]
+				if intermediate_label not in intermediate_nodes:
+					intermediate_nodes[intermediate_label] = self.AppendItem(parent = self.root, text = intermediate_label)
+					self.SetItemBold(intermediate_nodes[intermediate_label], bold = True)
+					self.SetItemPyData(intermediate_nodes[intermediate_label], None)
+					self.SetItemHasChildren(intermediate_nodes[intermediate_label], True)
+				parent = intermediate_nodes[intermediate_label]
 
 			elif self.__sort_mode == 'org':
 				if doc['pk_org'] is None:
-					inter_label = _('unknown organization')
+					intermediate_label = _('unknown organization')
+					tt = u''
 				else:
-					inter_label = doc['organization']
+					intermediate_label = doc['organization']
+					# not quite right: always shows data of the _first_ document of _any_ org unit of this org
+					tt = u'\n'.join(doc.org_unit.format(with_address = True, with_org = True, with_comms = True))
 				doc_label = _('%s%7s %s:%s (%s)') % (
 					gmTools.bool2subst(doc.has_unreviewed_parts, gmTools.u_writing_hand, u'', u'?'),
 					doc['clin_when'].strftime('%m/%Y'),
@@ -1798,12 +1801,13 @@ class cDocTree(wx.TreeCtrl, gmRegetMixin.cRegetOnPaintMixin, treemixin.Expansion
 					gmTools.coalesce(initial = doc['comment'], instead = u'', template_initial = u' %s'),
 					no_parts
 				)
-				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)
-					self.SetItemHasChildren(intermediate_nodes[inter_label], True)
-				parent = intermediate_nodes[inter_label]
+				if intermediate_label not in intermediate_nodes:
+					intermediate_nodes[intermediate_label] = self.AppendItem(parent = self.root, text = intermediate_label)
+					self.SetItemBold(intermediate_nodes[intermediate_label], bold = True)
+					#self.SetItemPyData(intermediate_nodes[intermediate_label], None)
+					self.SetItemPyData(intermediate_nodes[intermediate_label], tt)
+					self.SetItemHasChildren(intermediate_nodes[intermediate_label], True)
+				parent = intermediate_nodes[intermediate_label]
 
 			else:
 				doc_label = _('%s%7s %s:%s (%s)') % (
@@ -2010,6 +2014,7 @@ class cDocTree(wx.TreeCtrl, gmRegetMixin.cRegetOnPaintMixin, treemixin.Expansion
 			if data1 == data2:
 				return 0
 		return 1
+
 	#------------------------------------------------------------------------
 	# event handlers
 	#------------------------------------------------------------------------
@@ -2052,6 +2057,7 @@ class cDocTree(wx.TreeCtrl, gmRegetMixin.cRegetOnPaintMixin, treemixin.Expansion
 
 		self.__display_part(part = node_data)
 		return True
+
 	#--------------------------------------------------------
 	def __on_right_click(self, evt):
 
@@ -2101,9 +2107,12 @@ class cDocTree(wx.TreeCtrl, gmRegetMixin.cRegetOnPaintMixin, treemixin.Expansion
 		# parts
 		elif isinstance(data, gmDocuments.cDocumentPart):
 			tt = data.format()
+		# explicit tooltip strings
+		elif isinstance(data, basestring):
+			tt = data
 		# other (root, intermediate nodes)
 		else:
-			tt = u' '
+			tt = u''
 
 		event.SetToolTip(tt)
 	#--------------------------------------------------------
diff --git a/client/wxpython/gmEncounterWidgets.py b/client/wxpython/gmEncounterWidgets.py
index 7d73bde..534b427 100644
--- a/client/wxpython/gmEncounterWidgets.py
+++ b/client/wxpython/gmEncounterWidgets.py
@@ -116,6 +116,7 @@ def sanity_check_encounter_of_active_patient(parent=None, msg=None):
 		msg = _('Edit the encounter details of the active patient before moving on:')
 	if parent is None:
 		parent = wx.GetApp().GetTopWindow()
+	_log.debug('sanity-check editing encounter [%s] for patient [%s]', enc['pk_encounter'], enc['pk_patient'])
 	edit_encounter(parent = parent, encounter = enc, msg = msg)
 
 	return True
@@ -610,20 +611,27 @@ class cActiveEncounterPnl(wxgActiveEncounterPnl.wxgActiveEncounterPnl):
 		wxgActiveEncounterPnl.wxgActiveEncounterPnl.__init__(self, *args, **kwargs)
 		self.__register_events()
 		self.refresh()
+
 	#------------------------------------------------------------
 	def clear(self):
 		self._TCTRL_encounter.SetValue(u'')
 		self._TCTRL_encounter.SetToolTipString(u'')
 		self._BTN_new.Enable(False)
 		self._BTN_list.Enable(False)
+
 	#------------------------------------------------------------
 	def refresh(self):
+		self.clear()
+
 		pat = gmPerson.gmCurrentPatient()
 		if not pat.connected:
-			self.clear()
 			return
 
-		enc = pat.get_emr().active_encounter
+		wx.CallAfter(self.__refresh)
+
+	#------------------------------------------------------------
+	def __refresh(self):
+		enc = gmPerson.gmCurrentPatient().get_emr().active_encounter
 		self._TCTRL_encounter.SetValue(enc.format (
 			with_docs = False,
 			with_tests = False,
@@ -642,6 +650,7 @@ class cActiveEncounterPnl(wxgActiveEncounterPnl.wxgActiveEncounterPnl):
 		)
 		self._BTN_new.Enable(True)
 		self._BTN_list.Enable(True)
+
 	#------------------------------------------------------------
 	def __register_events(self):
 		self._TCTRL_encounter.Bind(wx.EVT_LEFT_DCLICK, self._on_ldclick)
@@ -652,23 +661,27 @@ class cActiveEncounterPnl(wxgActiveEncounterPnl.wxgActiveEncounterPnl):
 		gmDispatcher.connect(signal = u'clin.episode_mod_db', receiver = self.refresh)
 		gmDispatcher.connect(signal = u'current_encounter_modified', receiver = self.refresh)
 		gmDispatcher.connect(signal = u'current_encounter_switched', receiver = self.refresh)
+
 	#------------------------------------------------------------
 	# event handler
 	#------------------------------------------------------------
 	def _on_pre_patient_unselection(self):
 		self.clear()
+
 	#------------------------------------------------------------
 	def _on_ldclick(self, event):
 		pat = gmPerson.gmCurrentPatient()
 		if not pat.connected:
 			return
 		edit_encounter(encounter = pat.get_emr().active_encounter)
+
 	#------------------------------------------------------------
 	def _on_new_button_pressed(self, event):
 		pat = gmPerson.gmCurrentPatient()
 		if not pat.connected:
 			return
 		start_new_encounter(emr = pat.get_emr())
+
 	#------------------------------------------------------------
 	def _on_list_button_pressed(self, event):
 		if not gmPerson.gmCurrentPatient().connected:
diff --git a/client/wxpython/gmFormWidgets.py b/client/wxpython/gmFormWidgets.py
index 80ed51c..4f29041 100644
--- a/client/wxpython/gmFormWidgets.py
+++ b/client/wxpython/gmFormWidgets.py
@@ -657,9 +657,10 @@ class cFormTemplateEAPnl(wxgFormTemplateEditAreaPnl.wxgFormTemplateEditAreaPnl,
 		self._CH_engine.SetSelection(gmForms.form_engine_abbrevs.index(self.data['engine']))
 		self._CHBOX_active.SetValue(self.data['in_use'])
 		self._CHBOX_editable.SetValue(self.data['edit_after_substitution'])
-		self._LBL_status.SetLabel(_('last modified %s by %s') % (
+		self._LBL_status.SetLabel(_('last modified %s by %s, internal revision [%s]') % (
 			gmDateTime.pydt_strftime(self.data['last_modified'], '%Y %B %d'),
-			self.data['modified_by']
+			self.data['modified_by'],
+			gmTools.coalesce(self.data['gnumed_revision'], u'?')
 		))
 
 		self._TCTRL_filename.Enable(True)
@@ -750,10 +751,13 @@ class cReceiverSelectionDlg(wxgReceiverSelectionDlg.wxgReceiverSelectionDlg):
 		if self.__patient is None:
 			return
 
+		self._LCTRL_candidates.set_columns([_(u'Receiver'), _(u'Details')])
+		self._LCTRL_candidates.set_resize_column()
 		self._LCTRL_candidates.item_tooltip_callback = self._get_candidate_tooltip
 		self.__populate_candidates_list()
 
-		self._LCTRL_addresses.item_tooltip_callback = self._get_tooltip
+		self._LCTRL_addresses.set_resize_column()
+		self._LCTRL_addresses.item_tooltip_callback = self._get_address_tooltip
 		self._LCTRL_addresses.activate_callback = self._on_address_activated_in_list
 		adrs = self.__patient.get_addresses()
 		self.__populate_address_list(addresses = adrs)
@@ -761,33 +765,35 @@ class cReceiverSelectionDlg(wxgReceiverSelectionDlg.wxgReceiverSelectionDlg):
 		self._TCTRL_final_name.SetValue(self.__patient[u'description'].strip())
 
 		self.Layout()
+
 	#------------------------------------------------------------
 	def __register_interests(self):
-		self._PRW_other_address.add_callback_on_selection(self._on_address_selected)
-		self._PRW_org_unit.add_callback_on_set_focus(self._on_entering_org_unit)
-		self._PRW_org_unit.add_callback_on_selection(self._on_org_unit_selected)
+		self._TCTRL_final_name.add_callback_on_modified(callback = self._on_final_name_modified)
+		self._PRW_other_address.add_callback_on_selection(self._on_address_selected_in_PRW)
+		self._PRW_org_unit.add_callback_on_set_focus(self._on_entering_org_unit_PRW)
+		self._PRW_org_unit.add_callback_on_selection(self._on_org_unit_selected_in_PRW)
 
 	#------------------------------------------------------------
 	def __populate_candidates_list(self):
 		list_items = [[_('Patient'), self.__patient[u'description_gender'].strip()]]
-		list_data = [(self.__patient[u'description'].strip(), self.__patient.get_addresses(), u'')]
+		list_data = [(self.__patient[u'description'].strip(), self.__patient.get_addresses(), u'', None)]
 
 		candidate_type = _('Emergency contact')
 		if self.__patient[u'emergency_contact'] is not None:
 			name = self.__patient[u'emergency_contact'].strip()
 			list_items.append([candidate_type, name])
-			list_data.append((name, [], u''))
+			list_data.append((name, [], u'', None))
 		contact = self.__patient.emergency_contact_in_database
 		if contact is not None:
 			list_items.append([candidate_type, contact[u'description_gender']])
-			list_data.append((contact[u'description'].strip(), contact.get_addresses(), u''))
+			list_data.append((contact[u'description'].strip(), contact.get_addresses(), u'', None))
 
 		candidate_type = _('Primary doctor')
 		prov = self.__patient.primary_provider
 		if prov is not None:
 			ident = prov.identity
 			list_items.append([candidate_type, u'%s: %s' % (prov[u'short_alias'], ident['description_gender'])])
-			list_data.append((ident['description'].strip(), ident.get_addresses(), _(u'in-praxis primary provider')))
+			list_data.append((ident['description'].strip(), ident.get_addresses(), _(u'in-praxis primary provider'), None))
 
 		candidate_type = _(u'This praxis')
 		branches = gmPraxis.get_praxis_branches(order_by = u'branch')
@@ -796,7 +802,7 @@ class cReceiverSelectionDlg(wxgReceiverSelectionDlg.wxgReceiverSelectionDlg):
 			if adr is None:
 				continue
 			list_items.append([candidate_type, u'%s @ %s' % (branch['branch'], branch['praxis'])])
-			list_data.append((u'%s @ %s' % (branch['branch'], branch['praxis']), [adr], branch.format()))
+			list_data.append((u'%s @ %s' % (branch['branch'], branch['praxis']), [adr], branch.format(), None))
 		del branches
 
 		candidate_type = _('External care')
@@ -812,14 +818,15 @@ class cReceiverSelectionDlg(wxgReceiverSelectionDlg.wxgReceiverSelectionDlg):
 				gmTools.coalesce(care['provider'], u'', u'%s, '),
 				u'%s @ %s' % (care['unit'], care['organization'])
 			)).strip()
-			adr = care.org_unit.address
+			org_unit = care.org_unit
+			adr = org_unit.address
 			if adr is None:
 				addresses = []
 			else:
 				addresses = [adr]
 			list_items.append([candidate_type, details])
 			tt = u'\n'.join(care.format(with_health_issue = True, with_address = True, with_comms = True))
-			list_data.append((name, addresses, tt))
+			list_data.append((name, addresses, tt, org_unit))
 		del cares
 
 		emr = self.__patient.emr
@@ -831,7 +838,7 @@ class cReceiverSelectionDlg(wxgReceiverSelectionDlg.wxgReceiverSelectionDlg):
 			if adr is None:
 				continue
 			list_items.append([candidate_type, u'%s @ %s' % (dept['unit'], dept['organization'])])
-			list_data.append((u'%s @ %s' % (dept['unit'], dept['organization']), [adr], u'\n'.join(dept.format())))
+			list_data.append((u'%s @ %s' % (dept['unit'], dept['organization']), [adr], u'\n'.join(dept.format(with_comms = True)), dept))
 		del depts
 
 		candidate_type = _('Procedure')
@@ -841,7 +848,7 @@ class cReceiverSelectionDlg(wxgReceiverSelectionDlg.wxgReceiverSelectionDlg):
 			if adr is None:
 				continue
 			list_items.append([candidate_type, u'%s @ %s' % (proc_loc['unit'], proc_loc['organization'])])
-			list_data.append((u'%s @ %s' % (proc_loc['unit'], proc_loc['organization']), [adr], u'\n'.join(proc_loc.format())))
+			list_data.append((u'%s @ %s' % (proc_loc['unit'], proc_loc['organization']), [adr], u'\n'.join(proc_loc.format(with_comms = True)), proc_loc))
 		del proc_locs
 
 		candidate_type = _('Lab')
@@ -851,7 +858,7 @@ class cReceiverSelectionDlg(wxgReceiverSelectionDlg.wxgReceiverSelectionDlg):
 			if adr is None:
 				continue
 			list_items.append([candidate_type, u'%s @ %s' % (lab['unit'], lab['organization'])])
-			list_data.append((u'%s @ %s' % (lab['unit'], lab['organization']), [adr], u'\n'.join(lab.format())))
+			list_data.append((u'%s @ %s' % (lab['unit'], lab['organization']), [adr], u'\n'.join(lab.format(with_comms = True)), lab))
 		del labs
 
 		candidate_type = _('Bill receiver')
@@ -866,9 +873,19 @@ class cReceiverSelectionDlg(wxgReceiverSelectionDlg.wxgReceiverSelectionDlg):
 			adrs_seen.append(bill['pk_receiver_address'])
 			details = u'%s%s' % (bill['invoice_id'], gmDateTime.pydt_strftime(dt = bill['close_date'], format = ' (%Y %b %d)', none_str = u''))
 			list_items.append([candidate_type, details])
-			list_data.append((u'', [adr], u'\n'.join(adr.format())))
+			list_data.append((u'', [adr], u'\n'.join(adr.format()), None))
+
+		candidate_type = _('Document')
+		doc_folder = self.__patient.document_folder
+		doc_units = doc_folder.all_document_org_units
+		for doc_unit in doc_units:
+			adr = doc_unit.address
+			if adr is None:
+				continue
+			list_items.append([candidate_type, u'%s @ %s' % (doc_unit['unit'], doc_unit['organization'])])
+			list_data.append((u'%s @ %s' % (doc_unit['unit'], doc_unit['organization']), [adr], u'\n'.join(doc_unit.format(with_comms = True)), doc_unit))
+		del doc_units
 
-		self._LCTRL_candidates.set_columns([_(u'Receiver'), _(u'Details')])
 		self._LCTRL_candidates.set_string_items(list_items)
 		self._LCTRL_candidates.set_column_widths()
 		self._LCTRL_candidates.set_data(list_data)
@@ -877,87 +894,128 @@ class cReceiverSelectionDlg(wxgReceiverSelectionDlg.wxgReceiverSelectionDlg):
 	def _get_candidate_tooltip(self, data):
 		if data is None:
 			return u''
-		name, addresses, tt = data
+		name, addresses, tt, unit = data
 		return tt
+
+	#------------------------------------------------------------
+	def __update_address_info(self, adr):
+		if adr is None:
+			self._LBL_address_details.SetLabel(u'')
+			self._LBL_final_country.SetLabel(u'')
+			self._LBL_final_region.SetLabel(u'')
+			self._LBL_final_zip.SetLabel(u'')
+			self._LBL_final_location.SetLabel(u'')
+			self._LBL_final_street.SetLabel(u'')
+			self._LBL_final_number.SetLabel(u'')
+			self.Layout()
+			return
+		self._LBL_address_details.SetLabel(u'\n'.join(adr.format()))
+		self._LBL_final_country.SetLabel(adr['l10n_country'])
+		self._LBL_final_region.SetLabel(adr['l10n_region'])
+		self._LBL_final_zip.SetLabel(adr['postcode'])
+		self._LBL_final_location.SetLabel(u'%s%s' % (adr['urb'], gmTools.coalesce(adr['suburb'], u'', u' - %s')))
+		self._LBL_final_street.SetLabel(adr['street'])
+		self._LBL_final_number.SetLabel(u'%s%s' % (adr['number'], gmTools.coalesce(adr['subunit'], u'', u' %s')))
+		self.Layout()
+
 	#------------------------------------------------------------
 	def __populate_address_list(self, addresses=None):
 		self._LCTRL_addresses.Enable()
-		self._LCTRL_addresses.set_columns([_(u'Type'), _(u'Address')])
 		list_items = []
 		for a in addresses:
 			try:
-				a_type = a[u'l10n_address_type']
+				list_items.append([a[u'l10n_address_type'], a.format(single_line = True, verbose = False, show_type = False)])
+				cols = [_(u'Type'), _(u'Address')]
 			except KeyError:
-				a_type = u''
-			list_items.append([a_type, a.format(single_line = True, verbose = False, show_type = False)])
+				list_items.append([a.format(single_line = True, verbose = False, show_type = False)])
+				cols = [_(u'Address')]
 
+		self._LCTRL_addresses.set_columns(cols)
 		self._LCTRL_addresses.set_string_items(list_items)
 		self._LCTRL_candidates.set_column_widths()
 		self._LCTRL_addresses.set_data(addresses)
+		self._PRW_other_address.SetText(value = u'', data = None)
+		self.__update_address_info(None)
 
 	#------------------------------------------------------------
-	def _get_tooltip(self, data):
-		return u'\n'.join(data.format(show_type = True))
+	def _get_address_tooltip(self, adr):
+		return u'\n'.join(adr.format(show_type = True))
+
 	#------------------------------------------------------------
-	def _on_address_activated_in_list(self, evt):
-		evt.Skip()
-		adr = self._LCTRL_addresses.get_selected_item_data(only_one = True)
-		if adr is None:
-			return
-		self._PRW_other_address.address = adr[u'pk_address']
-		self._LBL_address_details.SetLabel(u'\n'.join(adr.format()))
 	#------------------------------------------------------------
+	def _on_final_name_modified(self):
+		self._LBL_final_name.SetLabel(self._TCTRL_final_name.Value)
+
 	#------------------------------------------------------------
-	def _on_address_selected(self, address):
-		if address is None:
-			self._LBL_address_details.SetLabel(u'')
-			return
-		self._LBL_address_details.SetLabel(u'\n'.join(self._PRW_other_address.address.format()))
-		self.Layout()
+	def _on_address_selected_in_PRW(self, address):
+		self.__update_address_info(self._PRW_other_address.GetData(as_instance = True))
+
 	#------------------------------------------------------------
-	def _on_entering_org_unit(self):
+	def _on_entering_org_unit_PRW(self):
 		self._LCTRL_addresses.Disable()
+
 	#------------------------------------------------------------
-	def _on_org_unit_selected(self, unit):
+	def _on_org_unit_selected_in_PRW(self, unit):
 		if unit is None:
 			self._LCTRL_addresses.remove_items_safely(max_tries = 3)
-			self._PRW_other_address.address = None
-			self._LBL_address_details.SetLabel(u'')
+			self._PRW_other_address.SetText(value = u'', data = None)
+			self.__update_address_info(None)
+			self._TCTRL_org_unit_details.SetValue(u'')
 			return
+
 		unit = self._PRW_org_unit.GetData(as_instance = True)
 		adr = unit.address
 		if adr is None:
 			self._LCTRL_addresses.remove_items_safely(max_tries = 3)
-			self._PRW_other_address.address = None
-			self._LBL_address_details.SetLabel(u'')
-			return
-		self._TCTRL_final_name.SetValue(self._PRW_org_unit.GetValue().strip())
-		self._LCTRL_addresses.set_columns([_(u'Address')])
-		self._LCTRL_addresses.set_string_items([adr.format(single_line = True, verbose = False, show_type = False)])
-		self._LCTRL_addresses.set_data([adr])
-		self._PRW_other_address.address = adr[u'pk_address']
-		tmp = u'%s\n\n%s' % (
-			u'\n'.join(unit.format()),
-			u'\n'.join(adr.format())
-		)
-		self._LBL_address_details.SetLabel(tmp)
+			self._PRW_other_address.SetText(value = u'', data = None)
+			self.__update_address_info(None)
+		else:
+			self.__populate_address_list(addresses = [adr])
+			self._PRW_other_address.SetData(data = adr[u'pk_address'])
+			self.__update_address_info(adr)
+
+		name = u'%s @ %s' % (unit['unit'], unit['organization'])
+		self._TCTRL_final_name.SetValue(name)
+		self._TCTRL_org_unit_details.SetValue(u'\n'.join(unit.format(with_comms = True)))
 		self.Layout()
+
 	#------------------------------------------------------------
 	#------------------------------------------------------------
 	def _on_candidate_selected(self, event):
 		event.Skip()
-		name, addresses, tt = self._LCTRL_candidates.get_selected_item_data(only_one = True)
-		self._TCTRL_final_name.SetValue(name.strip())
+		name, addresses, tt, unit = self._LCTRL_candidates.get_selected_item_data(only_one = True)
 		self.__populate_address_list(addresses = addresses)
+		if unit is None:
+			self._PRW_org_unit.SetText(value = u'', data = None)
+			self._TCTRL_org_unit_details.SetValue(u'')
+		else:
+			self._PRW_org_unit.SetData(data = unit['pk_org_unit'])
+			self._TCTRL_org_unit_details.SetValue(u'\n'.join(unit.format(with_comms = True)))
+		self._TCTRL_final_name.SetValue(name.strip())
+		self._LBL_final_name.SetLabel(name.strip())
+
+	#------------------------------------------------------------
+	def _on_address_activated_in_list(self, evt):
+		evt.Skip()
+		adr = self._LCTRL_addresses.get_selected_item_data(only_one = True)
+		if adr is None:
+			self._PRW_other_address.SetText(value = u'', data = None)
+		else:
+			self._PRW_other_address.SetData(data = adr[u'pk_address'])
+		self.__update_address_info(adr)
+
+	#------------------------------------------------------------
 	#------------------------------------------------------------
 	def _on_manage_addresses_button_pressed(self, event):
 		event.Skip()
 		manage_addresses(parent = self)
+
 	#------------------------------------------------------------
 	def _on_manage_orgs_button_pressed(self, event):
 		event.Skip()
 		from Gnumed.wxpython.gmOrganizationWidgets import manage_orgs
 		manage_orgs(parent = self, no_parent = False)
+
 	#------------------------------------------------------------
 	def _on_ok_button_pressed(self, event):
 		if self._TCTRL_final_name.GetValue().strip() == u'':
@@ -966,17 +1024,20 @@ class cReceiverSelectionDlg(wxgReceiverSelectionDlg.wxgReceiverSelectionDlg):
 			return False
 		event.Skip()
 		self.EndModal(wx.ID_OK)
+
 	#------------------------------------------------------------
 	def _set_patient(self, patient):
 		self.__patient = patient
 		self.__init_ui()
 
 	patient = property(lambda x:x, _set_patient)
+
 	#------------------------------------------------------------
 	def _get_name(self):
 		return self._TCTRL_final_name.GetValue().strip()
 
 	name = property(_get_name, lambda x:x)
+
 	#------------------------------------------------------------
 	def _get_address(self):
 		return self._PRW_other_address.address
diff --git a/client/wxpython/gmGuiMain.py b/client/wxpython/gmGuiMain.py
index 935c1c2..501bde5 100644
--- a/client/wxpython/gmGuiMain.py
+++ b/client/wxpython/gmGuiMain.py
@@ -781,6 +781,9 @@ class gmTopLevelFrame(wx.Frame):
 		item = menu_paperwork.Append(-1, _('List Placeholders'), _('Show a list of all placeholders.'))
 		self.Bind(wx.EVT_MENU, self.__on_show_placeholders, item)
 
+#		item = menu_paperwork.Append(-1, _('Select receiver'), _('Select a letter receiver for testing.'))
+#		self.Bind(wx.EVT_MENU, self.__on_test_receiver_selection, item)
+
 		self.mainmenu.Append(menu_paperwork, _('&Correspondence'))
 		self.__gb['main.paperworkmenu'] = menu_paperwork
 
@@ -1222,10 +1225,12 @@ class gmTopLevelFrame(wx.Frame):
 			gmDispatcher.send(signal = 'statustext', msg = _('Cannot write letter. No active patient.'), beep = True)
 			return True
 		gmFormWidgets.print_doc_from_template(parent = self)#, keep_a_copy = True)
+
 	#----------------------------------------------
 	def __on_show_placeholders(self, evt):
 		from Gnumed.wxpython.gmMacro import show_placeholders
 		show_placeholders()
+
 	#----------------------------------------------
 	def __on_save_screenshot_into_export_area(self, evt):
 		evt.Skip()
@@ -1235,6 +1240,22 @@ class gmTopLevelFrame(wx.Frame):
 			return True
 		screenshot_file = self.__save_screenshot_to_file()
 		pat.export_area.add_file(filename = screenshot_file, hint = _(u'GMd screenshot'))
+
+	#----------------------------------------------
+	def __on_test_receiver_selection(self, evt):
+		dlg = gmFormWidgets.cReceiverSelectionDlg(None, -1)
+		dlg.patient = gmPerson.gmCurrentPatient()
+		choice = dlg.ShowModal()
+		name = dlg.name
+		adr = dlg.address
+		dlg.Destroy()
+		if choice == wx.ID_CANCEL:
+			print('receiver selection cancelled')
+			return
+
+		print(name)
+		print(adr.format())
+
 	#----------------------------------------------
 	# help menu
 	#----------------------------------------------
diff --git a/client/wxpython/gmListWidgets.py b/client/wxpython/gmListWidgets.py
index 0fd3c16..afa316e 100644
--- a/client/wxpython/gmListWidgets.py
+++ b/client/wxpython/gmListWidgets.py
@@ -1228,8 +1228,8 @@ class cReportListCtrl(listmixins.ListCtrlAutoWidthMixin, listmixins.ColumnSorter
 		self._invalidate_sorting_metadata()					# must be called after each (external/direct) list item update
 		listmixins.ColumnSorterMixin.__init__(self, 0)		# must be called again after adding columns (why ?)
 		self.__secondary_sort_col = None
-		# for debugging sorting:
-		#self.Bind(wx.EVT_LIST_COL_CLICK, self._on_col_click, self)
+		# apparently, this MUST be bound under wxP3 - but why ??
+		self.Bind(wx.EVT_LIST_COL_CLICK, self._on_col_click, self)
 
 		# cols/rows
 		self.__widths = None
@@ -1249,14 +1249,15 @@ class cReportListCtrl(listmixins.ListCtrlAutoWidthMixin, listmixins.ColumnSorter
 		# row tooltips
 		self.__item_tooltip_callback = None
 		self.__tt_last_item = None
-		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_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_base = u''
 		self.__tt_static_part = self.__tt_static_part_base
 		self.Bind(wx.EVT_MOTION, self._on_mouse_motion)
 
@@ -2881,6 +2882,7 @@ class cReportListCtrl(listmixins.ListCtrlAutoWidthMixin, listmixins.ColumnSorter
 	# actual sorting
 	#def GetColumnSorter(self):
 	#	return self._unicode_aware_column_sorter
+
 	#------------------------------------------------------------
 	def _generate_map_for_sorting(self):
 		dict2sort = {}
@@ -2903,10 +2905,13 @@ class cReportListCtrl(listmixins.ListCtrlAutoWidthMixin, listmixins.ColumnSorter
 	def _remove_sorting_indicators_from_column_headers(self):
 		for col_idx in range(self.ColumnCount):
 			col_state = self.GetColumn(col_idx)
+			initial_header = col_state.m_text
 			if col_state.m_text.endswith(self.sort_order_tags[True]):
 				col_state.m_text = col_state.m_text[:-len(self.sort_order_tags[True])]
 			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])]
+			if col_state.m_text == initial_header:
+				continue
 			self.SetColumn(col_idx, col_state)
 
 	#------------------------------------------------------------
@@ -2921,15 +2926,19 @@ class cReportListCtrl(listmixins.ListCtrlAutoWidthMixin, listmixins.ColumnSorter
 		self.itemDataMap = self._generate_map_for_sorting()
 
 	#------------------------------------------------------------
-	# for debugging:
 	def _on_col_click(self, event):
-		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)
+		# this MUST NOT call event.Skip() or else the column sorter mixin#
+		# will not kick in anymore under wxP 3
+		#event.Skip()
+		pass
+		# 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:
 #			print u'sort items data map:'
 #			for key, item in self.itemDataMap.items():
 #				print key, u' -- ', item
-		event.Skip()
+
 	#------------------------------------------------------------
 	def __get_secondary_sort_col(self):
 		return self.__secondary_sort_col
diff --git a/client/wxpython/gmMacro.py b/client/wxpython/gmMacro.py
index f5ba5ee..081f3ba 100644
--- a/client/wxpython/gmMacro.py
+++ b/client/wxpython/gmMacro.py
@@ -15,6 +15,7 @@ import os
 import io
 import datetime
 import urllib
+import codecs
 
 
 import wx
@@ -114,6 +115,18 @@ __known_variant_placeholders = {
 				of which setting of <argumentsdivider> is in effect,
 				use DEFAULT to reset this setting back to the
 				default '//'
+			encoding: the encoding in which data emitted by GNUmed
+				as placeholder replacement needs to be valid in,
+				note that GNUmed will still emit unicode to replacement
+				consumers but it will ensure the data emitted _can_
+				be encoded by this target encoding (by roundtripping
+				unicode-encoding-unicode)
+				valid from where this placeholder is located at
+				until further change,
+				use DEFAULT to reset encoding back to the default
+				which is to not ensure compatibility,
+				if the encoding ends in '-strict' then the placeholder
+				replacement will fail if the roundtrip fails
 	""",
 
 	u'tex_escape': u"args: string to escape, mostly obsolete now",
@@ -487,6 +500,7 @@ def show_placeholders():
 
 	ph_file.close()
 	gmMimeLib.call_viewer_on_file(aFile = fname, block = False)
+
 #=====================================================================
 class gmPlaceholderHandler(gmBorg.cBorg):
 	"""Returns values for placeholders.
@@ -536,6 +550,9 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 
 		self.__ellipsis = None
 		self.__args_divider = u'//'
+		self.__data_encoding = None
+		self.__data_encoding_strict = False
+
 	#--------------------------------------------------------
 	# external API
 	#--------------------------------------------------------
@@ -548,6 +565,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 			if known_only:
 				raise
 		self.__injected_placeholders[key] = value
+
 	#--------------------------------------------------------
 	def unset_placeholder(self, key=None):
 		_log.debug('unsetting [%s]', key)
@@ -555,18 +573,21 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 			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
 	#--------------------------------------------------------
 	def unset_cache_value(self, key=None):
 		del self.__cache[key]
+
 	#--------------------------------------------------------
 	def _set_escape_style(self, escape_style=None):
 		self.__esc_style = escape_style
 		return
 
 	escape_style = property(lambda x:x, _set_escape_style)
+
 	#--------------------------------------------------------
 	def _set_escape_function(self, escape_function=None):
 		if escape_function is None:
@@ -578,6 +599,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		return
 
 	escape_function = property(lambda x:x, _set_escape_function)
+
 	#--------------------------------------------------------
 	def _set_ellipsis(self, ellipsis):
 		if ellipsis == u'NONE':
@@ -585,6 +607,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		self.__ellipsis = ellipsis
 
 	ellipsis = property(lambda x: self.__ellipsis, _set_ellipsis)
+
 	#--------------------------------------------------------
 	def _set_arguments_divider(self, divider):
 		if divider == u'DEFAULT':
@@ -592,6 +615,25 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		self.__args_divider = divider
 
 	arguments_divider = property(lambda x: self.__args_divider, _set_arguments_divider)
+
+	#--------------------------------------------------------
+	def _set_data_encoding(self, encoding):
+		if encoding == u'NONE':
+			self.__data_encoding = None
+			self.__data_encoding_strict = False
+
+		self.__data_encoding_strict = False
+		if encoding.endswith(u'-strict'):
+			self.__data_encoding_strict = True
+			encoding = encoding[:-7]
+		try:
+			codecs.lookup(encoding)
+			self.__data_encoding = encoding
+		except LookupError:
+			_log.error('<codecs> module can NOT handle encoding [%s]' % enc)
+
+	data_encoding = property(lambda x: self.__data_encoding, _set_data_encoding)
+
 	#--------------------------------------------------------
 	placeholder_regex = property(lambda x: default_placeholder_regex, lambda x:x)
 
@@ -630,6 +672,29 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 			pos_first_char -= 1
 
 		return pos_first_char, pos_last_char
+
+	#--------------------------------------------------------
+	def __make_compatible_with_encoding(self, data_str):
+		if self.__data_encoding is None:
+			return data_str
+
+		try:
+			codecs.encode(data_str, self.__data_encoding, 'strict')
+			return data_str
+		except UnicodeEncodeError:
+			_log.error('cannot strict-encode string into [%s]: %s', self.__data_encoding, data_str)
+
+		if self.__data_encoding_strict:
+			return u'not compatible with encoding [%s]: %s' % (self.__data_encoding, data_str)
+
+		try:
+			import unidecode
+		except ImportError:
+			_log.debug('cannot transliterate, <unidecode> module not installed')
+			return codecs.encode(data_str, self.__data_encoding, 'replace').decode(self.__data_encoding)
+
+		return unidecode.unidecode(data_str).decode('utf8')
+
 	#--------------------------------------------------------
 	# __getitem__ API
 	#--------------------------------------------------------
@@ -683,13 +748,13 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 						return self._escape(self.invalid_placeholder_template % original_placeholder_def)
 					return None
 				if pos_last_char is None:
-					return val
+					return self.__make_compatible_with_encoding(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]
+						return self.__make_compatible_with_encoding(val[pos_first_char:(pos_last_char-len(self.__ellipsis))] + self.__ellipsis)
+				return self.__make_compatible_with_encoding(val[pos_first_char:pos_last_char])
 
 		# variable placeholders
 		if len(placeholder.split('::', 2)) < 3:
@@ -718,13 +783,13 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		try:
 			val = handler(data = options)
 			if pos_last_char is None:
-				return val
+				return self.__make_compatible_with_encoding(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]
+					return self.__make_compatible_with_encoding(val[pos_first_char:(pos_last_char-len(self.__ellipsis))] + self.__ellipsis)
+			return self.__make_compatible_with_encoding(val[pos_first_char:pos_last_char])
 		except:
 			_log.exception('placeholder handling error: %s', original_placeholder_def)
 			if self.debug:
@@ -733,6 +798,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 
 		_log.error('something went wrong, should never get here')
 		return None
+
 	#--------------------------------------------------------
 	# placeholder handlers
 	#--------------------------------------------------------
@@ -744,6 +810,8 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 			self.ellipsis = val
 		elif name == u'argumentsdivider':
 			self.arguments_divider = val
+		elif name == u'encoding':
+			self.data_encoding = val
 		if len(options) > 2:
 			return options[2] % {'name': name, 'value': val}
 		return u''
@@ -1671,6 +1739,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 			return u''
 
 		return self._escape(ids[0]['value'])
+
 	#--------------------------------------------------------
 	def _get_variant_allergy_state(self, data=None):
 		allg_state = self.pat.get_emr().allergy_state
@@ -1688,6 +1757,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 			date_confirmed
 		)
 		return self._escape(tmp)
+
 	#--------------------------------------------------------
 	def _get_variant_allergy_list(self, data=None):
 		if data is None:
@@ -1696,6 +1766,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		template, separator = data.split('//', 2)
 
 		return separator.join([ template % 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_allergies(self, data=None):
 
@@ -1806,11 +1877,11 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 			return
 
 		png_dir = gmTools.mk_sandbox_dir()
-		_log.debug('sandboxing AMTS QR Code PNGs in: %s', png_dir)
+		_log.debug('sandboxing AMTS datamatrix PNGs in: %s', png_dir)
 
 		from Gnumed.business import gmForms
 
-		# generate GNUmed-enhanced non-conformant data file and QR code
+		# generate GNUmed-enhanced non-conformant data file and datamatrix
 		# 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)
@@ -1839,7 +1910,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 			_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')
+		png_file = os.path.join(png_dir, 'gm4amts-datamatrix-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:
@@ -1863,7 +1934,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		total_pages = int(total_pages)
 		_log.debug('total pages: %s', total_pages)
 
-		png_file_base = os.path.join(png_dir, 'gm4amts-qrcode-page-')
+		png_file_base = os.path.join(png_dir, 'gm4amts-datamatrix-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)
diff --git a/client/wxpython/gmPhraseWheel.py b/client/wxpython/gmPhraseWheel.py
index 2bff8e6..024f83c 100644
--- a/client/wxpython/gmPhraseWheel.py
+++ b/client/wxpython/gmPhraseWheel.py
@@ -1163,6 +1163,7 @@ class cPhraseWheel(cPhraseWheelBase):
 		if value is None:
 			value = u'%s' % data
 		return {value: {'data': data, 'list_label': value, 'field_label': value}}
+
 #============================================================
 class cMultiPhraseWheel(cPhraseWheelBase):
 
diff --git a/client/wxpython/gmTopPanel.py b/client/wxpython/gmTopPanel.py
index aaae45e..eec5032 100644
--- a/client/wxpython/gmTopPanel.py
+++ b/client/wxpython/gmTopPanel.py
@@ -264,20 +264,22 @@ class cTopPnl(wxgTopPnl.wxgTopPnl):
 		now = gmDateTime.pydt_now_here()
 
 		# patient birthday ?
-		if self.curr_pat.get_formatted_dob(format = '%m-%d') == now.strftime('%m-%d'):
+		if self.curr_pat.get_formatted_dob(format = '%m-%d', honor_estimation = False) == now.strftime('%m-%d'):
 			template = _('%(sex)s  %(dob)s (%(age)s today !)')
 			tt += _("\nToday is the patient's birthday !\n\n")
 		else:
-			if self.curr_pat.current_birthday_passed():
+			if self.curr_pat.current_birthday_passed is True:
 				template = u'%(sex)s  %(dob)s%(l_arr)s (%(age)s)'
 				tt += _(u'Birthday: %s ago\n') % gmDateTime.format_apparent_age_medically (
 					age = gmDateTime.calculate_apparent_age(start = self.curr_pat.birthday_this_year, end = now)
 				)
-			else:
+			elif self.curr_pat.current_birthday_passed is False:
 				template = u'%(sex)s  %(r_arr)s%(dob)s (%(age)s)'
 				tt += _(u'Birthday: in %s\n') % gmDateTime.format_apparent_age_medically (
 					age = gmDateTime.calculate_apparent_age(start = now, end = self.curr_pat.birthday_this_year)
 				)
+			else:	# None, unknown
+				template = u'%(sex)s  %(dob)s (%(age)s)'
 
 		tt += _('Age: %s\n') % self.curr_pat['medical_age']
 
diff --git a/external-tools/gm-describe_file b/external-tools/gm-describe_file
index 199fa6b..d1abe38 100755
--- a/external-tools/gm-describe_file
+++ b/external-tools/gm-describe_file
@@ -24,12 +24,28 @@ fi
 #identify -verbose "${FILE_2_DESCRIBE}" >> "${DESCRIPTION_FILE}" 2>> "${DESCRIPTION_FILE}"
 #echo "" >> "${DESCRIPTION_FILE}"
 
+# pdfinfo
+BIN=`which pdfinfo`
+if [ "x${BIN}x" != "xx" ]; then
+	echo "---- pdfinfo ----" > "${DESCRIPTION_FILE}.pdfinfo"
+	pdfinfo -struct -meta -box "${FILE_2_DESCRIBE}" >> "${DESCRIPTION_FILE}.pdfinfo" 2>> "${DESCRIPTION_FILE}.pdfinfo"
+	if [ $? -eq 0 ] ; then
+		cat "${DESCRIPTION_FILE}.pdfinfo" >> "${DESCRIPTION_FILE}"
+		echo "" >> "${DESCRIPTION_FILE}"
+	fi
+	rm -f "${DESCRIPTION_FILE}.pdfinfo"
+fi
+
 # ffprobe
 BIN=`which ffprobe`
 if [ "x${BIN}x" != "xx" ]; then
-	echo "---- ffprobe ----" >> "${DESCRIPTION_FILE}"
-	ffprobe -v verbose -hide_banner -pretty "${FILE_2_DESCRIBE}" >> "${DESCRIPTION_FILE}" 2>> "${DESCRIPTION_FILE}"
-	echo "" >> "${DESCRIPTION_FILE}"
+	echo "---- ffprobe ----" > "${DESCRIPTION_FILE}.ffprobe"
+	ffprobe -v verbose -hide_banner -pretty "${FILE_2_DESCRIBE}" >> "${DESCRIPTION_FILE}.ffprobe" 2>> "${DESCRIPTION_FILE}.ffprobe"
+	if [ $? -eq 0 ] ; then
+		cat "${DESCRIPTION_FILE}.ffprobe" >> "${DESCRIPTION_FILE}"
+		echo "" >> "${DESCRIPTION_FILE}"
+	fi
+	rm -f "${DESCRIPTION_FILE}.ffprobe"
 fi
 
 # sfinfo

-- 
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