Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
6
Добавлен:
04.09.2023
Размер:
876.08 Кб
Скачать

Для реализации базы знаний, на основе представленной выше БД, были использованы формулы и пороговые правила для поддержки принятия решения о необходимости назначения дополнительной физической активности.

2.3 Формулы для помощи принятия решения

Помощь в ведении плана тренировок пациентов с ожирением в разрабатываемой системе основывается на соответствии количество калорий которые пациент потратил за день на физическую активность с целевым количеством калорий, рассчитанным на основании выбранного плана похудения и данных пациента.

Формула 1 позволяет рассчитать количество затраченных калорий за единичную физическую активность:

(1)

где E – затраченная энергия, ккал; k – коэффициент категории деятельности; d – длительность физической активности, мин; w – вес пациента,

кг.

Рассчитав количество потраченных калорий за все активности за день и просуммировав их получим суммарную затраченную энергию, которую сравниваем с целевым показателем, рассчитываемым по формуле 2:

(

)

(2)

где T – целевой показатель, ккал; w – вес, кг; h – рост, cм; a – возраст, г; s

– коэффициент пола ( для женщин; для мужчин); c – коэффициент плана похудения [7].

На основе сравнения Е и Т формируется заключение:

11

{

В дальнейшем для более точного контроля за пациентом в систему необходимо включить данные о приемах пищи и учитывать не только затраченные, но и потребленные калории.

12

3 ПРОГРАММНО-АЛГОРИТМИЧЕСКОЕ ОБЕСПЕЧЕНИЕ СИСТЕМЫ

Программно-алгоритмическое обеспечение (ПАО) – это программное обеспечения для реализации системы поддержки принятия решений для ведения плана тренировок пациентов с ожирением.

В качестве среды разработки была выбрана Android Studio, в котором было написано мобильное приложение, предоставляющее необходимый функционал. Язык программирования – Kotlin. База данных – Room SQ Lite.

На рисунке 3 представлены страницы списка (а) и добавления (б)

пациентов.

а б

Рисунок 3 - Страницы списка (а) и добавления (б) пациентов Выбрав пациента из списка можно перейти к странице его физической

активности. При нажатии на кнопку с изображением плюса можно создать запись с новым пациентом. При длительном нажатии на пациента можно открыть окно для редактирования его данных, в том числе удаления.

Страница с представлением данных о физической активности пациента представлена на рисунке 4, а. Вверху страницы отображается суммарное количество потраченных калорий и целевое значение, рассчитанные по формулам. Фиолетовым цветом выделена рекомендация на основе используемого порогового правила.

13

а б

Рисунок 4 – Страницы списка (а) и добавления (б) пациентов Остальное пространство экрана занимает список физической активности.

В каждой строке представлена основная введенная информация и рассчитанные по формуле значения потраченных калорий. Для изменения или удаления записи необходимо выполнить длительное зажатие. Страница с введением данных о физической активности представлена на рисунке 4, б.

14

4 МЕТРОЛОГИЧЕСКОЕ ОБЕСПЕЧЕНИЕ СИСТЕМЫ

Метрологическое обеспечение системы – совокупность знаний и методов,

обеспечивающих единство измерений характеристик биомедицинских сигналов, оценки диагностически значимых показателей и воспроизводимость результатов медицинских исследований.

Метрологические характеристики определяются уровнем адекватности модели и корректностью знаний, сформулированных в информационном обеспечении системы, корректностью методов исследования, в том числе методов обработки и анализа результатов исследований.

Погрешности в работе системы можно разделить на две основные группы: методические и инструментальные.

1) Методические погрешности Методическая погрешность обусловлена несовершенством метода

измерений или упрощениями, допущенными при измерениях.

Методическая погрешность может быть вызвана неточностью используемых в базе знаний коэффициентов, которые применяются для расчета диагностических показателей. Также расчеты могут быть не точными, так как не учитывают дополнительные данные о пациенте, такие как индивидуальные болезни.

2) Инструментальные погрешности Инструментальная погрешность обусловлена несовершенством

применяемых средств измерений.

В данной системе основную инструментальную погрешность вызывает неправильное введение данных пользователем о своей физической активности.

Для уменьшения данной погрешности в программном обеспечении предусмотрены допустимые форматы и пределы вводимых данных, которые ограничивают пользователя от ошибок.

15

ЗАКЛЮЧЕНИЕ

В рамках работы была разработана система поддержки принятия решений для ведения плана тренировок пациентов с ожирением.

Была рассмотрена актуальность проблемы ожирения, синтезирована структура биотехнической системы для контроля над процессами профилактики и лечения ожирения путем физических упражнений. Для разработанной системы были подробно описаны и реализованы системы информационного, методического, программно-алгоритмического и метрологического обеспечения. Было разработано Android приложение,

реализующие необходимый функционал.

16

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Лескова И.В. Ожирение в России // Ожирение и метаболизм. 2019,

вып. (№) 16(1). С. 20-26.

2. World Health Organisation Global Health Observatory data repository. Prevalence of obesity among adults, BMI 30, age-standardized. Estimates by country - URL: http://apps.who.int/gho/data/node.main.A900A? (дата обращения: 10.12.2022).

3.Огрызко Е.В., Шелепова Е.А., Тюрина Е.М. Статистика ожирения у детей в Российской Федерации за 2014-2018 годы // Менеджер здравоохранения. 2020, вып. (№) 4(1). С. 37-42.

4.Разина А.О., Ачкасов Е.Е., Руненко С.Д. Ожирение: современный взгляд на проблему // Ожирение и метаболизм. 2016, вып. (№) 13(1). С. 3-8.

5.Дедов И.И. Междисциплинарные клинические рекомендации «Лечение ожирения и коморбидных заболеваний» // Ожирение и метаболизм. –2021,

вып. (№) 18(1). С. 5-99.

6.Драпкина О.М. Диагностика, лечение, профилактика ожирения и ассоциированных с ним заболеваний (национальные клинические рекомендации). – 2017.

7.Kipp S., Byrnes W. C., Kram R. Calculating metabolic energy expenditure across a wide range of exercise intensities: the equation matters //Applied Physiology, Nutrition, and Metabolism. 2018, vol. (№) 43(6). pp. 639-642.

8.Садыкова Е.В. Методология синтеза биотехнической системы дифференциальной диагностики и лечения хронических заболеваний. М.: Изд-во СПбГЭТУ "ЛЭТИ", 2020. 239 с.

17

ПРИЛОЖЕНИЕ А

ПРОГРАММНЫЙ КОД СИСТЕМЫ ПРИНЯТИЯ РЕШЕНИЯ

import android.os.Build import android.os.Bundle

import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View

import android.view.ViewGroup

import androidx.annotation.RequiresApi import androidx.lifecycle.Observer

import androidx.lifecycle.ViewModelProvider import androidx.navigation.findNavController

import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs

import androidx.recyclerview.widget.LinearLayoutManager import com.almazov.mdp.data.DBViewModel

import kotlinx.android.synthetic.main.fragment_patient_workout.view.* import java.math.BigDecimal

import java.time.LocalDate import java.time.Period

class PatientWorkout : Fragment() {

private lateinit var appDatabaseViewModel: DBViewModel private val args by navArgs<PatientWorkoutArgs>()

@RequiresApi(Build.VERSION_CODES.O) override fun onCreateView(

inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?

): View? {

appDatabaseViewModel = ViewModelProvider(this)[DBViewModel::class.java]

requireActivity().title = "Физическая активность"

val view = inflater.inflate(R.layout.fragment_patient_workout, container, false)

val adapterP = WorkoutAdapter(args.selectedPatient) view.recycler_view_workouts.apply {

adapter = adapterP

layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)

}

appDatabaseViewModel.readAllWorkouts(args.selectedPatient.id!!)

.observe(viewLifecycleOwner, Observer { records -> adapterP.setData(records)

var kkal = 0f

val workoutCoefs = mutableMapOf( "Ходьба" to 4.5f,

"Зарядка" to 6f, "Спорт" to 8.5f, "Уборка" to 3f, "Садовые работы" to 5f

)

val workoutCoef = mutableMapOf( "Поддержание веса" to 0.3f, "Комфортное похудение" to 0.34f, "Быстрое похудение" to 0.41f,

18

)

val sexCoef = mutableMapOf( "Муж." to 5f,

"Жен." to -161f,

)

val birthDate = args.selectedPatient.birthDate.split(".") val age =

getAge(birthDate[2].toInt(),birthDate[1].toInt(),birthDate[0].toInt())

val recommendationValue = (10f * args.selectedPatient.weight + 6.25f * args.selectedPatient.height - 5f * age + sexCoef[args.selectedPatient.sex]!!) * workoutCoef[args.selectedPatient.dietType]!!

for (record in records)

{

kkal += workoutCoefs[record.category]!! * record.duration / 60 * args.selectedPatient.weight

}

val targetString = "Рекомендуемый уровень: " + recommendationValue.toString() + " ккал"

val recommendationString = if (kkal < recommendationValue) "Рекомендуется " +

"дополнительная физическая активность" else "За день выполнено достаточно " +

"физической активности"

val kkalSting = "Сумма потраченных калорий: " + kkal.toInt().toString() + " ккал"

view.caloriesSum.text = kkalSting view.calories_target.text = targetString view.recommendation.text = recommendationString

})

view.btn_add.setOnClickListener {

val action = PatientWorkoutDirections. actionPatientWorkoutToAddWorkout(args.selectedPatient) findNavController().navigate(action)

}

return view

}

@RequiresApi(Build.VERSION_CODES.O)

fun getAge(year: Int, month: Int, dayOfMonth: Int): Int { return Period.between(

LocalDate.of(year, month, dayOfMonth), LocalDate.now()

).years

}

}

19

Соседние файлы в папке МДП (Садыкова ФИБС БТС 11 семестр)