Podstawowym zadaniem programu jest zapisywanie w odpowiednim formacie danych przekazanych mu w postaci 
    parametrów wywołania. Dodatkową funkcją dsi może być ewentualne powiadomienie operatora o zdarzeniu lub 
    sprawie, o których informacje zostaną dsi przekazane. Powiadomienie operatora następuje poprzez wysłanie 
    prośby do serwera okienek graficznych wraz z całą porcją informacji o sprawie. Serwer wyświetlając informacje 
    dla operatora przekaże z powrotem informacje o czasie wyświetlania okienka oraz identyfikatorze operatora, 
    jeśli ten potwierdzi swoją tożsamość. Serwer przekaże także stany dla poszczególnych zdarzeń danej sprawy, 
    zaakceptowane przez operatora (operator może zmienić stan zdarzenia z aktywnego na pasywny lub odwrotnie 
    albo pozostawić je bez zmian). Informacje o stanach zdarzeń, otrzymane od serwera, zostaną jako ostatnie 
    informacje wypisane zawsze na standardowe wyjście. Każda linia tych informacji opisuje osobne zdarzenie. 
    Składa się ona z identyfikatora zdarzenia będącego nieujemną liczbą całkowitą (argumenty wejściowe opcji 
    --event-id) oraz z liczby określającej czy zdarzenie to ma 
    pozostać aktywne czy pasywne (patrz: opcje --active-value i 
    --passive-value). Jeśli operator dokona zmiany stanu przynajmniej jednego zdarzenia, 
    powodując, że wszystkie, które mogą, staną się pasywne, to dodatkowo, także na standardowe wyjście, 
    zostanie wypisana informacja closed-by po której nastąpi identyfikator operatora.
    
Sprawa może mieć więcej niż jedno zdarzenie. W związku z tym wszystkie opcje 
    postaci --event-* (np.:--event-ctime, 
    --event-id, 
    --event-state) mogą wystąpić 
    więcej niż jeden raz. Dla każdego zdarzenia muszą wystąpić wszystkie opcje 
    postaci --event-*, ale ich kolejność jest dowolna. Każda z tych opcji ma 
    wewnętrzny licznik wystąpień dzięki czemu może wystąpić przemieszanie zdarzeń. 
    Program dsi stara się w ten sposób uzbierać minimalną ilość w pełni 
    zdefiniowanych zdarzeń np. dwa poniższe zdarzenia, choć podane w różny 
    sposób (w innej kolejności), są tożsame:
    
1)
--event-ctime 15
--event-mtime 20
--event-id 1
--event-hits-number 2
--event-state active 
--event-msg "zdarzenie 1"
--event-ctime 16
--event-mtime 21
--event-id 2
--event-hits-number 3
--event-state active
--event-msg "zdarzenie 2"
2)
--event-ctime 15
--event-ctime 16
--event-mtime 20
--event-mtime 21
--event-id 1
--event-id 2
--event-hits-number 2
--event-hits-number 3
--event-state active
--event-state active
--event-msg "zdarzenie 1"
--event-msg "zdarzenie 2"
Informacje przekazane dsi w postaci argumentów wywołania zapisywane są do plików (dzięki 
    wielokrotnemu użyciu opcji -f można stworzyć ich całą listę). Jeśli żaden plik nie został 
    wyspecyfikowany, albo jeśli do żadnego pliku nie udało się zapisać danych, to informacje 
    zostaną wypisane na standardowe wyjście. Zapisywanie tych informacji odbywa się przed 
    wypisaniem informacji o stanach poszczególnych zdarzeń sprawy na standardowe wyjście, 
    o którym była wyżej mowa. Informacje są też zawsze zapisywane w bazie danych SQL, z której korzystają
    prawie wszystkie moduły systemu David.