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
employee request status changed
employee status changed
declaration status changed
contract_request status change
person verification status changedRCARCHIVE_Person verification status model_EN (DRACS, DRFO)
medical programs status change
service request program processing status changed
party verification status changed RC_Party verification status model_EN (DRACS, DRFO)
Status models links
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
Input parameters (optional)
date
date_to
event_type
entity_type
attribute_name
attribute_name & new_value
page
page_size
...
if date and date_to parameters are set, the following condition must be met: date - date_to <= EVENTS_LIST_MAX_PERIOD_HOURS
in case of error return 422 ("Period must be less than or equal to {period} hours. Please set allowed period to the query")
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
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
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
Verify the validity of access token
Check user scopes in order to perform this action (scope = 'event:read')
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
Check user scopes in order to perform this action (scope = 'event:read')
return 403 in case invalid scope(s)
Get events by ID
Input parameters
id
Logic WS
Verify the validity of access token
Check user scopes in order to perform this action (scope = 'event:read')
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 |
...