В ходе выполнения задачи
API-821
-
Получение подробных данных проблемы...
СТАТУС
была добавлена возможность настройки анкеты диспансеризации через конфиг.
Анкета диспансеризации различается для лиц возраста до 75 и после 75, в конфигурационном файле анкеты хранятся в поле anketB75 и anketA75 соответственно.
Каждое поле представляет собой массив объектов QuestionLocal, который состоит из следующих полей:
Название поля | Тип данных | Описание |
---|
TicketCode | string | Код маркировки вопроса анкеты (из таблицы oms_Param) |
Question | Question | Модель вопроса |
Пример модели в формате JSON:
{
"TicketCode": "HighBloodPressure",
"Question": {
"QuestionID": 1,
"QuestionNumber": "1.1",
"QuestionName": "Говорил ли Вам врач когда-либо, что у Вас имеется гипертоническая болезнь (повышенное артериальное давление)?",
"Answers": [{
"AnswerID": 1,
"AnswerType": "Choise",
"AnswerName": "нет"
},
{
"AnswerID": 2,
"AnswerType": "Choise",
"AnswerName": "да"
}
]
}
}
Создание вопросов
Поиск кодов маркировок (значения поля ticketCode) может быть выполнен в таблице oms_Param по следующему запросу:
select * from oms_Param WHERE Name LIKE '%@0%'
где @0 - полный или частичный (в случае ненахождения полного совпадения) текст вопроса.
Для вопросов, которые подразумевают выбор варианта ответа, необходимо задать в массиве ответов количество объектов равное числу вариантов ответа и для каждого указать AnswerType=Choise и в каждом AnswerName указывать содержимое варианта ответа.
Для вопросов, подразумевающих ввод ответа, необходимо задать в массиве ответов один объект и указать AnswerType=Input и в AnswerName указать пустую строку.
Пример конфигурации
Пример конфигурации анкеты с двумя вопросами в каждой:
{
"anketA75": [{
"TicketCode": "HighBloodPressure",
"Question": {
"QuestionID": 1,
"QuestionNumber": "1.1",
"QuestionName": "Говорил ли Вам врач когда-либо, что у Вас имеется гипертоническая болезнь (повышенное артериальное давление)?",
"Answers": [{
"AnswerID": 1,
"AnswerType": "Choise",
"AnswerName": "нет"
},
{
"AnswerID": 2,
"AnswerType": "Choise",
"AnswerName": "да"
}
]
}
},
{
"TicketCode": "HighBloodPressureIfY",
"Question": {
"QuestionID": 2,
"QuestionNumber": "1.1",
"QuestionName": "Если «Да», то принимаете ли Вы препараты для снижения давления?",
"Answers": [{
"AnswerID": 3,
"AnswerType": "Choise",
"AnswerName": "нет"
},
{
"AnswerID": 4,
"AnswerType": "Choise",
"AnswerName": "да"
}
]
}
}
],
"anketB75": [{
"TicketCode": "HighBloodPressure",
"Question": {
"QuestionID": 1,
"QuestionNumber": "1.1",
"QuestionName": "Говорил ли Вам врач когда-либо, что у Вас имеется гипертоническая болезнь (повышенное артериальное давление)?",
"Answers": [{
"AnswerID": 1,
"AnswerType": "Choise",
"AnswerName": "нет"
},
{
"AnswerID": 2,
"AnswerType": "Choise",
"AnswerName": "да"
}
]
}
},
{
"TicketCode": "HighBloodPressureIfY",
"Question": {
"QuestionID": 2,
"QuestionNumber": "1.1.1",
"QuestionName": "Если «Да», то принимаете ли Вы препараты для снижения давления?",
"Answers": [{
"AnswerID": 3,
"AnswerType": "Choise",
"AnswerName": "нет"
},
{
"AnswerID": 4,
"AnswerType": "Choise",
"AnswerName": "да"
}
]
}
}
]
}
Актуальная на текущий момент конфигурация анкеты: anket.json