Download PDF
Download page Erweiterungen.
Erweiterungen
Vererbung
Oft sind in vielen Konfigurationen die Views gleich definiert und es werden nur bestimmte Grids oder Felder ausgeblendet. Wenn aber zum Beispiel ein neues Feld hinzugefügt werden muss, dann muss dies manuell in allen anderen Konfigurationen nachgezogen werden.
Ein weiteres Problem ist, dass es sehr viele Standard-Views gibt, für welche spitalseitig immer die Standard-Konfiguration von Nexus verwendet wird. Damit auch diese Situation abgefangen wird, wird neu bei allen Kunden die komplette Nexus-Konfiguration ausgeliefert (inkl. dem kleinen und dem grossen Konfigurationseditor aus der Applikationskonfiguration). Mit den in Abschnitt 10.2 beschriebenen Funktionen ist es dann möglich, die Nexus-Konfiguration mittels der DB Scripts aktuell zu halten und die Vererbung sorgt dann dafür, dass nur relativ wenige Views gewartet werden müssen. Wie viele können Sie als Kunde selber entscheiden.
Für die Vererbung gibt es ein neues Feld auf View/Rendercontrol-Ebene:
- «VererbungConfigurationID»
Im Konfigurationseditor kann hier eine der bestehenden Konfigurationen ausgewählt werden ausser der Applikationskonfiguration (=1), der Billing-Konfiguration (=2) und der Konfiguration, die aktuell bearbeitet wird.
Ansonsten dürfen nur Konfigurationen ausgewählt werden, für welche das Rendercontrol konfiguriert ist; eine «doppelte» Vererbung ist folglich nicht erlaubt.
In Abbildung 10.1 ist dargestellt wie sich dies auf View-Ebene (Main Panel und alle Nicht-Grid-Reiter) äussert.
Abbildung 10.1: Darstellung des Feldes «VererbungConfigurationID» / «Vererb. Konfiguration» auf View-Ebene.
Sowohl auf View-Ebene als auch auf Grid-Ebene ist die Funktionalität gleich:
Wird eine Konfiguration ausgewählt, dann:
- wird die komplette Konfiguration für den aktuellen Rendercontrol gelöscht.
- wird 1 Key-Value Pair geschrieben mit Key «MetaViewEntity/RenderControl/ VererbungConfigurationID» bzw. «MetaViewEntityGrid/RenderControl/ VererbungConfigurationID» und als Value die ID der ausgewählten Konfiguration hinterlegt.
- wird die Konfiguration für diesen RenderControl auf Readonly gesetzt.
Wird das Feld geleert, dann:
- wird die Konfiguration vom Rendercontrol der zuletzt ausgewählten Konfiguration in die aktuelle Konfiguration kopiert.
- wird das Key-Value Pair mit «VererbungConfigurationID» gelöscht.
- wird die Konfiguration für diesen Rendercontrol wieder auf editierbar gesetzt.
Rendercontrols dürfen nur konfiguriert werden, wenn diese nicht vererbt werden.
Für eine Übersicht und einfache Bearbeitung der vererbten Rendercontrols können alle Views (= Rendercontrol) mit den dazugehörenden Grid-Rendercontrols in einer Tabelle abgebildet werden (siehe Abbildung 10.2). Jede Spital-Konfiguration ist dann in einer Spalte abgebildet und kann so auf einfache Art und Weise bearbeitet werden.
Abbildung 10.2: Beispielhafte Darstellung von Rendercontrols und Systemkonfigurationen.
EXEC DHS_Config_PKG.DeletePairs('%[RenderControl]/%', 'Konfig aus Spalte');
EXEC DHS_Config_PKG.InsertPair('MetaViewEntity/RenderControl/VererbungConfigurationID',
'Auswahl neu', 'Konfig aus Spalte');
oder
EXEC DHS_Config_PKG.InsertPair( 'MetaViewEntityGrid/RenderControl/VererbungConfigurationID', 'Auswahl neu', 'Konfig aus Spalte');Wird eine Konfiguration geändert welche aktuell nicht geladen ist, dann kann die oben beschriebene Funktionalität mit einfachen direkten SQLs abgebildet werden (siehe SQL Statement 10.1 und 10.2).
SQL Statement 10.1: Bei der Auswahl einer Konfiguration.
EXEC DHS_Config_PKG.DeletePairs('%[RenderControl]/%', 'Konfig aus Spalte');
EXEC DHS_Config_PKG.CopyPairs('%[RenderControl]/%', 'Auswahl alt', 'Konfig aus Spalte');
SQL Statement 10.2: Wenn keine Konfiguration ausgewählt wird bzw. das Feld geleert wird.
Der Konfigurationseditor verhindert, dass die Nexus-Konfiguration von einem anderen Benutzer als dem mit Visum «***» geändert wird. Damit die Konfiguration aktualisiert werden kann, muss der Name der Konfiguration immer als «Nexus» bestehen bleiben.
Weitere Funktionalitäten
Für eine einfachere Verteilung von Neuerungen ist es möglich, DB-Scripts zu erzeugen, welche dann einfach in ein Workitem Script Feld kopiert werden können. Hierfür wurde ein neues Menuitem «Create Script» im Menü des Konfigurationseditors erstellt (siehe Abbildung 10.3).
Abbildung 10.3: Aufruf der Funktion «Create Script» im Menü des Konfigurationseditors.
Abhängig vom Typ des ausgewählten Knotens werden DB-Scripts erstellt, welche in den folgenden Abschnitten beschrieben werden.
Hierbei steht in den folgenden Beispiel-Scripts der Parameter [Identifikation] für eine eindeutige Identifikation des Objekts, beispielsweise der Name des Rendercontrols.
Bei Menu Items und Einträgen im Navigation Panel kann optional eine Zeile ausgeführt werden (Hinweis: diese ist standardmässig auskommentiert), um ein Menu Item für alle anderen Konfiguration zu deaktivieren. Das gilt auch für Menu Items auf einzelnen Grid-Rendercontrols.
Ebenso kann bei Menu Items und Einträgen im Navigation Panel eine Zeile optional ausgeführt werden, um diese von der Nexus-Konfiguration auf alle Spitalkonfigurationen zu kopieren (Hinweis: diese ist standardmässig auskommentiert).
Bei Views und Grids kann ebenfalls optional eine Zeile aktiviert werden, um diese in alle Spitalkonfigurationen zu vererben (Hinweis: diese ist standardmässig auskommentiert).
Navigation Panel-Knoten
(MetaViewNavigationTreeNode)
Bei der Selektion eines Navigation Panel-Knotens (siehe Abbildung 10.4) oder einem der untergeordneten Knoten wird das Skript analog zu SQL-Statement 10.3 erstellt.
Abbildung 10.4: Beispiel für einen Navigation Panel-Knoten.
– Script zum Ersetzen aller Konfigurationsdetails für den selektierten Navigationpanel-Node
– [Identifikation]
– Alles für diesen Navigation Panel-Node löschen
EXEC DHS_Config_PKG.DeletePairs('%[Identifikation]%', 'Nexus');
– Optional: Für alle Spitalkonfigurationen Navigation Panel-Node disablen
--EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Enabled', 'False', 'Spital');
– Key-Value Pairs für den Navigation Panel-Node hinzufügen EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Nexus');SQL-Statement 10.3: Skript-Erstellung bei der Selektion eines Navigation Panel-Knotens.
Menu Items
(MetaMenuItem)
Bei der Selektion eines Menu Items (siehe Abbildung 10.5) wird das Skript analog zu SQL-Statement 10.4 erstellt.
Abbildung 10.5: Beispiele für Menu Items.
– Script zum Ersetzen aller Konfigurationsdetails für das selektierte Menu Item – [Identifikation]
– Alles für dieses Menu Item löschen EXEC DHS_Config_PKG.DeletePairs('%[Identifikation]%', 'Nexus');
– Optional: Für alle Spitalkonfigurationen Menu Item disablen --EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Enabled', 'False', 'Spital');
– Key-Value Pairs für das Menu Item hinzufügen EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Nexus');
SQL-Statement 10.4: Skript-Erstellung bei der Selektion eines Menu Items.
Business Entities
Bei der Selektion einer kompletten Entität (siehe Abbildung 10.6) wird das Skript analog zu SQL-Statement 10.5 erstellt.
Abbildung 10.6: Beispiele für komplette Entitäten.
– Script zum Ersetzen aller Konfigurationsdetails für die selektierte Business Entity
– [Identifikation]
– Alles für diese Business Entity löschen EXEC DHS_Config_PKG.DeletePairs('%[Identifikation]/%', 'Application');
– Key-Value Pairs für die Business Entity hinzufügen EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Application');
– Key-Value Pairs für Business Entity-Fields hinzufügen
EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Application');SQL-Statement 10.5: Skript-Erstellung bei der Selektion einer kompletten Entität.
Wird hingegen ein einzelnes Datenfeld einer Entität (siehe Abbildung 10.7) selektiert, wird das Skript analog zu SQL-Statement 10.6 erstellt.
Abbildung 10.7: Beispiele für einzelne Datenfelder einer Entität.
– Script zum Ersetzen aller Konfigurationsdetails für das selektierte Business Entity-Field
– [Identifikation]
– Alles für dieses Business Entity-Field löschen
EXEC DHS_Config_PKG.DeletePairs('%[Identifikation]/%', 'Application');
– Key-Value Pairs für das Business Entity-Field hinzufügen EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Application');
SQL-Statement 10.6: Skript-Erstellung bei der Selektion eines einzelnen Datenfeldes einer Entität.
Lookup Entities und Code Items
Bei der Selektion einer Lookup Entity oder eines Code Items (siehe Abbildung 10.8) wird das Skript analog zu SQL-Statement 10.7 erstellt.
Abbildung 10.8: Beispiele für Lookup Entities und Code Items.
– Script zum Ersetzen alle Konfigurationsdetails für den selektierten LookUp:
– [Identifikation]
– Alles für diesen LookUp löschen
EXEC DHS_Config_PKG.DeletePairs('%[Identifikation]/%', 'Application');
– Key-Value Pairs für den LookUp hinzufügen
EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Application');
SQL-Statement 10.7: Skript-Erstellung bei der Selektion einer Lookup Entität oder eines Code Items.
Views (Rendercontrols)
Bei der Selektion einer gesamten View (siehe Abbildung 10.9) wird ein Skript mir allen Rendercontrols erstellt, analog zu SQL-Statement 10.8 gefolgt von SQL-Statement 10.9 (pro Grid).
Abbildung 10.9: Beispiel für die Selektion einer gesamten View.
Hierbei muss beachtet werden, dass Skripte für Views immer nur für die Nexus-Konfiguration erstellt werden.
– Script zum Ersetzen aller Konfigurationsdetails für die selektierte View
– [Identifikation]
– Ersetzen aller Konfigurationsdetails [Identifikation]
– Alles für [Identifikation] löschen
EXEC DHS_Config_PKG.DeletePairs('%/[Identifikation]/%', 'Nexus');
– Key-Value Pairs für [Identifikation] hinzufügen
EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Nexus');
– Key-Value Pairs für [Identifikation] Tabs hinzufügen
EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Nexus');
– Key-Value Pairs für [Identifikation] Groups hinzufügen
EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Nexus');
– Key-Value Pairs für [Identifikation] Fields hinzufügen
EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Nexus');SQL-Statement 10.8: Skript-Erstellung bei der Selektion einer kompletten View.
– Ersetzen alle Konfigurationsdetails Rendercontrol [Identifikation]
– Alles für [Identifikation] löschen
EXEC DHS_Config_PKG.DeletePairs('%/[Identifikation]/%', 'Nexus');
– Key-Value Pairs für Rendercontrol [Identifikation] hinzufügen
EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Nexus');
– Key-Value Pairs für Rendercontrol [Identifikation] Fields hinzufügen
EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Nexus');
SQL-Statement 10.9: Skript-Erstellung bei der Selektion einer kompletten View (pro Grid).
Bei der Selektion einzelner Rendercontrols (siehe Abbildung 10.10) erfolgt die Skript-Erstellung analog zu SQL-Statement 10.10 bzw. SQL-Statement 10.11.
Abbildung 10.10: Beispiele für die Selektion einzelner Rendercontrols.
– Script zum Ersetzen aller Konfigurationsdetails für das selektierte Grid – [Identifikation]
– Alles für Rendercontrol [Identifikation] löschen
EXEC DHS_Config_PKG.DeletePairs('%/[Identifikation]/%', 'Nexus');
– Key-Value Pairs für Rendercontrol [Identifikation] hinzufügen
EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Nexus');
– Key-Value Pairs für Rendercontrol [Identifikation] Fields hinzufügen
EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Nexus');
SQL-Statement 10.10: Skript-Erstellung bei der Selektion einer einzelner Rendercontrols (Grids).
– Script zum Ersetzen alle Konfigurationsdetails für das selektierte Grid
– [Identifikation]
– Alles für Rendercontrol [Identifikation] löschen
EXEC DHS_Config_PKG.DeletePairs('%/[Identifikation]/%', 'Nexus');
– Key-Value Pairs für Rendercontrol [Identifikation] hinzufügen
EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Nexus');
– Key-Value Pairs für Rendercontrol [Identifikation] Tabs hinzufügen
EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Nexus');
– Key-Value Pairs für Rendercontrol [Identifikation] Groups hinzufügen
EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Nexus');
– Key-Value Pairs für Rendercontrol [Identifikation] Fields hinzufügen
EXEC DHS_Config_PKG.InsertPair('[Identifikation]/Key', Value, 'Nexus');
SQL-Statement 10.11: Skript-Erstellung bei der Selektion einer einzelner Rendercontrols (Panels und normale Rendercontrols).