.. title:: Точка входу "Судовий експерт" для API проекту "Суд на долоні" .. meta:: :desctription: Точка входу "Судовий експерт" для API проекту "Суд на долоні" :robots: index, follow :viewport: width=device-width, initial-scale=1 :language: uk :keywords: Суд на долоні, API, судовий експерт :author: Кирило Захаров :copyright: Суд на долоні Судовий експерт ==================== Точка входу "Судовий експерт" повертає інформацію стосовно судових експертів України. Загальна інформація ------------------- Інформація про судових експертів з даних Єдиного реєстру нотаріусів Міністерства юстиції України, опублікованого на `Національному порталі відкритих даних `_. Уся інформація щодо юридичних осіб оновлюється один раз на 1-2 тижні. Кількість судових експертів --------------------------- GET-запит за адресою ``https://api.conp.com.ua/api/v1.0/courtexpert`` повертає загальну кількість судових експертів в системі .. sourcecode:: http GET /courtexpert HTTP/1.0 Host: https://api.conp.com.ua/api/v1.0 { "message": 11118 } ----- Отримання інформації про судового експерта ----------------------------------------------- GET-запит за адресою ``https://api.conp.com.ua/api/v1.0/courtexpert/:id`` повертає інормацію про судового експерта за `відповідною схемою даних `_ `. Де ``id`` - це транслітерована комбінація дати видачі першого свідоцтва та прізвища та ініціалів експерта. .. sourcecode:: http GET /courtexpert/2003_34_barchyshak_svitlana_petrivna HTTP/1.0 Host: https://api.conp.com.ua/api/v1.0 { "person": { "source": "барчишак світлана петрівна", "idName": "Барчишак С. П.", "fullName": "Барчишак Світлана Петрівна", "familyName": "Барчишак", "givenName": "Світлана", "additionalName": "Петрівна", "sex": "жінка", "jobTitle": "Судовий експерт" }, "phone": [ "2 37 06" ], "documents": [ { "certificateIssuer": "Експертно-кваліфікаційна комісія, Тернопільського ОБСМЕ", "certificateDate": "2003-08-04T00:00:00.000Z", "certificateDecisionNumber": "34", "speciality": { "specialityMeta": "moz", "specialityType": "Cудово-медична експертиза", "specialitySpecials": [ "Судово-медична експертиза" ] } }, { "certificateIssuer": "Експертно-кваліфікаційна комісія, Тернопільського ОБСМЕ", "certificateDate": "2005-12-16T00:00:00.000Z", "certificateDecisionNumber": "2", "expires": "2010-12-16T00:00:00.000Z", "speciality": { "specialityMeta": "moz", "specialityType": "Cудово-медична експертиза", "specialitySpecials": [ "Судово-медична експертиза" ] } } ], "organization": { "address": { "source": "Тернопільська обл., Чортківський р-н, 48500, вул. Степана Бандери, 50", "countryName": "Україна", "postalCode": "48500", "region": "Тернопільська область", "district": "Чортківський район", "streetAddress": "вулиця Степана Бандери, 50", "fullAddress": "48500, Тернопільська область, Чортківський район, вулиця Степана Бандери, 50" }, "name": "Тернопільське обласне бюро судово-медичної експертизи" }, "updatedAt": "2018-08-07T08:52:25.989Z", "id": "2003_34_barchyshak_svitlana_petrivna" } ----- Пошук судових експертів ----------------------- POST-запит за адресою ``https://api.conp.com.ua/api/v1.0/courtexpert/search`` дозволяє шукати судових експертів. POST-запит має містити JSON з наступними змінними :query: рядок Перелік термінів для повнотекстового пошуку. :defaultOperator: рядок Приймає значення ``or`` або ``and``, щоб шукати будь-який з термінів для повнотекстового пошуку або усі терміни. :filter: об'єкт Об'єкт, який містить перелік усіх пошукових фільтрів, встановлених користувачем. :sort: об'єкт Об'єкт, який визначає порядок сортування результатів. :from: ціле число (integer) Кількість об'єктів, яку необхідно пропустити (використовується для пагінації). :aggregation: булеве значення Якщо встановлено значення ``false``, то в результаті буде отримано перелік судових експертів, які відповідають повнотекстовому запиту та фільтрам. Якщо встановлено значення ``true``, то повертає перелік агрегацій для фасетного пошуку. Фільтри ~~~~~~~ Кожен з фільтрів має бути об'єктом з певною назвою (поле, за яким відбувається фільтрація) та будуватися за схемою: :list: масив рядків Перелік точних значень термінів для фільтрації результату. :operator: рядок Приймає значення ``or`` або ``and``, щоб у результат попадали сутності з будь-яким зі значень фільтру або усі значення фільтру. Судових експертів можна фільтрувати за точними значеннями таких змінних: * **address.region** - Область, в якій працює судовий експерт * **address.district** - Район або район у місті, в якому працює судовий експерт * **address.locality** - Населений пункт, в якому працює судовий експерт * **address.fullAddress** - Повна адреса, за якою працює судовий експерт * **specialityClass** - Клас спеціалізації * **specialityType** - Тип спеціалізації * **specialitySpecials** - Спеціалізація Судових експертів можна фільтрувати за діапазонами значень таких змінних (для таких фільтрів вказується діапазон зі змінними ``from`` та ``to``): * **certificateDate** - Дата видачі свідоцтва судового експерта * **expires** - Дата закінчення дії свідоцтва судового експерта Приклад використання фільтру - "(1) Судові експерти, які працюють в Київському НДІСЕ, (2) володіють криміналістичною експертизою (3) за спеціалізацією - технічна експертиза документів": .. sourcecode:: http ... {"filter": { "organization.name": { "list": [ "Київський НДІСЕ" ], "operator": "or" }, "specialityClass": { "list": [ "I. Криміналістична експертиза" ], "operator": "or" }, "specialityType": { "list": [ "2. Технічна експертиза документів" ], "operator": "or" } } ... Сортування ~~~~~~~~~~ Для судових експертів дозволено сортування за повним іменем. Якщо змінна ``sort`` у запиті має значення ``{}``, то сортування відбуватиметься за релевантністю. Приклад сортування за повним іменем: .. sourcecode:: http ... "sort": { "person.fullName.sort": { "order": "desc" } } ... Агрегація ~~~~~~~~~ Для судових експертів передбачено агрегацію за такими змінними: * Організація, в якій працює судовий експерт * Клас експертизи * Вид експертизи * Спеціалізації * Область, де працює судовий експерт * Населений, де працює судовий експерт * Район або район у місті, де працює судовий експерт * Стать судового експерта Агрегації розраховуються автоматично для усіх змінних, для яких встановлено фільтр. Якщо необхідно отримати агрегацію без фільтрації, то необхідно задати "пустий" фільтр таким чином: .. sourcecode:: http ... "filter": { "address.region": { "list": [], "operator": "or" } } ... Приклад повного запиту та відповіді ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. sourcecode:: http POST /courtexpert/search HTTP/1.0 Host: https://api.conp.com.ua/api/v1.0 { "query": "", "defaultOperator": "or", "filter": { "fullName": { "list": [], "operator": "or" }, "person.sex": { "list": [], "operator": "or" }, "organization.name": { "list": [], "operator": "or" }, "address.region": { "list": [], "operator": "or" }, "address.district": { "list": [], "operator": "or" }, "address.locality": { "list": [ "місто Одеса" ], "operator": "or" }, "certificateIssuer": { "list": [], "operator": "or" }, "certificateDate": { "list": [], "operator": "or" }, "expires": { "list": [], "operator": "or" }, "specialityClass": { "list": [], "operator": "or" }, "specialityType": { "list": [], "operator": "or" }, "specialitySpecials": { "list": [ "Судово-медична гістологія", "Судово-медична експертиза" ], "operator": "and" } }, "searchIndex": "courtexpert", "aggregation": true } { "aggs": { "address.locality": [], "compound": {}, "address.district": [], "specialityType": [ { "key": "Cудово-медична експертиза", "doc_count": 22 } ], "address.region": [ { "key": "Одеська область", "doc_count": 3 } ], "specialitySpecials": [ { "key": "Судово-медична криміналістика", "doc_count": 1 } ], "specialityClass": [], "organization.name": [ { "key": "Одеське обласне бюро судово-медичної експертизи", "doc_count": 3 } ] }, "total": 3 }