From 45e7603fdad3a95450053da9e2da1d1f83fb08a8 Mon Sep 17 00:00:00 2001
From: Lars Johansson <lars.johansson@ess.eu>
Date: Thu, 24 Mar 2022 14:41:51 +0100
Subject: [PATCH] Change database functions for mnemonic path for system,
 subsystem and update tests

Change functions for mnemonic path for system, subsystem.
Change and add to docker integration tests.
---
 docs/verification/Schema_data_migration.txt   | 20 ++----
 .../names/docker/StructuresDeviceGroupIT.java | 66 +++++++++++-------
 .../names/docker/StructuresDeviceTypeIT.java  | 66 +++++++++++-------
 .../names/docker/StructuresDisciplineIT.java  | 12 ++--
 .../names/docker/StructuresSubsystemIT.java   | 68 +++++++++++++++++--
 .../names/docker/StructuresSystemGroupIT.java | 12 ++--
 .../names/docker/StructuresSystemIT.java      | 66 +++++++++++-------
 .../V4__Schema_data_migration.sql             | 20 ++----
 8 files changed, 207 insertions(+), 123 deletions(-)

diff --git a/docs/verification/Schema_data_migration.txt b/docs/verification/Schema_data_migration.txt
index 3110a96b..fcb011f0 100644
--- a/docs/verification/Schema_data_migration.txt
+++ b/docs/verification/Schema_data_migration.txt
@@ -725,15 +725,10 @@ AS
 $$
 DECLARE
     system_mnemonic text;
-    systemgroup_uuid text;
-    systemgroup_mnemonic text;
 BEGIN
-    select parent_uuid, mnemonic into systemgroup_uuid, system_mnemonic from "system" where uuid = system_uuid and latest = true;
-    select mnemonic into systemgroup_mnemonic from systemgroup where uuid = systemgroup_uuid and latest = true;
+    select mnemonic into system_mnemonic from "system" where uuid = system_uuid and latest = true;
 
-    if systemgroup_mnemonic is not null and system_mnemonic is not null then
-        return concat(systemgroup_mnemonic, '-', system_mnemonic);
-    elsif system_mnemonic is not null then
+    if system_mnemonic is not null then
         return system_mnemonic;
     else
         return null;
@@ -750,19 +745,12 @@ DECLARE
     subsystem_mnemonic text;
     system_uuid text;
     system_mnemonic text;
-    systemgroup_uuid text;
-    systemgroup_mnemonic text;
 BEGIN
     select parent_uuid, mnemonic into system_uuid, subsystem_mnemonic from subsystem where uuid = subsystem_uuid and latest = true;
-    select parent_uuid, mnemonic into systemgroup_uuid, system_mnemonic from "system" where uuid = system_uuid and latest = true;
-    select mnemonic into systemgroup_mnemonic from systemgroup where uuid = systemgroup_uuid and latest = true;
+    select mnemonic into system_mnemonic from "system" where uuid = system_uuid and latest = true;
 
-    if systemgroup_mnemonic is not null and system_mnemonic is not null and subsystem_mnemonic is not null then
-        return concat(systemgroup_mnemonic, '-', system_mnemonic, '-', subsystem_mnemonic);
-    elsif system_mnemonic is not null and subsystem_mnemonic is not null then
+    if system_mnemonic is not null and subsystem_mnemonic is not null then
         return concat(system_mnemonic, '-', subsystem_mnemonic);
-    elsif subsystem_mnemonic is not null then
-        return subsystem_mnemonic;
     else
         return null;
     end if;
diff --git a/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java b/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
index e5033d32..33ab1437 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
@@ -941,12 +941,15 @@ public class StructuresDeviceGroupIT {
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICEGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rsha",      0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",  0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di",   -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rsha",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rsha",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rsha",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -964,12 +967,15 @@ public class StructuresDeviceGroupIT {
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICEGROUP?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rsha",      0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",  0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di",   -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rsha",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rsha",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rsha",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + approvedStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
@@ -1015,12 +1021,15 @@ public class StructuresDeviceGroupIT {
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICEGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshc",      0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",  0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di",   -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshc",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rshc",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshc",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -1038,12 +1047,15 @@ public class StructuresDeviceGroupIT {
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICEGROUP?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshc",      0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",  0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di",   -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshc",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rshc",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshc",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + cancelledStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
@@ -1089,12 +1101,15 @@ public class StructuresDeviceGroupIT {
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICEGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshr",      0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",  0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di",   -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshr",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rshr",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshr",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -1112,12 +1127,15 @@ public class StructuresDeviceGroupIT {
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICEGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICEGROUP?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshr",      0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",  0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di",   -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshr",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rshr",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshr",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + rejectedStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
diff --git a/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java b/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
index b9db0bcf..6cbf0be2 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
@@ -944,12 +944,15 @@ public class StructuresDeviceTypeIT {
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICETYPE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rsha",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rsha", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rsha",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rsha",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rsha",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -967,12 +970,15 @@ public class StructuresDeviceTypeIT {
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  1, 1);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICETYPE?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rsha",        1, 1);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rsha", 1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rsha",         1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rsha",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rsha",  1, 1);
 
             ITUtilStructureElement.assertRead("/history/" + approvedStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
@@ -1018,12 +1024,15 @@ public class StructuresDeviceTypeIT {
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICETYPE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshc",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshc", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshc",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rshc",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshc",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -1041,12 +1050,15 @@ public class StructuresDeviceTypeIT {
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 1, 1);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICETYPE?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshc",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshc", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshc",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rshc",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshc",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + cancelledStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
@@ -1092,12 +1104,15 @@ public class StructuresDeviceTypeIT {
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
-
             ITUtilStructureElement.assertRead("/DEVICETYPE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshr",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshr", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshr",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rshr",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshr",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -1115,12 +1130,15 @@ public class StructuresDeviceTypeIT {
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/DEVICETYPE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  1, 1);
-
             ITUtilStructureElement.assertRead("/DEVICETYPE?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshr",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshr", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di",           1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshr",         0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Di-Rshr",      0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di",      -1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",     0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Di-Rshr",  0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + rejectedStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
diff --git a/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java b/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
index 5349c447..5ad6aed1 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
@@ -896,10 +896,10 @@ public class StructuresDisciplineIT {
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/DISCIPLINE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rsha",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rsha", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -918,10 +918,10 @@ public class StructuresDisciplineIT {
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  1, 1);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/DISCIPLINE?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rsha",     1, 1);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rsha", 1, 1);
 
             ITUtilStructureElement.assertRead("/history/" + approvedStructureElement.getUuid().toString(), -1, 1);
@@ -968,10 +968,10 @@ public class StructuresDisciplineIT {
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/DISCIPLINE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rshc",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshc", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -990,10 +990,10 @@ public class StructuresDisciplineIT {
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 1, 1);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/DISCIPLINE?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rshc",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshc", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + cancelledStructureElement.getUuid().toString(), -1, 1);
@@ -1040,10 +1040,10 @@ public class StructuresDisciplineIT {
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
-
             ITUtilStructureElement.assertRead("/DISCIPLINE?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rshr",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshr", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -1062,10 +1062,10 @@ public class StructuresDisciplineIT {
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/DISCIPLINE?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  1, 1);
-
             ITUtilStructureElement.assertRead("/DISCIPLINE?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rshr",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshr", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + rejectedStructureElement.getUuid().toString(), -1, 1);
diff --git a/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java b/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
index de7a9e40..76de6b5a 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
@@ -950,11 +950,20 @@ public class StructuresSubsystemIT {
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/SUBSYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys",             1, 1);
             ITUtilStructureElement.assertRead("/mnemonic/Rsha",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys",          0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys-Rsha",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys-Rsha",     0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys",         1, 1);
             ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys",      0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys-Rsha",    0, 0);
             ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys-Rsha", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -973,12 +982,21 @@ public class StructuresSubsystemIT {
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  1, 1);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/SUBSYSTEM?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString(), 1, 1);
 
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys",             1, 1);
             ITUtilStructureElement.assertRead("/mnemonic/Rsha",            1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys",          0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys-Rsha",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys-Rsha",     0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys",         1, 1);
             ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys-Rsha", 1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys",      0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys-Rsha",    1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys-Rsha", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + approvedStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
@@ -1024,11 +1042,20 @@ public class StructuresSubsystemIT {
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/SUBSYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys",             1, 1);
             ITUtilStructureElement.assertRead("/mnemonic/Rshc",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys",          0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys-Rshc",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys-Rshc",     0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys",         1, 1);
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys",      0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys-Rshc",    0, 0);
             ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys-Rshc", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -1047,11 +1074,20 @@ public class StructuresSubsystemIT {
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 1, 1);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/SUBSYSTEM?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString(), 1, 1);
 
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys",             1, 1);
             ITUtilStructureElement.assertRead("/mnemonic/Rshc",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys",          0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys-Rshc",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys-Rshc",     0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys",         1, 1);
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys",      0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys-Rshc",    0, 0);
             ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys-Rshc", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + cancelledStructureElement.getUuid().toString(), -1, 1);
@@ -1098,11 +1134,20 @@ public class StructuresSubsystemIT {
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
-
             ITUtilStructureElement.assertRead("/SUBSYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys",             1, 1);
             ITUtilStructureElement.assertRead("/mnemonic/Rshr",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys",          0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys-Rshr",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys-Rshr",     0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys",         1, 1);
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys",      0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys-Rshr",    0, 0);
             ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys-Rshr", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -1121,11 +1166,20 @@ public class StructuresSubsystemIT {
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/SUBSYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  1, 1);
-
             ITUtilStructureElement.assertRead("/SUBSYSTEM?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString(), 1, 1);
 
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys",             1, 1);
             ITUtilStructureElement.assertRead("/mnemonic/Rshr",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys",          0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sys-Rshr",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Sys-Rshr",     0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys",         1, 1);
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys",      0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sys-Rshr",    0, 0);
             ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Sys-Rshr", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + rejectedStructureElement.getUuid().toString(), -1, 1);
diff --git a/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java b/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
index b181d59f..2493245c 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
@@ -942,10 +942,10 @@ public class StructuresSystemGroupIT {
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rsha",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rsha", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -964,10 +964,10 @@ public class StructuresSystemGroupIT {
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  1, 1);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rsha",     1, 1);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rsha", 1, 1);
 
             ITUtilStructureElement.assertRead("/history/" + approvedStructureElement.getUuid().toString(), 1, 1);
@@ -1014,10 +1014,10 @@ public class StructuresSystemGroupIT {
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rshc",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshc", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -1036,10 +1036,10 @@ public class StructuresSystemGroupIT {
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 1, 1);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rshc",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshc", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + cancelledStructureElement.getUuid().toString(), -1, 1);
@@ -1086,10 +1086,10 @@ public class StructuresSystemGroupIT {
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rshr",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshr", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
@@ -1108,10 +1108,10 @@ public class StructuresSystemGroupIT {
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  1, 1);
-
             ITUtilStructureElement.assertRead("/SYSTEMGROUP?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString(), 1, 1);
 
             ITUtilStructureElement.assertRead("/mnemonic/Rshr",     0, 0);
+
             ITUtilStructureElement.assertRead("/mnemonicpath/Rshr", 0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + rejectedStructureElement.getUuid().toString(), -1, 1);
diff --git a/src/test/java/org/openepics/names/docker/StructuresSystemIT.java b/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
index daeb89d2..dd482fa5 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
@@ -938,12 +938,15 @@ public class StructuresSystemIT {
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rsha", 0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha", 0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rsha", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rsha",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Rsha",         0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rsha",     0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -961,12 +964,15 @@ public class StructuresSystemIT {
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rsha",  1, 1);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rsha", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rsha",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEM?queryFields=UUID&queryValues=" + approvedStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rsha",        1, 1);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rsha", 1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rsha",            1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Rsha",         0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rsha",        1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rsha",     0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + approvedStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
@@ -1012,12 +1018,15 @@ public class StructuresSystemIT {
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",   0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",   0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshc",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rshc", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshc",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Rshc",         0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rshc",     0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -1035,12 +1044,15 @@ public class StructuresSystemIT {
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshc", 1, 1);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshc",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEM?queryFields=UUID&queryValues=" + cancelledStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshc",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rshc", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshc",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Rshc",         0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshc",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rshc",     0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + cancelledStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
@@ -1086,12 +1098,15 @@ public class StructuresSystemIT {
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
-
             ITUtilStructureElement.assertRead("/SYSTEM?queryFields=UUID&queryValues=" + createdStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshr",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rshr", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshr",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Rshr",         0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rshr",     0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + createdStructureElement.getUuid().toString(), -1, 1);
 
@@ -1109,12 +1124,15 @@ public class StructuresSystemIT {
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=APPROVED&queryFields=MNEMONIC&queryValues=Rshr",  0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=CANCELLED&queryFields=MNEMONIC&queryValues=Rshr", 0, 0);
             ITUtilStructureElement.assertRead("/SYSTEM?statuses=REJECTED&queryFields=MNEMONIC&queryValues=Rshr",  1, 1);
-
             ITUtilStructureElement.assertRead("/SYSTEM?queryFields=UUID&queryValues=" + rejectedStructureElement.getUuid().toString(), 1, 1);
 
-            ITUtilStructureElement.assertRead("/mnemonic/Rshr",        0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",    0, 0);
-            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rshr", 0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg",              1, 1);
+            ITUtilStructureElement.assertRead("/mnemonic/Rshr",            0, 0);
+            ITUtilStructureElement.assertRead("/mnemonic/Sg-Rshr",         0, 0);
+
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg",          1, 1);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Rshr",        0, 0);
+            ITUtilStructureElement.assertRead("/mnemonicpath/Sg-Rshr",     0, 0);
 
             ITUtilStructureElement.assertRead("/history/" + rejectedStructureElement.getUuid().toString(), -1, 1);
         } catch (Exception e) {
diff --git a/src/test/resources/db/schema_migration/V4__Schema_data_migration.sql b/src/test/resources/db/schema_migration/V4__Schema_data_migration.sql
index 3110a96b..fcb011f0 100644
--- a/src/test/resources/db/schema_migration/V4__Schema_data_migration.sql
+++ b/src/test/resources/db/schema_migration/V4__Schema_data_migration.sql
@@ -725,15 +725,10 @@ AS
 $$
 DECLARE
     system_mnemonic text;
-    systemgroup_uuid text;
-    systemgroup_mnemonic text;
 BEGIN
-    select parent_uuid, mnemonic into systemgroup_uuid, system_mnemonic from "system" where uuid = system_uuid and latest = true;
-    select mnemonic into systemgroup_mnemonic from systemgroup where uuid = systemgroup_uuid and latest = true;
+    select mnemonic into system_mnemonic from "system" where uuid = system_uuid and latest = true;
 
-    if systemgroup_mnemonic is not null and system_mnemonic is not null then
-        return concat(systemgroup_mnemonic, '-', system_mnemonic);
-    elsif system_mnemonic is not null then
+    if system_mnemonic is not null then
         return system_mnemonic;
     else
         return null;
@@ -750,19 +745,12 @@ DECLARE
     subsystem_mnemonic text;
     system_uuid text;
     system_mnemonic text;
-    systemgroup_uuid text;
-    systemgroup_mnemonic text;
 BEGIN
     select parent_uuid, mnemonic into system_uuid, subsystem_mnemonic from subsystem where uuid = subsystem_uuid and latest = true;
-    select parent_uuid, mnemonic into systemgroup_uuid, system_mnemonic from "system" where uuid = system_uuid and latest = true;
-    select mnemonic into systemgroup_mnemonic from systemgroup where uuid = systemgroup_uuid and latest = true;
+    select mnemonic into system_mnemonic from "system" where uuid = system_uuid and latest = true;
 
-    if systemgroup_mnemonic is not null and system_mnemonic is not null and subsystem_mnemonic is not null then
-        return concat(systemgroup_mnemonic, '-', system_mnemonic, '-', subsystem_mnemonic);
-    elsif system_mnemonic is not null and subsystem_mnemonic is not null then
+    if system_mnemonic is not null and subsystem_mnemonic is not null then
         return concat(system_mnemonic, '-', subsystem_mnemonic);
-    elsif subsystem_mnemonic is not null then
-        return subsystem_mnemonic;
     else
         return null;
     end if;
-- 
GitLab