Модуль поставляется со встроенной базой данных, системой разграничения прав доступа на основе 34 медицинских специальностей и готовым веб-интерфейсом (АРМ Врача, Личный Кабинет Пациента, Панель Суперадминистратора), а также готовой главной страницей
- Автономность База данных SQLite3 не требует установки тяжелых серверов (PostgreSQL/MySQL/MongoDB). Файл БД и таблицы создаются автоматически прямо в папке проекта.
- Безопасность и Сессии: Авторизация реализована через зашифрованные JWT-токены, хранящиеся в защищенных HttpOnly Cookie. JS на клиенте не имеет доступа к токену.
- Матрица прав доступа (34 специальности): Гибкое разграничение возможностей врачей. Стоматолог или Эндокринолог не смогут получить доступ к эндпоинтам назначения нейрохирургических операций — то-есть не к своим данным
- Автоматический расчет участков: При регистрации или изменении адреса проживания пациента система сама вычисляет номер его терапевтического участка и закрепленный кабинет врача. Участки настраиваются админом.
- Статистика болезней и МКБ-10: Выделенный независимый справочник заболеваний в базе данных с возможностью автономной миграции и автоматическим инкрементом счетчиков заболеваемости при закрытии приемов врачами.
- Возможность управлять новостями А админ панеле есть форма позволяющая выкладывать новости.
- Автозапись в
.envПри запуске проекта код проверяет есть ли.envи настройки в нём, если то записывает настройки в него. - Автопроверка значений Если вы не изменили значение в
.envс по умолчанию то ваша консль будет заспамлена
npm install med-cms
# или
yarn add med-cmsВажно для пользователей Linux: Пакетам
sequelizeиsqlite3иногда требуются компиляторы C++ для сборки бинарных файлов под вашу архитектуру ядра. Перед развертыванием убедитесь, что в системе установлены базовые утилиты сборки:sudo apt update && sudo apt install -y build-essential python3
Для интеграции CMS в ваш Express-сервер импортируйте функцию инициализации и передайте туда ваш инстанс app:
const express = require("express");
require("dotenv").config();
const app = express();
// Импортируем инициализатор нашего npm-модуля
const MI = require("med-cms");
// здесь ваши роуты ...
app.get("/", async (req, res) => {
res.end("HELLO!");
});
(async function startServer() {
// Запускаем медицинский движок med-cms
// требуется асинхронность из-за запросов в к бд
await MI(app);
app.listen(3000, () => {
console.log(`Сервер успешно запущен!`);
});
})();Справочник заболеваний полностью изолирован от кода ядра CMS. Для наполнения пустой таблицы Diseases актуальными и социально значимыми кодами МКБ-10 для Республики Беларусь, запустите команду миграции перед стартом основного сервера:
node node_modules/med-cms/migrate-diseases.js
# или
node node_modules\med-cms\migrate-diseases.jsЭто наполнит отдельную таблицу базы данных 18 распространенными диагнозами (ОРВИ, Острый бронхит, Внебольничная пневмония, Артериальная гипертензия, Остеохондроз, Эндемический зоб и др.), которые автоматически начнут подтягиваться в HTML-тег <select> на рабочем месте врача.
Архитектура роутера жестко разделяет отдачу интерфейсов и данных, исключая ошибки парсинга JSON.parse в браузере:
- Интерфейс (Web-страницы):
http://localhost:3000/med/... - Данные (JSON API):
http://localhost:3000/med/api/...
| Действие | Метод | Маршрут (URL) | Доступ (Роль) |
|---|---|---|---|
| Страница авторизации и входа | GET |
/med/html/login.html (или /med/login) |
Публичный |
| Главная страница | GET |
/med/html/home.html (или /med/home) |
Публичный |
- Выполните миграцию справочника болезней:
node node_modules/med-cms/migrate-diseases.jsилиnode node_modules\med-cms\migrate-diseases.js. - Откройте браузер на
http://localhost:3000/med/homeи нажмите на кнопкувход. - Авторизируйтесь (заполните поля почты и пароля) (данные можно узнать в настройках
.env) - В левой форме добавьте поликлинику. Она запишется в SQLite под числовым
ID: 1. - Кликните на карточку «Всего клиник», чтобы развернуть интерактивную таблицу и проверить числовой ID.
- В правой форме зарегистрируйте аккаунт врача, выбрав созданную поликлинику №1 из выпадающего списка.
- Выйдите из админки, нажмите «Зарегистрироваться как пациент» и создайте профиль.
- В кабинете пациента выберите созданного врача, дату, время и нажмите «Забронировать талон». Талон мгновенно отобразится в блоке предстоящих приемов.
- Авторизуйтесь под созданным врачом. Пациент появится в вашей очереди. Нажмите «Принять», заполните жалобы, выберите из подгрузившегося справочника диагноз «Острый бронхит» и закройте прием. Системные счетчики зафиксируют визит, а статистика болезни обновится в SQLite.
- Также можете с аккаунта админа настроить участки и новости!