ЕСОЗ - публічна документація

Тестова програма - загальна частина (МВЗ)

Номер тесту

Опис

Умови

Очікуваний результат


Статус

1.Авторизація засобами kong API gateway

 

МВЗ-1-1

Запит на висновок - невірна авторизація

POST /patients/composition
відсутній скоуп composition:create

Повернуто помилку згідно конфігурації kong api gateway

PASSED

Див. додаток 8

МВЗ-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

Див. додаток 10

2. Робота з асинхронними задачами

 

МВЗ-2-1

Отримання статусу асинхронної задачі

GET /patient/composition/jobs/{asyncJobId}

Успішно отримано поточний статус, відповідь згідно специфікації

PASSED

Див. додаток 1

МВЗ-2-2

Отримання статусу асинхронної задачі, що закінчилась помилкою

GET /patient/composition/jobs/{asyncJobId}

Успішно отримано поточний статус, відповідь згідно специфікації

PASSED

Див. додаток 2

3. Пошук і отримання медвисновків

 

МВЗ-3-1

Пошук медвисновків - загальна логіка

GET /patients/{patientId}/composition

Знайдені висновки повертаються у відповідь згідно специфікації

PASSED

Див додаток 3

МВЗ-3-2

Пошук медвисновків - пейджинація

GET/patients/{patientId}/composition?offset=&limit=

Надано параметри
offset
limit

Паджинація працює згідно offset/limit

PASSED

Див додаток 4

МВЗ-3-3

Отримання існуючого медвисновку невідповідним користувачем

GET /patients/{patientId}/episode/{episodeId}/encounter/{encounterId}/composition/{compositionId}

Висновок не отримано
Перевірка виконується засобами ABAC згідно сконфігурованих правил для Composition

PASSED

Див додаток 7

МВЗ-3-4

Успішне отримання мед висновку

GET /patients/{patientId}/encounter/{encounterId}/composition/{compositionId}

Висновок успішно отримано згідно специфікації

PASSED
Див додаток 5

4. Перевірка доступу до даних при створенні запиту на медвисновок (згідно процесу https://cawemo.com/share/80bb90b6-efe5-41c7-ba17-3d6dff789dc9)

 

МВЗ-4-1

Створення запиту на висновок невідповідним автором (EGW2)

POST /patients/composition
+
значення Composition.author не віповідає Encounter.care_manager

Висновок не створено

повертається помилка 401

PASSED

Див. додаток 6

МВЗ-4-2

Створення запиту на висновнок з невідповідним типом діагнозу (EGW3)

POST /patients/composition
+
значення Encounter.diagnoses не відповідає сконфігурованим

Висновок не створено

повертається помилка 400

PASSED

Task ID: bed55d59-437e-48fc-8695-c736ae9e6757

{"attempts":1,"error":{"code":1036,"description":"PRIMARY diagnosis code not allowed","details":{}}}

МВЗ-4-3

Створення запиту на висновнок з невідповідним типом екаунтеру (EGW4)

POST /patients/composition
+
значення Encounter.type не відповідає сконфігурованим

Висновок не створено

повертається помилка 400

PASSED

Task ID: 97bacf37-32e9-496d-ab99-f2b9aa355ddc

{"attempts":1,"error":{"code":1038,"description":"Encounter type is not allowed for composition type","details":{}}}

МВЗ-4-4

Створення запиту на висновнок з невідповідною кваліфікацією ліккаря(EGW5)

POST /patients/composition
+
значення Employee.doctor.specialities не відповідає сконфігурованим

Висновок не створено

повертається помилка 400

PASSED

Task id

c13b298c-5d8d-4c6c-a3c7-30d0dbefede4

{"attempts":1,"error":{"code":1033,"description":"Doctor does not have required specialities","details":{}}}

МВЗ-4-5

Успішне створення запиту на мед висновнок

POST /patients/composition

Висновок створено в БД, документ медвисновку сгенеровано згідно шаблону

PASSED

title = 0PK2-AM6P-ABM4-PPPE

task ID: 47889ced-5e8a-4c22-bc10-a80c20734f43

5. Перевірки, що виконуються для підписаних запитів на створення медвисновку (згідно процесу https://cawemo.com/share/80bb90b6-efe5-41c7-ba17-3d6dff789dc9)

 

МВЗ-5-1

Перевірка валідності підпису (EGW7)

Надкладено валідний цифровий підпис. Перевірка відбувається засобами існуючого сервісу DS

Висновок успішно створено

PASSED

Title = 0PK2-AM6P-ABM4-PPPE

Task ID = 47889ced-5e8a-4c22-bc10-a80c20734f43

МВЗ-5-2

Перевірка належності підпису відповідному співробітнику згідно РНОКПП (EGW8+EGW10)

Надкладено валідний цифровий підпис, в якому РНОКПП не відповідає зареєстрованому для Employee в Composition.author

Перевірка відбувається засобами існуючого сервісу DS

Підписання не дозволено для даного автора

PASSED

Task ID = a55bfff7-b764-4ccd-a59b-a2c87c32af42

{"attempts":1,"error":{"code":1025,"description":"Verification failed (DRFO does not match)","details":{}}}

МВЗ-5-3

Перевірка належності підпису відповідному співробітнику згідно номеру документу (EGW9)

Надкладено валідний цифровий підпис, в якому вказано номер документа, який не відповідає зареєстрованому для даного Employee номеру документу зі списку

Employee.Party.Documents

Підписання не дозволено для даного автора

PASSED

Task ID = 533c5d44-95cf-4ff9-b473-e2b7a64e293c

{"attempts":1,"error":{"code":1024,"description":"Verification failed (documents don't match)","details":{}}}

МВЗ-5-4

Перевірка підписаного контенту в тілі запиту

Те ж що і МВЗ-5-1
Підпис накладено вірним способом, де дані надані в одному контейнері разом з підписом і при цьому тіло підписаного запиту не відповідає початковому тілу в Composition.section.text

Підписання не дозволено - невірне тіло підписаного запиту

Тест виконується тільки для створення медичних висновків обох типів, але не виконується для підписаних листів-пояснень, які використовуються для відміни медичних висновків.

PASSED

 

Task ID 865c1fd8-21ee-4a76-bf20-55ec307b146f

 

{"attempts":1,"error":{"code":1018,"description":"Signature verification failed (probably invalid format)","details":{}}}

 

 

Артефакти тестування:


  1. МВЗ-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.

 

 

6. МВЗ-4-1 Створення запиту на висновок невідповідним автором (EGW2)

 

 

 

7. Отримання МВ невідповідним користувачем

 

 

 

8. Створення МВ без відповідного доступу

 

 

9. Підписання МВ без відповідного доступу

 

 

10. Отримання МВ без відповідних доступів

 

 

ЕСОЗ - публічна документація