Scripts vorab mit erfassten Daten füllen

Es besteht die Möglichkeit, die dem Benutzer angezeigten Werte vorab zu füllen, so dass die Antworten nur noch bestätigt oder geändert werden müssen.

Beispielsweise können Name und Geburtsdatum eines Benutzers auf der Seite "Persönliche Angaben" vorab gefüllt werden, vorausgesetzt, dass der Benutzer sich bereits angemeldet hat und es eine andere Datenbank gibt, in der diese persönlichen Angaben gespeichert sind.

Der DS kann vor dem Start der Scriptausführung wie folgt vorab gefüllt werden:

Abbildung 1. Fragment eines Codes, mit dem der DS gefüllt wird
...
Datastore ds = null;

try {
  // open the data store and create the root entity
  ds = DatastoreFactory.newInstance().openDatastore(schemaName);
} catch (NoSuchSchemaException e) {
  throw new AppException(IEG.ID_SCHEMA_NOT_FOUND);
}

final EntityType appType = ds.getEntityType("Application");
final Entity rootElement = ds.newEntity(appType);

ds.addRootEntity(rootElement);
    
final EntityType personType = ds.getEntityType("Person");
final Entity person = ds.newEntity(personType);
    
person.setAttribute("firstName", "TestFirstName");
person.setAttribute("lastName", "TestLastName");
person.setAttribute("dateOfBirth", "19700101");
//...
    
rootElement.addChildEntity(person);

Die Stammentität kann anschließend wie folgt zum Erstellen einer neuen Scriptausführung verwendet werden:

Abbildung 2. Scriptausführung erstellen
...

// create the script execution
final IEGRootEntityID rootEntityID = new IEGRootEntityID();
rootEntityID = rootElement.getUniqueID();
final IEGRuntime runtimeAPI = new IEGRuntime();
final IEGScriptExecutionIdentifier executionIdentifier =
  runtimeAPI.createScriptExecutionExistingRootEntity(
    iegScriptID, schemaName, rootEntityID);

Anschließend kann der IEG-Player wie folgt unter Verwendung dieser neuen Scriptausführung ausgeführt werden:

Abbildung 3. IEG-Player starten
<?xml version="1.0" encoding="UTF-8"?>
<PAGE PAGE_ID="IEGScriptLauncher">
  <JSP_SCRIPTLET>
    <![CDATA[
curam.omega3.request.RequestHandler rh =
  curam.omega3.request.RequestHandlerFactory.getRequestHandler(
    request);

String context = request.getContextPath() + "/";
     
String url =
  context + "ieg/Screening.do?" + "executionID=" + executionID
    + "&" + rh.getSystemParameters();

// Redirect to the correct page.
response.sendRedirect(response.encodeRedirectURL(url));
    ]]>
  </JSP_SCRIPTLET>
</PAGE>

Beachten Sie, dass nur der DS vorab gefüllt werden kann, nicht die Kontrollfragen oder andere scriptbezogene Informationen, da sie in der Scriptausführung gespeichert werden und nicht im DS. Das bedeutet, dass es nicht möglich ist, die in der ersten Sektion des Scripts angezeigten Daten vorab zu füllen und bei der zweiten Sektion anzufangen. Es wird die erste Sektion angezeigt, in der der Benutzer die vorab gefüllten Daten bestätigen kann.