Verfassen

Zum Verfassen eines Regelwerks für Validierung müssen die folgenden Schritte ausgeführt werden:

Regelwerk definieren

Wenn das im Abschnitt 'Zusätzliche Validierungen' angegebene Regelwerk nicht vorhanden ist, wird von der Infrastruktur für dynamische Angaben ein Basisregelwerk generiert. Das generierte Basisregelwerk weist, wie im Abschnitt über die Verträge für Regelwerke für Validierung beschrieben, die Klasse 'ValidationResult' mit der Basisregelklasse und das Attribut 'evidence' auf; es wird der Kategorie 'Dynamische Angaben - Validierung' zugeordnet.

Manchmal wird ein vorhandenes Regelwerk als das Regelwerk angegeben, das für die Validierung verwendet werden soll. Dies ist in der Regel dann der Fall, wenn eine neue dynamische Angabentypversion erstellt wird und für die vorherige dynamische Angabentypversion bereits ein Regelwerk für die Validierung angegeben wurde. Wenn ein vorhandenes Regelwerk verwendet wird, muss es den Vorgaben des Vertrags für Regelwerke für Validierungen entsprechen. Hierbei sollte beachtet werden, dass die Änderungen für alle dynamischen Angabentypversionen angezeigt werden, von denen dieses Regelwerk verwendet wurde, wenn ein vorhandenes Regelwerk für Validierung geändert wird.

Validierungsgruppen definieren

Wie bereits im Abschnitt zur Regelklasse DefaultEvidenceValidationResult beschrieben, verfügt diese Regelklasse über Attribute für die unterschiedlichen Validierungsgruppen. Alle Attribute weisen den Wert Null auf, was bedeutet, dass standardmäßig in keiner Validierungsgruppe eine Validierung definiert ist. Für einen bestimmten dynamischen Angabentyp können alle oder nur manche der Validierungsgruppen erforderlich sein. Beispiel: Für eine Version eines dynamischen Angabentyps sind nur 'detailsValidations' und 'standardValidations' erforderlich. Somit müssen die Attribute für die Validierungsgruppen neu definiert werden. In der Regel wird eine CER-Programmfixliste zum Erstellen der Liste der Validierungen in einer Gruppe verwendet.

Validierung definieren

Normalerweise bezieht sich eine Validierung auf Daten aus dem Fallangabendatensatz oder zugehörige Fallangabendatensätze; aus diesem Grund wird in einem Vertrag für Regelwerke für Validierungen angegeben, dass sie über das Attribut 'evidence' verfügen müssen. Dieses Attribut wird mit Daten aus der entsprechenden Fallangabeninstanz gefüllt, sobald das Regelwerk aufgerufen wird.

Eine Validierung kann mithilfe des CER-Erstellungsausdrucks definiert werden. Für den Erstellungsausdruck ist es beim Aufrufen der Regelklasse Validation erforderlich, dass eine Ableitung für das Attribut 'isFailure' und das Attribut 'failureMessage' angegeben wird.

Im Verlauf der Ableitung des Attributs 'isFailure' muss ein boolescher Wert erstellt werden. Beispiel: In einem dynamischen Angabentyp sind die beiden Attribute 'startDate' und 'endDate' vorhanden und von der Validierung soll sichergestellt werden, dass die Werte für 'startDate' und 'endDate' nicht identisch sind. Von der Ableitung für das Attribut 'isFailure' dieser Validierung kann ein CER-Vergleichsausdruck verwendet werden, von dem die Werte der Attribute 'startDate' und 'endDate' miteinander verglichen werden. Vom Vergleichsausdruck werden die Werte dieser beiden Attribute mithilfe eines Referenzausdrucks für das Attribut 'evidence' des Regelwerks für Validierung abgerufen.

Als Ergebnis der Ableitung für das Attribut 'failureMessage' wird ein Wert des Typs curam.creole.value.Message erstellt. Hierfür kann von der Ableitung eine XML-Nachricht oder ein Ressourcennachrichtausdruck verwendet werden. Wenn die Nachricht mit Daten aus dem Fallangabendatensatz parametrisiert wird, kann auch in diesem Fall mithilfe des Referenzausdrucks über das Attribut 'evidence' der Regelklasse 'Validation' auf das erforderliche Attribut zugegriffen werden.

Optional kann für 'informationalType' ein Wert für die Validierung angegeben werden. Wenn kein Wert angegeben wird, wird als Informationstyp standardmäßig 'error' (Fehler) festgelegt. Mithilfe der statischen Operationen ( error(), warning() und fatalError() ) in curam.dynamicevidence.validation.impl.InformationalType kann auch ein abweichender Informationstyp festgelegt werden.

In der Regel hängt der Informationstyp vom Validierungsmodus ab. Auf den Validierungsmodus für eine bestimmte Validierungssitzung kann über das Attribut 'validationMode' der Regelklasse für Validierungsergebnisse zugegriffen werden. Anschließend kann der Validierungsmodus unter Verwendung der statischen Operationen ( applyChanges(), approve(), insert(), modify(), validateChanges() ) mit anderen Validierungsmodi verglichen werden, die in curam.dynamicevidence.validation.impl.ValidationMode definiert sind, um den Informationstyp festzulegen, der verwendet werden soll. Beispiel: Der Validierungsmodus für eine Validierungssitzung kann mit 'Änderungen übernehmen' und 'Änderungen validieren' verglichen werden und als Informationstyp kann 'error' (Fehler) für den ersteren und 'warning' (Warnung) für den letzteren Fall angegeben werden.