...
Document type | Метод REST API |
---|---|
Document title | [DRAFT] PIS. Get divisions (Bulk data export) [API-005-012-003-0479] |
Guideline ID | GUI-0011 |
Author | @ |
Document version | 1 |
Document status | DRAFT |
Date of creation | ХХ.ХХ.ХХХХ (дата фінальної версії документа – RC або PROD) |
Date of update | ХХ.ХХ.ХХХХ (дата зміни версії) |
Method API ID | API-005-012-003-0479 |
Microservices (namespace) | IL |
Component | Bulk export |
Component ID | COM-005-012 |
Link на API-специфікацію | |
Resource | {{host}}/api/pis/bulk/divisions |
Scope | division_bulk:read_pis |
Protocol type | REST |
Request type | GET |
Sync/Async | Sync |
Public/Private | Public |
Purpose
Method to Get number of declarations per practitioner and his current limitall divisions from ehealth system as a raw data as a part of data exchange to do some operations on PIS side (data enrichment, search)
Logic
Service logic
Data preparation
Info |
---|
This data must be calculated on daily basis (or other intervals depending on cron configuration) |
Get all employees with a related party (party.id = employee.party_id)
Get all declared specialities (where speciality_officio = true) per party
Get current limit for each speciality from global parameters
PEDIATRICIAN: pediatrician_declaration_limit
THERAPIST: therapist_declaration_limit
FAMILY_DOCTOR: family_doctor_declaration_limit
Get lowest limit for each party (declarations_limit)
Find and count all active (status active or pending_verification) declarations for all this employees (per party) (declarations_count)
Representation
...
Get the latest snapshot to return calculated and aggregated report
...
Prepare snapshot (cron)
Run cron-job to prepare data based on schedule (
DIVISIONS_BULK_UPLOAD_SCHEDULE
)Generate file that contains all the data from
divisions
tableGenerate N files depending on
PIS_BULK_ACTIONS_MAX_DEPTH
with data changed in 1-2-3 .. N daysUpload files to
MEDIA_STORAGE_BULK_ACTIONS_BUCKET
Retrieve data
Download file from media storage
MEDIA_STORAGE_BULK_ACTIONS_BUCKET
depending on requested depthIf
depth
is missing - get all recordsif
depth
is passed - select file that contains changes within requested period
Retrieve records from file and render as response
Configuration parameters
N/A
...
Input parameter | Mandatory | Type | Description | Example | |
---|---|---|---|---|---|
1 |
|
|
|
|
|
2 |
|
|
|
|
|
Request structure
See on API-specification
Expand | ||
---|---|---|
| ||
|
...
Verify that MIS API token exists in request
in case of error - return 401 (“Api key is not set")
Verify the validity of MIS API token
in case of error - return 401 (“Invalid api key”)
Verify that MIS API token is not expired
in case of error - return 401 (“Invalid api key”)
Check MIS scopes in order to perform this action (scope = 'declarationdivision_bulk:read_pis')
return 403 (“Your scope does not allow to access this resource. Missing allowances: declarationdivision_bulk:read_pis”) in case of invalid scope(s)
Validate query parameters
Validate parameters by type and format
Parameter | Type | Format |
---|---|---|
depth | integer | Positive number without fraction components |
Processing
N/A
Response structure examples
See on API-specification
Expand | ||
---|---|---|
| ||
|
...