Шаблон бэкенда приложения для персональной медицинской записи (PHR)
Документы, принадлежащие пользователю, отслеживание аллергенов и записи о вакцинации
Готовый к производству бэкенд персональной медицинской записи на Back4app с хранением медицинских документов, история аллергий и вакцинаций, модели лекарств и лабораторий, согласие/расшаривание, журналы аудита, диаграмма сущностей и запрос AI Agent для быстрого запуска.
Основные выводы
Этот шаблон предоставляет вам ориентированный на пользователя бэкенд PHR с хранилищем документов, аллергиями, вакцинациями, медикаментами, результатами анализов, объектами согласия и аудитом, чтобы вы могли быстро создавать приложения для здравоохранения с акцентом на конфиденциальность.
- Управляемые пользователем медицинские данные — Держите пациентов на первом месте: записи и согласия принадлежат и контролируются учетной записью пользователя, что позволяет выборочное деление с Provider.
- Структурированные клинические сущности — Моделируйте аллергии, вакцинации, медикаменты и результаты анализов с типизированными полями для точного запроса и отображения интерфейса пользователя.
- Загрузка документов и версионирование — Храните PDF-файлы, изображения и структурированные документы с метаданными и историей загрузки для поддержки клинических рабочих процессов.
- Обмен с учетом согласия — Предоставьте детализированный доступ к Provider с помощью объектов согласия и временных разрешений.
- Готовность к межплатформенным решениям — Обслуживайте мобильные, веб- и Provider порталы, используя унифицированные REST и GraphQL API с Live Queries для обновлений в реальном времени.
Что такое шаблон бэкенда приложения для персональной медицинской записи (PHR)?
Back4app — это бэкенд как услуга (BaaS) для быстрой доставки продуктов. Шаблон бэкенда приложения PHR — это заранее подготовленная схема для медицинских документов, аллергий, вакцинаций, медикаментов, лабораторных результатов, Providerов, согласий и журналов аудита. Подключите ваш фронтенд (React, Flutter, Next.js и другие) и ускорьте доставку.
Лучшее для:
Обзор
Современный продукт PHR требует безопасного хранения документов с приоритетом пользователя, точных записей об аллергии и иммунизации, истории приема медикаментов и модели согласия для обмена данными с Provider.
Этот шаблон определяет HealthDocument, Allergy, Immunization, Medication, LabResult, Provider, Consent и AuditLog с правилами владения и расширяемыми рабочими процессами, чтобы команды могли быстро и законно реализовать приложения PHR.
Основные функции PHR
Каждая карточка технологии в этом хабе использует одну и ту же бэкэнд-схему PHR с HealthDocument, Allergy, Immunization, Medication, LabResult, Provider, Consent и AuditLog.
Склад медицинских документов
Загружайте и версиируйте PDF, изображения и структурированные записи с метаданными и указателями владельцев.
Отслеживание аллергий и Reaction
Записывайте аллергены, Reaction, степень тяжести и дату начала, связанные с владельцем.
История иммунизации и вакцинации
Запишите название вакцины, дату введения, партию и ссылку на Provider.
Списки лекарств и расписания
Храните активные и исторические лекарства с дозировкой, частотой и инструкциями.
Результаты лабораторных исследований
Храните результаты лабораторных исследований с числовыми значениями, единицами измерения, эталонными диапазонами и приложениями.
Управление согласием и обменом
Предоставьте доступ к записям, специфичным для Provider, с указанием срока и объема.
Централизованные журналы аудита
Записывайте актера, действие, объект и метаданные нагрузок для отслеживания.
Почему стоит создать свой бэкенд PHR с Back4app?
Back4app предоставляет вам основную инфраструктуру для приложений PHR, чтобы ваша команда могла сосредоточиться на UX, согласиях и интеграциях, а не на бэкенд-работах.
- •Владение данными первоочередного пользователя: Реализуйте правила владения и объекты согласия, чтобы пациенты сохраняли контроль над тем, кто может просматривать или загружать их записи.
- •Безопасное хранение документов и метаданных: Загружайте клинические документы с метаданными, версиями и указателями на структурированные данные, такие как лабораторные исследования и иммунизации.
- •Аудитируемость + гибкость API: Сохраняйте журналы аудита для событий общего доступа и изменений записей, предоставляя REST и GraphQL для веб- и мобильных клиентов.
Быстро создайте бэкенд PHR с приоритетом на конфиденциальность с масштабируемым хранилищем, авторизацией и API на всех платформах.
Основные преимущества
Бэкенд PHR, который помогает вам предоставлять ориентированные на конфиденциальность медицинские услуги, сохраняя данные структурированными и подлежащими аудиту.
Скорость выхода на рынок
Начните с полного схемы PHR, а не проектируйте клинические единицы и согласия с нуля.
Контроль доступа с приоритетом пациента
Позвольте пациентам управлять согласиями и выборочно делиться записями с Provider и приложениями.
Совместимые модели данных
Используйте структурированные модели иммунизации, медикаментов и лабораторных анализов для интеграции и аналитики.
Тонкая настройка разрешений
Используйте ACL/CLP и объекты согласия, чтобы доступ был явным и подлежащим аудиту.
Надежный аудитный след
Записывайте события доступа и обмена для прозрачности и соблюдения норм.
Помощь ИИ в начальном процессе
Быстро создавайте скелет бэкенда и инструкции по интеграции с предварительно подготовленным запросом ИИ-агента.
Готовы создать ориентированную на пользователя Личную медицинскую карту?
Позвольте ИИ-агенту Back4app скелетировать ваш бэкенд PHR и генерировать документы, аллергии, вакцинации, согласия и журналы аудита из одного запроса.
Бесплатно для начала — 50 запросов ИИ-агента в месяц, без необходимости в кредитной карте
Технический стек
Все включено в этот шаблон бекенда PHR.
ER-диаграмма
Модель взаимосвязей сущностей для схемы бэкенда PHR.
Схема, охватывающая медицинские документы, аллергии, иммунизации, медикаменты, лабораторные результаты, согласия и аудит логирования, принадлежащие пользователю.
Посмотреть источник диаграммы
erDiagram
Profile ||--o{ MedicalDocument : "owns"
Profile ||--o{ Allergy : "has"
Profile ||--o{ Vaccination : "has"
Profile ||--o{ SharedAccess : "grants"
Profile ||--o{ EmergencyContact : "links to"
MedicalDocument }o--|| Profile : "profile"
Vaccination }o--|| Profile : "profile"
Allergy }o--|| Profile : "profile"
SharedAccess }o--|| Profile : "profile"
SharedAccess }o--|| _User : "grantee"
Profile {
String objectId PK
Pointer user FK
String fullName
Date birthDate
String gender
String bloodType
String primaryCareProvider
String notes
Date createdAt
Date updatedAt
}
MedicalDocument {
String objectId PK
Pointer profile FK
File file
String documentType
String title
String description
Array<String> tags
Date uploadedAt
Boolean isShared
Date createdAt
Date updatedAt
}
Allergy {
String objectId PK
Pointer profile FK
String substance
String severity
String reaction
String notes
Date recordedAt
Boolean isActive
Date createdAt
Date updatedAt
}
Vaccination {
String objectId PK
Pointer profile FK
String vaccineName
Date dateAdministered
String dose
String lotNumber
String provider
Date nextDoseDate
Pointer proofDocument FK
Date createdAt
Date updatedAt
}
SharedAccess {
String objectId PK
Pointer profile FK
Pointer grantee FK
String accessLevel
Array<String> scope
Date expiresAt
Pointer createdBy FK
Date createdAt
Date updatedAt
}
EmergencyContact {
String objectId PK
Pointer profile FK
String name
String relationship
String phone
String notes
Date createdAt
Date updatedAt
}
AuditLog {
String objectId PK
Pointer actor FK
String entityType
String entityId
String action
String summary
Object metadata
Date createdAt
Date updatedAt
}
Поток интеграции
Типичный рабочий процесс для аутентификации, доступа к записям, загрузки документов, предоставления согласия и аудита логирования.
Посмотреть источник диаграммы
sequenceDiagram
participant User
participant App as Personal Health Record (PHR) App
participant Back4app as Back4app Cloud
User->>App: Login with email (patient) or OAuth (clinician)
App->>Back4app: POST /login
Back4app-->>App: Session token + user profile
User->>App: List my vaccinations and allergies
App->>Back4app: GET /classes/Vaccination?where={"profile":{"__type":"Pointer","className":"Profile","objectId":"profileId"}}
Back4app-->>App: Vaccination and Allergy records
User->>App: Upload lab result PDF
App->>Back4app: POST /files -> create MedicalDocument with file pointer
Back4app-->>App: File object + MedicalDocument.objectId
User->>App: Share record with Dr. Lee for 48h
App->>Back4app: POST /classes/SharedAccess with accessLevel and expiresAt
Back4app-->>App: SharedAccess.objectId + notification
Back4app-->>App: Live Query event: MedicalDocument updated by clinician
App-->>User: Notify patient in-app / refresh documents listСловарь данных
Полное справочное пособие по полям для каждого класса в схеме PHR.
| Поле | Тип | Описание | Обязательно |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | Авто |
| user | Pointer<_User> | Linked Back4app user account (patient or caregiver) | |
| fullName | String | Patient full name | |
| birthDate | Date | Date of birth | — |
| gender | String | Gender identity | — |
| bloodType | String | Blood type (e.g. A+, O-) | — |
| primaryCareProvider | String | Name or clinic of primary care provider | — |
| notes | String | Free-text health notes or summary | — |
| createdAt | Date | Auto-generated creation timestamp | Авто |
| updatedAt | Date | Auto-generated last-update timestamp | Авто |
10 поля в Profile
Безопасность и разрешения
Как ACL, CLP, объекты согласия и Cloud Code обеспечивают безопасность личных записей здоровья и их обмена.
Записи, принадлежащие пациенту
Установите право собственности и ACL так, чтобы записи HealthDocument, Allergy, Immunization, Medication и LabResult были доступны для чтения и записи только владельцем записи и уполномоченными Provider.
Дел partage на основе согласия
Используйте класс Consent для предоставления доступа Provider с явным объемом и сроком действия; Cloud Code обеспечивает проверки согласия на конечных точках чтения/скачивания.
Логи аудита только для добавления
Сохраняйте записи AuditLog только для добавления для стандартных пользователей; только доверенные потоки бэкенда или администраторы могут записывать или управлять историческими логами.
Схема (JSON)
Сырая определение схемы JSON готова для копирования в Back4app или использования в качестве ссылки для реализации.
{
"classes": [
{
"className": "Profile",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"user": {
"type": "Pointer",
"required": true,
"targetClass": "_User"
},
"fullName": {
"type": "String",
"required": true
},
"birthDate": {
"type": "Date",
"required": false
},
"gender": {
"type": "String",
"required": false
},
"bloodType": {
"type": "String",
"required": false
},
"primaryCareProvider": {
"type": "String",
"required": false
},
"notes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "MedicalDocument",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"profile": {
"type": "Pointer",
"required": true,
"targetClass": "Profile"
},
"file": {
"type": "File",
"required": true
},
"documentType": {
"type": "String",
"required": true
},
"title": {
"type": "String",
"required": true
},
"description": {
"type": "String",
"required": false
},
"tags": {
"type": "Array",
"required": false
},
"uploadedAt": {
"type": "Date",
"required": true
},
"isShared": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Allergy",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"profile": {
"type": "Pointer",
"required": true,
"targetClass": "Profile"
},
"substance": {
"type": "String",
"required": true
},
"severity": {
"type": "String",
"required": true
},
"reaction": {
"type": "String",
"required": true
},
"notes": {
"type": "String",
"required": false
},
"recordedAt": {
"type": "Date",
"required": true
},
"isActive": {
"type": "Boolean",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Vaccination",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"profile": {
"type": "Pointer",
"required": true,
"targetClass": "Profile"
},
"vaccineName": {
"type": "String",
"required": true
},
"dateAdministered": {
"type": "Date",
"required": true
},
"dose": {
"type": "String",
"required": false
},
"lotNumber": {
"type": "String",
"required": false
},
"provider": {
"type": "String",
"required": false
},
"nextDoseDate": {
"type": "Date",
"required": false
},
"proofDocument": {
"type": "Pointer",
"required": false,
"targetClass": "MedicalDocument"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "SharedAccess",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"profile": {
"type": "Pointer",
"required": true,
"targetClass": "Profile"
},
"grantee": {
"type": "Pointer",
"required": true,
"targetClass": "_User"
},
"accessLevel": {
"type": "String",
"required": true
},
"scope": {
"type": "Array",
"required": false
},
"expiresAt": {
"type": "Date",
"required": false
},
"createdBy": {
"type": "Pointer",
"required": true,
"targetClass": "_User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "EmergencyContact",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"profile": {
"type": "Pointer",
"required": true,
"targetClass": "Profile"
},
"name": {
"type": "String",
"required": true
},
"relationship": {
"type": "String",
"required": true
},
"phone": {
"type": "String",
"required": true
},
"notes": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "AuditLog",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"actor": {
"type": "Pointer",
"required": true,
"targetClass": "_User"
},
"entityType": {
"type": "String",
"required": true
},
"entityId": {
"type": "String",
"required": true
},
"action": {
"type": "String",
"required": true
},
"summary": {
"type": "String",
"required": true
},
"metadata": {
"type": "Object",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}Создать с помощью AI Agent
Используйте AI Agent Back4app для создания реального приложения Личной Медицинской Записи из этого шаблона, включая фронтенд, бэкенд, аутентификацию и рабочие процессы согласия.
Создайте бэкэнд Личного Здоровья (PHR) на Back4app с этой точной схемой и поведением. Схема: 1. HealthDocument: владелец (Указатель на Пользователя, обязательный), название (Строка, обязательный), файл (Файл, обязательный), теги (Массив, необязательный), версия (Число, по умолчанию 1), createdAt, updatedAt (системные). 2. Allergy: владелец (Указатель на Пользователя, обязательный), вещество (Строка, обязательный), Reaction (Строка, необязательный), тяжесть (Строка: легкая, умеренная, тяжелая, обязательная), дата возникновения (Дата, необязательная). 3. Immunization: владелец (Указатель на Пользователя, обязательный), название вакцины (Строка, обязательная), введена (Дата, обязательная), номер партии (Строка, необязательная), Provider (Указатель на Provider, необязательный). 4. Medication: владелец (Указатель на Пользователя, обязательный), название (Строка, обязательная), доза (Строка, необязательная), частота (Строка, необязательная), инструкции (Строка, необязательная), активен (Булев, по умолчанию true). 5. LabResult: владелец (Указатель на Пользователя, обязательный), название теста (Строка, обязательная), значение (Число или Строка), единицы (Строка, необязательная), референсный диапазон (Строка, необязательная), дата (Дата, обязательная), вложение (Указатель на HealthDocument, необязательный). 6. Provider: название (Строка, обязательная), systemId (Строка, необязательная), контакт (Объект, необязательный). 7. Consent: владелец (Указатель на Пользователя, обязательный), Provider (Указатель на Provider, обязательный), область (Массив Строк: [документы, аллергии, иммунизации, медикаменты, лаборатории]), срок действия (Дата, необязательная), предоставлено (Указатель на Пользователя или систему). 8. AuditLog: актер (Указатель на Пользователя, обязательный), действие (Строка, обязательная), тип сущности (Строка, обязательная), id сущности (Строка, обязательная), полезная нагрузка (Объект, необязательный); createdAt, updatedAt (системные). Безопасность: - Используйте ACL/CLP, чтобы только владельцы и согласованные Provider имели доступ к записям. Cloud Code проверяет Согласие перед разрешением Provider на чтение/скачивание. Записи AuditLog являются только для добавления для стандартных пользователей. Авторизация: - Регистрация, вход, выход для пользовательских аккаунтов. Поддержка Provider аккаунтов с ограниченными привилегиями. Поведение: - Аутентификация, список пользовательских записей, загрузка HealthDocument, создание структурированных записей Allergy/Immunization/Medication/LabResult, создание Согласия на обмен выбранными записями с Provider, и запись записей AuditLog для критических событий. Доставка: - Приложение Back4app с схемой, ACL, CLP; фронтенд для безопасного хранилища документов, временных шкал аллергий и иммунизаций, списков медикаментов, просмотров лабораторных результатов, потоков согласия Provider и истории аудита.
Нажмите кнопку ниже, чтобы открыть Агента с предзаполненным шаблоном.
Это базовый запрос без суффикса технологии. Вы можете адаптировать сгенерированный стек фронтенда позже.
API Игровая площадка
Попробуйте конечные точки REST и GraphQL с использованием схемы PHR. Ответы используют тестовые данные и не требуют учетной записи Back4app.
Использует ту же схему, что и этот шаблон.
Выберите вашу технологию
Разверните каждую карточку для получения шагов интеграции, шаблонов состояний, примеров моделей данных и офлайн заметок.
Flutter PHR Backend
React PHR Backend
React Native PHR Backend
Next.js PHR Backend
JavaScript PHR Backend
Android PHR Backend
iOS PHR Backend
Vue PHR Backend
Angular PHR Backend
GraphQL PHR Backend
REST API PHR Backend
PHP PHR Backend
.NET PHR Backend
Что вы получаете с каждой технологией
Каждый стек использует одну и ту же схемы бэкэнда PHR и API контракты.
Унифицированная структура данных личная медицинская карта
Предварительно созданная схема для медицинских документов и записей.
Безопасный обмен для личная медицинская карта
Легко делитесь медицинской информацией с Provider, обеспечивая конфиденциальность.
Полные журналы аудита для личная медицинская карта
Отслеживайте все доступы и изменения к чувствительным медицинским данным.
REST/GraphQL API для личная медицинская карта
Гибкий API доступ для бесшовной интеграции с различными интерфейсами.
Обновления в реальном времени для личная медицинская карта
Мгновенные уведомления об изменениях в медицинских записях и статусе.
Расширяемость для личная медицинская карта
Легко добавляйте пользовательские функции и модули для специфических нужд.
Сравнение рамок личной медицинской карты
Сравните скорость настройки, стиль SDK и поддержку ИИ для всех поддерживаемых технологий.
| Фреймворк | Время настройки | Польза личной медицинской карты | Тип SDK | Поддержка ИИ |
|---|---|---|---|---|
| Менее 5 минут | Единый код для личной медицинской карты на мобильных устройствах и в вебе. | Typed SDK | Полный | |
| ~3–7 мин | Быстрая веб-панель для личной медицинской карты. | Typed SDK | Полный | |
| Быстрая (5 мин) настройка | Кроссплатформенное мобильное приложение для личной медицинской карты. | Typed SDK | Полный | |
| ~5 мин | Веб-приложение с рендерингом на сервере для личной медицинской карты. | Typed SDK | Полный | |
| ~3 мин | Легкая веб-интеграция для личной медицинской карты. | Typed SDK | Полный | |
| Менее 5 минут | Нативное приложение Android для личной медицинской карты. | Typed SDK | Полный | |
| ~3–7 мин | Нативное приложение iOS для личной медицинской карты. | Typed SDK | Полный | |
| Быстрая (5 мин) настройка | React интерактивный веб-интерфейс для личной медицинской карты. | Typed SDK | Полный | |
| ~5 мин | Корпоративное веб-приложение для личной медицинской карты. | Typed SDK | Полный | |
| Быстрая (2 мин) настройка | Гибкое GraphQL API для личной медицинской карты. | GraphQL API | Полный | |
| ~2 мин | REST API интеграция для личной медицинской карты. | REST API | Полный | |
| Менее 5 мин | Серверная часть PHP для личной медицинской карты. | REST API | Полный | |
| Быстрая (5 мин) настройка | .NET серверная часть для личной медицинской карты. | Typed SDK | Полный |
Время настройки отражает ожидаемую продолжительность от начала проекта до первого загрузки документа и потока согласия с использованием этой схемы шаблона.
Часто задаваемые вопросы
Общие вопросы о создании бэкенда Личной медицинской карты с использованием этого шаблона.
Готовы создать приложение для вашей личной медицинской карты?
Начните ваш проект личной медицинской карты за минуты. Кредитная карта не требуется.