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

Спільні та унікальні валідації в контексті процесу створення МВ (create + sign)

Специфікація АПІ

https://app.swaggerhub.com/apis/ehealthua/compositions/2.39.2

Опис перевірок та валідацій

Об'єкт що перевіряється

Суть перевірки

Код помилки

Конфіг параметр

Create composition

Sign composition

Об'єкт що перевіряється

Суть перевірки

Код помилки

Конфіг параметр

Create composition

Sign composition

1

identifier

Іd створюваного МВ не збігається з Іd існуючого в системі МВ з будь-яким статусом

 

 

+

 

2

 

 

 

 

 

 

3

status

Cтатус МВ, який продовжується/скорочується/уточнюється цією чернеткою (що підписується), не дорівнює ENTERED_IN_ERROR

 1184

 

 

+

4

 

 

 

 

 

 

5

type

type.coding.system відповідає заданому ресурсу

1073

 

 +

 

6

type

Тип МВ type.coding.code існує в довіднику type.coding.system

 

 

+

 

7

type

Тип МВ не може змінюватися при створенні МВ “на заміну”

1146

 

+

 

8

 

 

 

 

 

 

9

category

category.coding.system відповідає заданому в конфігураціях ресурсу

1081

1085

emal_validation_category_newborn_system

emal_validation_category_disability_system

 +

 

10

category

Категорія МВ category.coding.code існує в довіднику, який задано в атрибуті category.coding.system

1161

 

+

 

11

category

Така категорія МВ category.coding.code дозволена для такого типу МВ type.coding.code

  1. якщо у конфігураційному параметрі зазначено явно категорію МВ, то створення МВ з такими типом та категорією дозволено;

  2. інакше - створення МВ заборонено.

1081

1085

emal_validation_category_newborn_codes

emal_validation_category_disability_codes

+

 

12

 

 

 

 

 

 

13

custodian

Такому типу закладу можна створювати таку категорію МВ:

  1. якщо у конфігураційному параметрі зазначено явно тип закладу та категорію МВ, то створення МВ цим закладом та такої категорії дозволяється;

  2. інакше - створення МВ заборонено;

1162

emal_validation_custodian_categories_by_type

перевірка не по значенню з запиту

 

14

custodian

Перевірка що заклад має дозволений статус:

  1. якщо у конфігураційному параметрі зазначено явно статус закладу та тип МВ, то створення цим закладом МВ такого типу дозволяється;

  2. інакше - створення МВ заборонено.

1164

emal_validation_custodian_allowed_statuses

+

15

 

 

 

 

 

 

16

encounter

Запис має бути в Системі

1016

 

+

 

17

encounter

Запис не має бути скасованим (encounter.status не дорівнює “ENTERED_IN_ERROR“)

 1037

 

 

 

18

encounter

Запис має належати пацієнту, зазначеному як subject в МВ

 1075

 

 

 

19

encounter

Encounter.type має бути дозволений для категорії МВ що створюється

 1038

EMAL_FILTER_ENCOUNTER_TYPE_NEWBORN

EMAL_FILTER_ENCOUNTER_TYPE_DISABILITY

+

 

20

encounter

Параметр Encounter.date (або параметр encounter.period.start для взаємодії, в якій зазначено період замість дати) має бути не більше ніж зазначено в конфігурації у відповідності до категорії МВ

1183

EMAL_VALIDATION_ENCOUNTER_MAX_AGE_DAYS_BY_CATEGORY

+

 

21

encounter

На один Encounter.value має бути створений тільки один МВ тої самої категорії та типу в статусі “Підписаний“. При створенні МВ перевіряється чи вже існує на вказану взаємодію інший МВ такого ж типу та категорії в статусі “Підписаний“:

  1. якщо такий МВ існує - створення МВ не дозволяється;

  2. інше - створення МВ дозволяється.

1217

 

 

+

22

 

 

 

 

 

 

23

author

Перевірка що емплої - активний (status = APPROVED)

1165

EMAL_VALIDATION_AUTHOR_ACTIVE_STATUS_VALUE

+

 

24

author

Перевірка що працівник відноситься до юридичної особи вказаної в запиті (custodian)

 

 

 

+

25

author

Тип емплоя дозволений для категорії МВ

  1. якщо у конфігураційному параметрі зазначено явно employee.type та категорію МВ, то створення цим employee такої категорії МВ дозволяється;

  2. інакше - створення МВ заборонено

1166

EMAL_VALIDATION_AUTHOR_CATEGORIES_BY_TYPE

+

 

26

author

Посада емплоя дозволена для категорії МВ

  1. якщо у конфігураційному параметрі зазначено явно employee.position та категорію МВ, то створення цим employee такої категорії МВ дозволяється;

  2. інакше - створення МВ заборонено

1167

EMAL_VALIDATION_AUTHOR_CATEGORIES_BY_POSITION

+

+

27

author

Спеціальність за посадою емплоя - дозволена для категорії МВ

(specialities->speciality in {config} & specialities->speciality_officio = true)

  1. якщо у конфігураційному параметрі зазначено явно employee.speciality та категорію МВ, то створення цим employee такої категорії МВ дозволяється;

  2. інакше - створення МВ заборонено

1168

EMAL_VALIDATION_AUTHOR_CATEGORIES_BY_SPECIALITY_OFFICIO

+

 

28

author

Перевірка що емплої має спеціальність яка вимагається для категорії МВ

  1. якщо у конфігураційному параметрі зазначено явно employee.speciality та категорію МВ, то створення цим employee такої категорії МВ дозволяється;

  2. інакше - створення МВ заборонено

1169

EMAL_VALIDATION_AUTHOR_CATEGORIES_BY_SPECIALITY

+

 

29

 

 

 

 

 

 

30

subject

Тип особи subject.type.coding.code дозволений для такої категорії МВ category.coding.code

1188

EMAL_VALIDATION_SUBJECT_CATEGORIES_BY_TYPE

+

 

31

subject

Статус особи дозволений для категорії МВ

  1. якщо у конфігураційному параметрі зазначено явно patient.status та категорію МВ, то створення для цього пацієнта такої категорії МВ дозволяється;

  2. інакше - створення МВ заборонено

1189

1190

EMAL_VALIDATION_SUBJECT_ALLOWED_STATUSES_BY_CATEGORY

+

 

32

subject

Статус верифікації пацієнта дозволений для категорії МВ

  1. якщо у конфігураційному параметрі зазначено явно patient.verification_status, то створення для цього пацієнта МВ такої категорії дозволяється;

  2. інакше - створення МВ заборонено

1192

EMAL_VALIDATION_SUBJECT_ALLOWED_VERIFICATION_STATUSES_BY_CATEGORY

+

 

33

subject

Вік особи на момент створення чернетки (composition.period.start-birth_date) дозволений для категоріії МВ

*ігнорується для subject.type.coding.code = preperson

  1. Якщо вік пацієнта (person) на момент створення МВ відповідає конфігураційному параметру, то дозволити створення такої категорії МВ;

  2. інакше - створення МВ заборонено

1194

EMAL_VALIDATION_SUBJECT_ALLOWED_AGES_BY_CATEGORY

 

+

 

34

subject

Стать gender особи дозволена для категорії МВ

  1. якщо у конфігураційному параметрі зазначено явно дозволене значення статі за категорією МВ, то створення для цього пацієнта МВ такої категорії дозволяється;

  2. якщо у конфігураційному параметрі не зазначено явно значення статі за категорією МВ, то створення для цього пацієнта МВ дозволяється;

  3. інакше - створення МВ заборонено

1210

1211

EMAL_VALIDATION_SUBJECT_GENDERS_BY_CATEGORY

 

+

 

35

subject

Перевіряємо (лише для subject.type.coding.code = person):

  1. Дозволено створення у випадках (будь який варіант - ОК):

    1. "no_tax_id"= true,
      and tax_id isnull

    2. “no_tax_id"= false
      and MC.composition.date-MPI.birth_date>=14,
      and tax_id notnull

    3. “no_tax_id"= false or null
      and MC.composition.date-MPI.birth_date<14

1198

 

+

 

36

subject

Дозволений тип документа особи для категорії МВ

*ігнорується для subject.type.coding.code = preperson

  1. якщо у конфігураційному параметрі зазначено явно дозволене значення типу дозволених документів пацієнта, то створення для цього пацієнта такої категорії МВ дозволяється;

  2. якщо у конфігураційному параметрі не зазначено явно обмеження по типах документів пацієнта, то створення для цього пацієнта такої категорії МВ дозволяється;

  3. інакше - створення МВ заборонено

1196

EMAL_VALIDATION_SUBJECT_DOCUMENTS_BY_CATEGORY

+

 

37

subject

Перевірка, що записи про ідентифікованого та неідентифікованого пацієнта поєднані (створення уточнюючого МВТН)

 1080

1104

 

+

 

38

subject

Перевірка можливості зазначати екстеншен IS_FOREIGN_TREATMENT для типу вказаної особи (Для типу МВ = TEMP_DISABILITY)

  1. Якщо subject.type.coding.code = preperson та IS_FOREIGN_TREATMENT=true, то забороняється створювати МВ для цього пацієнта

  2. інше - дозволяється створювати МВ для цього пацієнта

1199

 

+

 

39

 

 

 

 

 

 

40

relatesTo

Якщо relatesTo.code передано, то перевірити, що значення відповідає заданому в конфіг-чартах ресурсу:

  1. якщо так, то створення МВ дозволяється;

  2. інакше - створення МВ заборонено;

 1176

 

+

 

41

relatesTo

Якщо relatesTo.code передано, то перевіряємо, чи коректне значення задане у relatesTo.code:

  1. якщо так, то створення МВ дозволяється;

  2. інакше - створення МВ заборонено;

 

 

+

 

42

relatesTo

Якщо зазначено relatesTo.code, то перевіряємо, що МВ, на який посилаються (relatesTo.target[x]) має статус, що визначено до типу зв'язку relatesTo.code:

  • replaces: “FINAL” or “ENTERED_IN_ERROR”;

  • appends: “FINAL”;

  • transforms: “FINAL”;

 1177

 

+

 

43

relatesTo

Якщо relatesTo.code передано, то перевірити, що МВ на який посилаються (relatesTo.target[x]) має type.coding.codeякий відповідає type.coding.code поточного МВ який створюється

 

 

+

 

44

relatesTo

Якщо relatesTo.code передано, то перевірити, що мв на який посилаються (relatesTo.target[x]) видано дозволеному типу особи relatesTo ...subject.type.coding.code який відповідає типу зв'язку relatesTo.code

 

 

+

 

45

relatesTo

Перевірка що статус МВТН2 не дорівнює AMENDED. Якщо composition.status = AMENDED, то забороняємо підписувати цю чернетку, бо не можемо уточнювати той МВТН, який вже уточнено іншим МВТН

 1145

 

 

+

46

relatesTo

Перевірка при підписанні чернетки, яка продовжує/скорочує попредній МВТН, на існування іншого МВТН у статусі FINAL, який продовжив/скоротив цей МВТН

 1184

 

 

 +

47

relatesTo

Перевірка, що МВТН2 має статус FINAL. Якщо це так, то дозволяємо підписати чернетку МВТН1.

 

 

 

 +

48

 

 

 

 

 

 

49

event.period.start

Перевірка що дату передано у форматі ISO 8601 із обов’язковим приведенням до Всесвітнього координованого часу UTC (приклад: "2020-06-26T15:22:53.403Z")

1170

 

+

 

50

event.period.start

Початок терміну по уточнюючому МВТН збігається з початком терміну першого (чи єдиного) МВТН преперсони з ланцюга (при створенні уточнюючого МВТН)

1158

 

+

 

51

event.period.start

При створенні чернетки МВ валідується можливість зазначення початку періоду дійсності МВ в минулому:

  • для МВ про народження EMAL_FILTER_PERIOD_START_NEWBORN

  • для МВТН EMAL_FILTER_PERIOD_START_DISABILITY

 1040

МВН:

EMAL_FILTER_PERIOD_START_NEWBORN

МВТН:

EMAL_FILTER_PERIOD_START_DISABILITY

+

 

52

event.period.start

Перевірка періоду в минулому впродовж якого можна створити МВ на заміну (у запиті на створення в relatesTo зазначено скасований МВ). Тобто, при створенні МВ на заміну ігноруються конфігураційні параметри EMAL_FILTER_PERIOD_START_DISABILITY та EMAL_FILTER_PERIOD_START_NEWBORN.

Конфігурується для для кожного типу МВ.
Значення задається у днях.

1158

МВН: EMAL_FILTER_REPLACEMENT_PERIOD_START_NEWBORN

МВТН: EMAL_FILTER_REPLACEMENT_PERIOD_START_DISABILITY

 

 

53

event.period.start

Перевірка при створенні чернетки МВ чи зазначено розширення IS_FOREIGN_TREATMENT = TRUE. В такому випадку ігноруються конфігураційний параметр EMAL_FILTER_PERIOD_START_DISABILITY

 1040

EMAL_FILTER_PERIOD_START_DISABILITY

+

 

54

event.period.start

При створенні чернетки МВ валідується можливість зазначення початку періоду дійсності МВ в майбутньому. Створення МВ з початком непрацездатності в майбутньому дозволяється за таких умов:

  1. якщо це продовження попереднього випадку непрацездатності за категорією PREGNANCY (relatesTo.code = APPENDS) та це єдине продовження;

  2. початок непрацездатності продовження зазначено в майбутньому (event.period.start МВТН2 >= task.created) та з наступного календарного дня після дати закінчення непрацездатності за попереднім МВТН категорії “Вагітність та пологи” (event.period.end.МВТН1+1 день);

  3. довжина періоду непрацездатності (event.period.end - event.period.start) відповідає дозволеному значенню в EMAL_VALIDATION_PREGNANCY_APPENDED_COMPOSITION_ALLOWED_PERIOD;

  4. загальна довжина періоду непрацездатності первинного МВТН та продовження проходить валідацію по EMAL_FILTER_DISABILITY_TOTAL_SPAN_DISABILITY.

Iнше - створення МВ заборонено.

1218

1219

1220

1221

1222

1223

1224

1225

 

EMAL_VALIDATION_PREGNANCY_APPENDED_COMPOSITION_ALLOWED_PERIOD

+

 

55

event.period.end

Перевірка що дату передано у форматі ISO 8601 із обов’язковим приведенням до Всесвітнього координованого часу UTC (приклад: "2020-06-26T15:22:53.403Z")

1170

 

 +

 

56

event.period.end

Перевірка, за умови зазначенння relatesTo, що кінець терміну по уточнюючому МВТН збігається з кінцем терміну останнього (чи єдиного) МВТН преперсони з ланцюга

1158

 

 +

 

57

event.period

Перевірка при підписанні чернетки на існування іншого висновку в зазначений період, але з датою початку пізніше, ніш запропонований в запиті

 1143

 

 +

 

58

event.period

Для первинного МВТН категорії PREGNANCY перевіряється термін дійсності непрацездатності:

  1. якщо загальна кількість календарних днів періоду непрацездатності, з врахуванням кінцевої дати, відповідає одному з значень в конфігураційному параметрі EMAL_VALIDATION_PREGNANCY_NEW_COMPOSITION_ALLOWED_PERIODS - створення такого МВТН дозволяється;

  2. інше - створення такого МВТН забороняється.

1218

1219

1220

1221

1222

1223

1224

1225

EMAL_VALIDATION_PREGNANCY_NEW_COMPOSITION_ALLOWED_PERIODS

+

 

59

 

 

 

 

 

 

60

section.focus

Тип особи section.focus.type.coding.code дозволений для такої категорії МВ category.coding.code

1201

EMAL_VALIDATION_FOCUS_CATEGORIES_BY_TYPE

+

 

61

section.focus

Статус дозволений для категорії МВ

  1. якщо у конфігураційному параметрі зазначено явно статус та категорію МВ, то створення для цїєї непрацездатної особи такої категорії МВ дозволяється;

  2. інакше - створення МВ заборонено

1202

1203

EMAL_VALIDATION_FOCUS_ALLOWED_STATUSES_BY_CATEGORY

+

 

62

section.focus

Статус верифікації дозволений для категорії МВ

  1. якщо у конфігураційному параметрі зазначено явно статус верифікації, то створення для цїєї непрацездатної особи МВ дозволяється;

  2. інакше - створення МВ заборонено

1204

1205

EMAL_VALIDATION_FOCUS_ALLOWED_VERIFICATION_STATUSES_BY_CATEGORY

+

 

63

section.focus

Вік особи на момент створення чернетки дозволений (composition.period.start-birth_date )

*ігнорується для section.focus.type.coding.code = preperson

  1. Якщо вік непрацездатної особи (person), на момент створення МВ, відповідає діапазону вказаному в конфігураційному параметрі, то дозволяється створення такого МВ

  2. інакше - створення МВ заборонено

1206

1207

EMAL_VALIDATION_FOCUS_ALLOWED_AGES_BY_CATEGORY

+

 

64

section.focus

Стать gender особи дозволена для категорії

  1. якщо у конфіг параметрі зазначено явно дозволене значення статі за категорією МВ, то створення для цього section.focus МВ дозволяється;

  2. якщо у конфіг параметрі не зазначено явно значення статі за категорією МВ, то створення для цього section.focus МВ дозволяється;

  3. інакше - створення МВ заборонено

1208

1209

EMAL_VALIDATION_FOCUS_GENDERS_BY_CATEGORY

+

 

65

section.focus

Перевіряємо (лише для section.focus.type.coding.code = person):

  1. Дозволено створення у випадках (будь який варіант - ОК):

    1. "no_tax_id"= true,
      and tax_id isnull

    2. “no_tax_id"= false
      and MC.composition.date-MPI.birth_date>=14,
      and tax_id notnull

    3. “no_tax_id"= false or null
      and MC.composition.date-MPI.birth_date<14

1080

 

+

 

66

section.focus

Дозволений тип документа особи для категорії МВ

*ігнорується для section.focus.type.coding.code = preperson

  1. якщо у конфігураційному параметрі зазначено явно дозволене значення типу дозволених документів непрацездатної особи, то створення для цієї особи такої категорії МВ дозволяється;

  2. якщо у конфігураційному параметрі не зазначено явно обмеження по типах документів непрацездатної особи, то створення для цієї особи такої категорії МВ дозволяється;

  3. інакше - створення МВ заборонено

1212

1213

EMAL_VALIDATION_FOCUS_DOCUMENTS_BY_CATEGORY

+

 

67

section.focus

Перевірка що записи ідентифікованої та неідентифікованої особи повинні бути поєднані (створення уточнюючого МВТН)

1080

 

+

 

68

section.focus

Конфігурується для певної категорії МВ (category.coding.code) можливість зазначати значення section.focus відмінне від subject.

Якщо зазначено, що subject повинен дорівнювати section.focus = TRUE для даної категорії МВ, то:

  • створення МВ з зазначенням атрибуту section.focus відмінного від значення subject забороняється;

  • створення такого МВ де subject=section.focus дозволяється.

1182

EMAL_VALIDATION_SUBJECT_FOCUS_REQUIRE_EQUALITY_BY_CATEGORY

+

 

69

section.focus

Перевірка можливості зазначати екстеншен IS_FOREIGN_TREATMENT для типу вказаної особи (Для типу МВ = TEMP_DISABILITY)

  1. Якщо section.focus.type.coding.code = preperson та IS_FOREIGN_TREATMENT=true, то забороняється створювати МВ для цієї непрацездатної особи

  2. інше - дозволяється створювати МВ для цієї непрацездатної особи

1214

 

+

 

70

 

 

 

 

 

 

71

extensions

AUTHORIZE_WITH

Значення параметра AUTHORIZE_WITH повинно відповідати значенню параметру AUTHORIZE_WITH персони, яку зазначено у section.focus

1171

 

+

SIGNED_CONTENT

72

extensions

AUTHORIZE_WITH не протермінований

1171

 

 

SIGNED_CONTENT

73

extensions

IS_ACCIDENT

якщо relatesTo.code = replaces та статус МВ не дорівнює ENTERED_IN_ERROR, то перевірка на етапі створення уточнюючого МВТН (preperson → person).

Якщо хоч в одному МВ з ланцюга який уточнюється, зазначено IS_ACCIDENT =TRUE, то в уточнюючому значення наслідується = “TRUE”

1154

 

+

SIGNED_CONTENT

74

extensions

TREATMENT_VIOLATION. Дозволені значення лише з довідника COMPOSITION_TREATMENT_VIOLATION

1088

 

+

SIGNED_CONTENT

75

extensions

Якщо зазначено TREATMENT_VIOLATION, то TREATMENT_VIOLATION_DATE не повинно бути пустим (обов'язкове)

1088

 

+

SIGNED_CONTENT

76

extensions

TREATMENT_VIOLATION_DATE.

Значення повинно бути в межах періоду дійсності ланцюга МВТН та поточногї дати/часу (event.period.start першого МВТН з ланцюга< TREATMENT_VIOLATION_DATE < NOW)

1172

 

+

SIGNED_CONTENT

77

extensions

Перевірка що TREATMENT_VIOLATION не повинно бути пустим, якщо зазначено параметр TREATMENT_VIOLATION_DATE

1088

 

+

SIGNED_CONTENT

78

extensions

IS_INTOXICATED

якщо relatesTo.code = replaces та статус МВ не дорівнює ENTERED_IN_ERROR. Перевірка на етапі створення уточнюючого МВТН (preperson → person).

Якщо хоч в одному МВТН з масиву який уточнюється, зазначено IS_INTOXICATED =TRUE, то в уточнюючому значення наслідується = “TRUE”

1154

 

+

SIGNED_CONTENT

79

extensions

IS_FOREIGN_TREATMENT не може бути зазначений при створенні уточнюючого МВ (preperson → person), оскільки преперсона не може бути пролікована за кордоном.

1156

 

+

SIGNED_CONTENT

80

extensions

IS_FOREIGN_TREATMENT.

Зазначення дозволене за конфігурацією з врахуванням категорії МВТН

1175

 

+

SIGNED_CONTENT

81

extensions

IS_FOREIGN_TREATMENT.

Якщо зазначено “TRUE“, то не виконується валідація за EMAL_FILTER_DISABILITY_SINGLE_SPAN_DISABILITY.

Якщо IS_FOREIGN_TREATMENT = false, або такий екстеншен не переданий, то валідація за EMAL_FILTER_DISABILITY_SINGLE_SPAN_DISABILITY виконується.

1031

 

+

 

82

extensions

IS_FORCE_RENEW. Якщо зазначено “TRUE“, то для створюваного МВТН не проводиться пошук пов'язаного, та не заповнюється relatesTo

відсутній

 

 +

SIGNED_CONTENT

83

extensions

extension будь який: зазначення дозволене за конфігурацією з врахуванням категорії МВ

1175

EMAL_VALIDATION_EXTENSION_ALLOWED_BY_CATEGORY

 +

 

84

extensions

NEWBORN_BIRTH_DATE

  1. не може бути пустим;

  2. формат: date;

  3. має дорівнювати одночасно значенню параметрів preperson.birth_date та в розрізі дати composition.event.period.start;

  4. дозволяється для зазначення у composition.type = NEWBORN

1084

1173

1088

1115

 

 

SIGNED_CONTENT

85

extensions

NEWBORN_SEX

  1. не може бути пустим;

  2. дозволені значення з довідника https://api-preprod.ehealth.gov.ua/api/dictionaries?name=GENDER

  3. має дорівнювати значенню параметра preperson.gender;

  4. дозволяється для зазначення у composition.type = NEWBORN

1084

1174

 

 

SIGNED_CONTENT

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