Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Event Manager is used to collect different events (like ATTRIBUTE_CHANGED, OBJECT_ADDED etc) from different sources and store them in one place.

...

Overview

  • The monitoring of changed statuses will be implemented to the code

  • Event manager monitors statuses of different objects

  • In case status was changed the information is sent to EventDB to be stored

  • This method does not guarantee the fact of storing data in EventDB

  • At the moment only statuses are monitored. Other events can be added in future, but they are not in a scope today.

  • This manager is used by MIS.

  • Context is not used to obtain data from DB.

  • Only changed statuses should be stored to EventDB, not new.

StatusChangeEvent

Statuses to collect

Save data to Event DB

...

N

Step

Description

Owner

1

Status was changed

Status was changed on the one of events that are monitores

system

2

Collect Data

After changing status System collect all necessary data in the required format 

system

3

Save Data to EDB

Collected data are saved to EventDB.

Save Data directly to EventDB

system

Employee status changed

Save also employee_id value to EventDB

...

Data format

id

PK

event_type

string, the name of event (ex. StatusChangeEvent)

entity_type

string, the name on entity that was changed (ex. Medication_request)

entity_id

uuid, id of changed object

properties

json, consists of datas that describe changed element (status: new_value)

event_time

datetime, date and time of event

changed_by

uuid, id of a person

Obtain data from EventDB

Get events list

Apiary

Input parameters (optional)
  • date

  • date_to

  • event_type

  • entity_type

  • attribute_name

  • attribute_name & new_value

  • page

  • page_size

...

  1. if date and date_to parameters are set, the following condition must be met: date - date_to <= EVENTS_LIST_MAX_PERIOD_HOURS

    1. in case of error return 422 ("Period must be less than or equal to {period} hours. Please set allowed period to the query")

  2. if date and date_to parameters are not set, use date_to as now() and the following condition must be met: date - date_to = EVENTS_LIST_MAX_PERIOD_HOURS

  3. if date_to parameter is set and date is not set, the following condition must be met: date - date_to = EVENTS_LIST_MAX_PERIOD_HOURS

  4. if date parameter is set and date_to is not set, the following condition must be met: date - date_to = EVENTS_LIST_MAX_PERIOD_HOURS

Logic WS
  1. Verify the validity of access token

  2. Check user scopes in order to perform this action (scope = 'event:read')

    1. return 403 in case invalid scope(s)

Validate EventType

Each event type can be filtered by scopes. At the moment we have only one event - StatusChangeEvent

  1. Check user scopes in order to perform this action (scope = 'event:read')

    1. return 403 in case invalid scope(s)

Get events by ID

Apiary

Input parameters
  • id

Logic WS
  1. Verify the validity of access token

  2. Check user scopes in order to perform this action (scope = 'event:read')

    1. return 403 in case invalid scope(s)

Event termination

...

N

Step

Description

Owner

1

Once in 24H timer starts

system

2

Check amount of data in DB

The number of data in DB should be checked.

amount of data in DB > event_max_number

system

3

Delete data in DB

all data > event_max_number should be deleted

system

...