diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SettingsForm/SettingsFormView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SettingsForm/SettingsFormView.js
index 44a51afbe93f545ad96d52b4a910359f0c195a6c..c0def1d434f2df4b3bcad66d0cf68e6fbd23c6b9 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SettingsForm/SettingsFormView.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SettingsForm/SettingsFormView.js
@@ -25,7 +25,7 @@ function SettingsFormView(settingsFormController, settingsFormModel) {
 	this._forcedMonospaceTableModel = null;
 	this._inventorySpacesTableModel = null;
 	this._sampleTypeProtocolsTableModel = null;
-	this._sampleTypeDefinitionsTableModel = null;
+	this._sampleTypeDefinitionsTableModels = {}; // key: sample type; value: table model
 
 	this.repaint = function(views) {
 
@@ -80,9 +80,20 @@ function SettingsFormView(settingsFormController, settingsFormModel) {
 			forceMonospaceFont : this._forcedMonospaceTableModel.getValues(),
 			inventorySpaces : this._inventorySpacesTableModel.getValues(),
 			sampleTypeProtocols : this._sampleTypeProtocolsTableModel.getValues(),
+			sampleTypeDefinitionsExtension : this._getSampleTypeDefinitionsSettings(),
 		};
 	}
 
+	this._getSampleTypeDefinitionsSettings = function() {
+		var sampleTypeDefinitionsSettings = {};
+		var sampleTypes = Object.keys(this._sampleTypeDefinitionsTableModels);
+		for (sampleType of sampleTypes) {
+			var tableModel = this._sampleTypeDefinitionsTableModels[sampleType];
+			sampleTypeDefinitionsSettings[sampleType] = tableModel.getValues();
+		}
+		return sampleTypeDefinitionsSettings;
+	}
+
 	//
 	// general
 	//
@@ -303,8 +314,9 @@ function SettingsFormView(settingsFormController, settingsFormModel) {
 			$fieldset.append($div);
 			// table for sample type
 			var sampleTypeSettings = profile.sampleTypeDefinitionsExtension[sampleType.code];
-			this._sampleTypeDefinitionsTableModel = this._getSampleTypeDefinitionTableModel(sampleTypeSettings);
-			$sampleTypeFieldset.append(this._getTable(this._sampleTypeDefinitionsTableModel));
+			var tableModel = this._getSampleTypeDefinitionTableModel(sampleTypeSettings);
+			$sampleTypeFieldset.append(this._getTable(tableModel));
+			this._sampleTypeDefinitionsTableModels[sampleType.code] = tableModel;
 		}
 	}
 
@@ -320,7 +332,7 @@ function SettingsFormView(settingsFormController, settingsFormModel) {
 					return {
 						label : option,
 						value : option,
-						selected : rowData.hintType && option === rowData.hintType.label,
+						selected : rowData.hintType && option === rowData.hintType,
 					};
 				}), "hints for children/parents");
 			}).bind(this),
@@ -355,19 +367,34 @@ function SettingsFormView(settingsFormController, settingsFormModel) {
 			return this._getTable(annotationPropertiesTableModel);
 		}).bind(this);
 		// add data
-		var hintTypes = [
-			{ field : "SAMPLE_CHILDREN_HINT", label : "Children" },
-			{ field : "SAMPLE_PARENTS_HINT", label : "Parents" },
-		];
-		for (var hintType of hintTypes) {
-			if (sampleTypeSettings && sampleTypeSettings[hintType.field]) {
-				for (var hintTypeSettings of sampleTypeSettings[hintType.field]) {
-					hintTypeSettings.hintType = hintType;
+		var hintTypesMap = new Map();
+		hintTypesMap.set("Children", "SAMPLE_CHILDREN_HINT");
+		hintTypesMap.set("Parents", "SAMPLE_PARENTS_HINT");
+		for (var [hintTypeLabel, hintTypeField] of hintTypesMap) {
+			if (sampleTypeSettings && sampleTypeSettings[hintTypeField]) {
+				for (var hintTypeSettings of sampleTypeSettings[hintTypeField]) {
+					hintTypeSettings.hintType = hintTypeLabel;
 					tableModel.addRow(hintTypeSettings);
 				}
 			}
 		}
 		// transform output
+		tableModel.valuesTransformer = function(values) {
+			var definitionsExtension = {};
+			for (var value of values) {
+				var hintTypeField = hintTypesMap.get(value["Hint type"]);
+				if ( ! definitionsExtension[hintTypeField]) {
+					definitionsExtension[hintTypeField] = [];
+				}
+				var hints = {};
+				hints.LABEL = value["Label"];
+				hints.TYPE = value["Type"];
+				if (value["Min"]) { hints.MIN_COUNT = value["Min"]; };
+				if (value["Max"]) { hints.MAX_COUNT = value["Max"]; };
+				definitionsExtension[hintTypeField].push(hints);				
+			}
+			return definitionsExtension;
+		}
 		return tableModel;
 	}