Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
Situation_center
Situation_center
  • Overview
    • Overview
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 14
    • Issues 14
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Registry
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Куаныш
  • Situation_centerSituation_center
  • Issues
  • #28

Closed
Open
Opened Oct 12, 2020 by Куаныш@kuna9494 
  • Report abuse
  • New issue
Report abuse New issue

Интеграция с НЦЭ

Необходимо написать интеграционный сервис который будет периодически брать данные возвращаемые по апи за текущий день по региону "regionISO": "KZ-AST" и сохранять их в реестре

Ссылка на Swager UI

https://api.nce.kz/swagger/index.html?urls.primaryName=NCE%20sync%20API%20V1

Получаем токен для авторизации через API:

POST https://api.nce.kz/api/v1/authenticate

Username vwpWePg34WOnesjKojMJ

Password Jg27kGGnBI3YccVDg8nMTTmmdjijCaXL

Ответ апи получения токена

{ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiODY6MTM1IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZWlkZW50aWZpZXIiOiIxMzUiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOiJTdXBlcnZpc29yIiwiZXhwIjoxNjAyNTMxMDc4LCJpc3MiOiJhcGkubmNlLmt6IiwiYXVkIjoic2l0ZSJ9.WRtpvKH1fme85Y_Vz3Mf-sltglk5V1JBtjYf5N0WSeI", "expires": "2020-10-12T19:31:18.6708546+00:00", "errorCode": null }

P.S. Токен действителен 24 часа. Необходимо при каждом обращении запрашивать новый токен.


API для получения данных по ПЦР исследованиям по организациям

POST https://api.nce.kz/api/v1/monitoring/covid/all

Для авторизации используем токен полученный из предыдущего API

Ответ апи

{ "results": [ { "units": { "180441035837": { "bin": "180441035837", "day": "2020-10-29T00:00:00", "probe": "Primary", "result": false, "regionISO": "KZ-ALA", "count": 9 } }, "day": "2020-10-29T00:00:00", "probe": "Primary", "result": false, "regionISO": "KZ-ALA", "count": 9 } ] }

Нам необходимо брать данные из массива units, так как в родительском массиве могут передавать несколько units по разным организациям. Ниже пример того как могут быть переданы данные из разных организаций в одном массиве.

{ "units": { "111141017761": { "bin": "111141017761", "day": "2020-10-21T00:00:00", "probe": "Primary", "result": false, "regionISO": "KZ-AKM", "count": 441 }, "150741016908": { "bin": "150741016908", "day": "2020-10-21T00:00:00", "probe": "Primary", "result": false, "regionISO": "KZ-AKM", "count": 2 } }, "day": "2020-10-21T00:00:00", "probe": "Primary", "result": false, "regionISO": "KZ-AKM", "count": 443 }


Реестр в который необходимо записать данные полученные по API

ПЦР-исследования - ptsr-issledovaniya

Форма

ПЦР-исследования - pcr_issledovaniya

Данные должны заполняться по данной таблице:

Поле формы реестра Поле API Условие
date_create_data day
listbox_organizations bin
numericinput_first count Если "probe": "Primary", то число из поля count записывать в данное поле
numericinput_second count Если "probe": "Repeatedly" , то число из поля count записывать в данное поле
numericinput_second count Если "probe": "Treatment Control" , то число из поля count записывать в данное поле
numericinput_positive count Если "result": true, то число из поля count записывать в данное поле
numericinput_negative result Если "result": false, то число из поля count записывать в данное поле
formula_test_done count В случае если по выбранной лаборатории имеется только один массив записей то вписать в данное поле значение из поля count которое было возвращено АПИ. Если по выбранной лаборатории несколько массивов с записями то вписать в данное поле сумму значений поля count которое было возвращено АПИ

Справочник медицинских организаций

Лаборатории по ПЦР dict_pcr_laboratories

dict_pcr_laboratories.bin = listbox_pcr_laboratories.id


Необходимо взять данные только по существующим в системе Лабораториям. В случае если за текущий день имеются несколько записей по одной МО то необходимо их объединить в одну запись.

К примеру есть три массива по одной лаборатории за текущий день.

{ "units": { "111141017761": { "bin": "111141017761", "day": "2020-10-21T00:00:00", "probe": "Repeatedly", "result": false, "regionISO": "KZ-AKM", "count": 15 } }, "day": "2020-10-21T00:00:00", "probe": "Repeatedly", "result": false, "regionISO": "KZ-AKM", "count": 15 }, { "units": { "111141017761": { "bin": "111141017761", "day": "2020-10-21T00:00:00", "probe": "Primary", "result": true, "regionISO": "KZ-AKM", "count": 3 } }, "day": "2020-10-21T00:00:00", "probe": "Primary", "result": true, "regionISO": "KZ-AKM", "count": 32 }, { "units": { "111141017761": { "bin": "111141017761", "day": "2020-10-21T00:00:00", "probe": "Treatment Control", "result": false, "regionISO": "KZ-AKM", "count": 4 } }, "day": "2020-10-21T00:00:00", "probe": "Treatment Control", "result": false, "regionISO": "KZ-AKM", "count": 4 },


Для того чтобы заполнить поле "Мощность,количество тестов за сутки" numericinput_power_on_day нужно получить последнюю (единственную) запись в реестре "Информация по суточной мощности лаборатории" registry_information_on_the_daily_capacity_of_the_laboratory из поля numericinput_power_on_day


Для того чтобы заполнить поле "Всего проведено тестов за весь период" numericinput_all_period_test_count нужно получить значение из последней записи по выбранной лаборатории в текушем реестре из поля numericinput_all_period_test_count и прибавить к нему значение из поля formula_test_done которое было заполнено посредством интеграции.


Остальные поля заполняются вручную самими пользователями.

Edited Nov 19, 2020 by Куаныш
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
No due date
0
Labels
None
Assign labels
  • View project labels
Reference: kuna9494/Situation_center#28