Номер тесту | Опис | Умови | Очікуваний результат |
|
1.Авторизація засобами kong API gateway | ||||
МВЗ-1-1 | Запит на висновок - невірна авторизація | POST /patients/composition | Повернуто помилку згідно конфігурації kong api gateway | PASSED |
МВЗ-1-2 | Підписання висновку - невірна авторизація | PATCH /patients/composition/{id} відсутній скоуп composition:sign | Повернуто помилку згідно конфігурації kong api gateway | PASSED Див. додаток 9 |
МВЗ-1-3 | Отримання висновку- невірна авторизація | GET /patients/{patientId}/episode/{episodeId}/encounter/{encounterId}/composition/{compositionId} відсутній скоуп заголовок composition:get | Повернуто помилку згідно конфігурації kong api gateway | PASSED |
2. Робота з асинхронними задачами | ||||
МВЗ-2-1 | Отримання статусу асинхронної задачі | GET /patient/composition/jobs/{asyncJobId} | Успішно отримано поточний статус, відповідь згідно специфікації | PASSED |
МВЗ-2-2 | Отримання статусу асинхронної задачі, що закінчилась помилкою | GET /patient/composition/jobs/{asyncJobId} | Успішно отримано поточний статус, відповідь згідно специфікації | PASSED Див. додаток 2 |
3. Пошук і отримання медвисновків | ||||
МВЗ-3-1 | Пошук медвисновків - загальна логіка | GET /patients/{patientId}/composition | Знайдені висновки повертаються у відповідь згідно специфікації | PASSED |
МВЗ-3-2 | Пошук медвисновків - пейджинація | GET/patients/{patientId}/composition?offset=&limit= Надано параметри | Паджинація працює згідно offset/limit | PASSED |
МВЗ-3-3 | Отримання існуючого медвисновку невідповідним користувачем | GET /patients/{patientId}/episode/{episodeId}/encounter/{encounterId}/composition/{compositionId} | Висновок не отримано | PASSED |
МВЗ-3-4 | Успішне отримання мед висновку | GET /patients/{patientId}/encounter/{encounterId}/composition/{compositionId} | Висновок успішно отримано згідно специфікації | PASSED |
4. Перевірка доступу до даних при створенні запиту на медвисновок (згідно процесу https://cawemo.com/share/80bb90b6-efe5-41c7-ba17-3d6dff789dc9) | ||||
МВЗ-4-1 | Створення запиту на висновок невідповідним автором (EGW2) | POST /patients/composition | Висновок не створено повертається помилка 401 | PASSED |
МВЗ-4-2 | Створення запиту на висновнок з невідповідним типом діагнозу (EGW3) | POST /patients/composition | Висновок не створено повертається помилка 400 | PASSED
|
МВЗ-4-3 | Створення запиту на висновнок з невідповідним типом екаунтеру (EGW4) | POST /patients/composition | Висновок не створено повертається помилка 400 | PASSED |
МВЗ-4-4 | Створення запиту на висновнок з невідповідною кваліфікацією ліккаря(EGW5) | POST /patients/composition | Висновок не створено повертається помилка 400 | PASSED
|
МВЗ-4-5 | Успішне створення запиту на мед висновнок | POST /patients/composition | Висновок створено в БД, документ медвисновку сгенеровано згідно шаблону | PASSED |
5. Перевірки, що виконуються для підписаних запитів на створення медвисновку (згідно процесу https://cawemo.com/share/80bb90b6-efe5-41c7-ba17-3d6dff789dc9) | ||||
МВЗ-5-1 | Перевірка валідності підпису (EGW7) | Надкладено валідний цифровий підпис. Перевірка відбувається засобами існуючого сервісу DS | Висновок успішно створено | PASSED |
МВЗ-5-2 | Перевірка належності підпису відповідному співробітнику згідно РНОКПП (EGW8+EGW10) | Надкладено валідний цифровий підпис, в якому РНОКПП не відповідає зареєстрованому для Employee в Composition.author | Підписання не дозволено для даного автора | PASSED |
МВЗ-5-3 | Перевірка належності підпису відповідному співробітнику згідно номеру документу (EGW9) | Надкладено валідний цифровий підпис, в якому вказано номер документа, який не відповідає зареєстрованому для даного Employee номеру документу зі списку | Підписання не дозволено для даного автора | PASSED
|
МВЗ-5-4 | Перевірка підписаного контенту в тілі запиту | Те ж що і МВЗ-5-1 | Підписання не дозволено - невірне тіло підписаного запиту | PASSED Task ID
|
Артефакти тестування:
МВЗ-2-1 Отримання статусу асинхронної
{ "data": { "doneAt": "2020-09-21T11:13:04.481Z", "eta": "2020-09-21T11:13:04.481Z", "id": "772c28ff-f817-4edc-92a6-c7d3ed6242dc", "links": [ { "entity": "eHealth/composition", "href": "composition/c8a962d9-be39-4ca5-b02a-cf1a6921a159" } ], "status": "DONE" } }
2. МВЗ-2-2 Отримання статусу асинхронної задачі, що закінчилась помилкою
{ "data": { "eta": "2020-09-21T11:25:20.737Z", "id": "f39c9d15-40d4-422c-b3d3-5099f915dae3", "links": [ { "entity": "eHealth/composition", "error": "1006: Can't cancel composition: integration tasks are already running", "href": "composition/33637998-b7f4-41c2-9930-a1c94084988c" } ], "status": "FAILED" } }
3. Пошук МВ для пацієнта
GET http://localhost:8080/api/patients/f2a36339-3282-42ff-84c1-dd0c2c756838/composition?limit=1
[ { "date": "2020-09-17T17:38:05.408Z", "encounter": { "type": { "coding": [ { "code": "encounter", "system": "eHealth/resources" } ], "text": "string" }, "value": "872e068b-7f77-4001-bacd-b968c3162f05" }, "episodeOfCare": { "type": { "coding": [ { "code": "episode", "system": "eHealth/resources" } ] }, "value": "b61c775e-5428-4619-a17e-168ba8ee3bbf" }, "identifier": { "type": { "coding": [ { "code": "composition", "system": "eHealth/composition" } ] }, "value": "33637998-b7f4-41c2-9930-a1c94084988c" }, "status": "FINAL", "title": "0PK2-AM6P-ABM4-PPPE", "type": { "coding": [ { "code": "NEWBORN", "system": "eHealth/composition_types" } ] } } ]
4.
GET 'http://localhost:8080/api/patients/f2a36339-3282-42ff-84c1-dd0c2c756838/composition?offset=1&limit=1' \
[]
5.
curl --location --request GET 'http://localhost:8080/api/patients/f2a36339-3282-42ff-84c1-dd0c2c756838/composition/33637998-b7f4-41c2-9930-a1c94084988c/episode/b61c775e-5428-4619-a17e-168ba8ee3bbf/encounter/872e068b-7f77-4001-bacd-b968c3162f05' \ --header 'x-consumer-id: a747cd78-b7e5-11ea-b351-f319bc42050d' \ --header 'api-key: {{mis_api_key}}' \ --header 'x-consumer-metadata: {"client_id": "6f05764a-cfd2-11ea-8072-5f4cd5d18d20"}' \ --header 'x-request-id: 27829e56-cfd2-11ea-bb26-73efbd32573f' \ --header 'Authorization: Bearer V1dVcWxRbWJQTzQxZE1OQWxkMEJRUT09' { "author": { "type": { "coding": [ { "code": "employee", "system": "eHealth/resources" } ], "text": "string" }, "value": "8862183e-bacd-41b6-87d6-40b87ec3c186" }, "category": { "coding": [ { "code": "LIVE_BIRTH", "system": "eHealth/composition_categories" } ] }, "custodian": { "type": { "coding": [ { "code": "legal_entity", "system": "eHealth/resources" } ] }, "value": "0dccb76f-3ed0-40f4-8f73-e95e2f91ea29" }, "date": "2020-09-17T17:38:05.408Z", "encounter": { "type": { "coding": [ { "code": "encounter", "system": "eHealth/resources" } ], "text": "string" }, "value": "872e068b-7f77-4001-bacd-b968c3162f05" }, "event": [ { "code": { "coding": [ { "code": "COMPOSITION_VALIDITY_PERIOD", "system": "eHealth/composition_events" } ] }, "period": { "start": "2020-09-17T17:55:00.969Z" } } ], "extension": [ { "valueCode": "NEWBORN_PROCESSING_STATUS", "valueString": "DONE" } ], "identifier": { "type": { "coding": [ { "code": "composition", "system": "eHealth/composition" } ] }, "value": "33637998-b7f4-41c2-9930-a1c94084988c" }, "section": { "focus": { "type": { "coding": [ { "code": "person", "system": "eHealth/resources" } ], "text": "string" }, "value": "925df840-21e2-4381-83fa-49e67aa3501a" }, "text": { "div": "<!DOCTYPE html>\n <html lang=\"en\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\">\n <title>МЕДИЧНИЙ ВИСНОВОК</title>\n <style> * { padding: 0; margin: 0; font-family: Calibri, sans-serif; font-size: 12px; } html { border: 1px solid #000; width: 134mm; } body { margin: 5mm; } .container { margin: auto; width: 122mm; } .header { display: flex; justify-content: space-between; align-items: center; } .bar { width: 70mm; height: 10mm; } h1 { font-size: 16px; font-weight: bold; } h1 span { font-weight: normal; } h2 { font-size: 14px; font-weight: bold; padding-bottom: 10px; } .table-about { padding-top: 10px; padding-bottom: 10px; } .table-about tr:nth-child(2n + 1) { background: #eee; padding-bottom: 7px; } .table-about tr { padding-bottom: 7px; } .table-about tr>td { min-width: 195px; } .text-bold { font-size: 14px; font-weight: bold; } .comments { margin: 10px 0; } .comments p { font-size: 10px; } .code { border-top: 1px dashed #000; } .code p { font-size: 17px; padding-top: 10px; text-transform: uppercase; } @media print { body { -webkit-print-color-adjust: exact; } }</style>\n </head>\n <body>\n <div class=\"container\">\n <table class=\"table-about\">\n <tbody>\n <tr>\n <td><h1>МЕДИЧНИЙ ВИСНОВОК №</h1><b>0PK2-AM6P-ABM4-PPPE</b></td>\n <td><img class=\"bar\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAiAAAABkCAAAAACatNSTAAAAAklEQVR4nGKkkSsAAAFZSURBVO3SSw6AIAwFwN7/0n4WRpAWxfWYQEwb8QETEdvxnHNEO9+j6vS1vpp9fb2Na2S1cbWv/fY/zzRV6j8J6t3Ps2VnMkswS73eqe+i2gUggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCAvJ7wD/XFMCKsWOQwAAAAASUVORK5CYII=\" alt=\"barcode\" /></td>\n </tr>\n <tr>\n <td>Категорія</td>\n <td>пологи, живонароджена дитина</td>\n </tr>\n <tr>\n <td>Тип</td>\n <td>Медичний висновок про народження<br /></td>\n </tr>\n <tr>\n <td><h2>ІНФОРМАЦІЙНА ДОВІДКА</h2></td>\n <td></td>\n </tr><tr>\n <td>Дата реєстрації висновку</td>\n <td>2020-09-17</td>\n </tr>\n <tr>\n <td>Мати (законний представник)</td>\n <td>925df840-21e2-4381-83fa-49e67aa3501a</td>\n </tr>\n <tr>\n <td>Дитина</td>\n <td>f2a36339-3282-42ff-84c1-dd0c2c756838</td>\n </tr>\n <tr>\n <td>Дата народження дитини</td>\n <td>2020-07-23</td>\n </tr>\n <tr>\n <td>Стать дитини</td>\n <td>чоловіча</td>\n </tr>\n <tr>\n <td>Лікар</td>\n <td>\n 8862183e-bacd-41b6-87d6-40b87ec3c186\n Лікар-акушер-гінеколог\n Вячеслав\n Сирський\n </td>\n </tr>\n <tr>\n <td>Найменування закладу охорони здоров'я або ПІБ ФОП</td>\n <td>СИРСЬКИЙ ВЯЧЕСЛАВ ВІКТОРОВИЧ</td>\n </tr>\n <tr>\n <td>Код за ЄДРПОУ / РНОКПП* </td>\n <td>2799207815</td>\n </tr>\n </tbody>\n </table>\n <div class=\"comments\">\n <p>* Для фізичних осіб, які через свої релігійні переконання відмовились від прийняття реєстраційного номера облікової картки платника податків та повідомили про це відповідний контролюючий орган і мають відмітку у паспорті, зазначаються серія (за наявності) та номер паспорта.</p>\n </div>\n </div>\n </body>\n </html>\n", "status": "generated" } }, "status": "FINAL", "subject": { "type": { "coding": [ { "code": "preperson", "system": "eHealth/resources" } ], "text": "string" }, "value": "f2a36339-3282-42ff-84c1-dd0c2c756838" }, "title": "0PK2-AM6P-ABM4-PPPE", "type": { "coding": [ { "code": "NEWBORN", "system": "eHealth/composition_types" } ] } }
6. МВЗ-4-1 Створення запиту на висновок невідповідним автором (EGW2)
{ "data": { "eta": "2020-09-21T12:17:16.554Z", "id": "0af37861-4b4a-489d-be67-61a4ab0509ce", "links": [ { "entity": "eHealth/composition", "error": "1030: Invalid encounter performer" } ], "status": "FAILED" } }
7. Отримання МВ невідповідним користувачем
{ "meta": { "url": "http://api-preprod.ehealth.gov.ua:8000/api/patients/6986e2c5-b7c9-4fbb-9371-61041a78264d/composition/cd5123aa-1dc6-4353-b9ac-76804f9178b0/episode/b61c775e-5428-4619-a17e-168ba8ee3bbf/encounter/5748a5dd-3be6-4613-8746-948453c595e0", "code": 403, "request_id": "27829e56-cfd2-11ea-bb26-73efbd32573f", "type": "object" }, "error": { "message": "Access denied", "type": "forbidden" } }
8. Створення МВ без відповідного доступу
{ "meta": { "url": "http://api-preprod.ehealth.gov.ua:8000/api/patients/composition", "code": 403, "type": "object" }, "error": { "message": "Your scope does not allow to access this resource. Missing allowances: composition:create", "type": "forbidden" } }
9. Підписання МВ без відповідного доступу
{ "meta": { "url": "http://api-preprod.ehealth.gov.ua:8000/api/patients/composition/cd5123aa-1dc6-4353-b9ac-76804f9178b0/sign", "code": 403, "request_id": "27829e56-cfd2-11ea-bb26-73efbd32573f", "type": "object" }, "error": { "message": "Your scope does not allow to access this resource. Missing allowances: composition:sign", "type": "forbidden" } }
10. Отримання МВ без відповідних доступів
{ "meta": { "url": "http://api-preprod.ehealth.gov.ua:8000/api/patients/6986e2c5-b7c9-4fbb-9371-61041a78264d/composition/cd5123aa-1dc6-4353-b9ac-76804f9178b0/episode/b61c775e-5428-4619-a17e-168ba8ee3bbf/encounter/5748a5dd-3be6-4613-8746-948453c595e0", "code": 403, "request_id": "27829e56-cfd2-11ea-bb26-73efbd32573f", "type": "object" }, "error": { "message": "Your scope does not allow to access this resource. Missing allowances: composition:read", "type": "forbidden" } }