個人健康記録 (PHR) アプリバックエンドテンプレート
ユーザー所有の医療文書、アレルゲン追跡、ワクチン接種記録
Back4app 上の 個人健康記録バックエンド: 医療文書の保存、アレルギーおよびワクチン接種履歴、薬および検査モデル、同意/共有、監査ログ、ERダイヤグラム、および迅速なブートストラップのためのAI エージェント プロンプト。
重要なポイント
このテンプレートは、文書ストア、アレルギー、予防接種、薬剤、検査結果、同意オブジェクト、及び監査ログを備えたユーザー中心のPHRバックエンドを提供し、プライバシーを重視した健康アプリを迅速に提供できるようにします。
- ユーザーが管理する健康データ — 患者第一に:記録と同意はユーザーのアカウントに所有され管理され、Providerとの選択的な共有を可能にします。
- 構造化された臨床エンティティ — アレルギー、予防接種、薬剤、及び検査結果を正確なクエリとユーザーエクスペリエンス表示のための型付きフィールドでモデル化します。
- 文書のアップロードとバージョン管理 — 臨床ワークフローを支援するために、メタデータとアップロード履歴を備えたPDF、画像、及び構造化文書を保存します。
- 同意に基づく共有 — 同意オブジェクトと時間制限付きの権限を用いて、精密な Provider アクセスを付与します。
- クロスプラットフォームの準備 — 統一されたRESTおよび GraphQL APIを使用し、Provider ポータル、モバイル、ウェブにサービスを提供し、リアルタイムの更新のために Live Queries を利用します。
パーソナルヘルスレコード (PHR) アプリバックエンドテンプレートとは何ですか?
Back4app は迅速な製品提供のためのバックエンドサービス (BaaS) です。PHR アプリバックエンドテンプレートは、医療文書、アレルギー、免疫、投薬、検査結果、Provider、同意、および監査ログのための事前構築されたスキーマです。フロントエンド(React、Flutter、Next.js など)を接続して、提供を加速します。
最適:
概要
現代のPHR製品には、文書のための安全なユーザー優先ストレージ、正確なアレルギーおよび免疫記録、薬歴、およびProviderとデータを共有するための同意モデルが必要です。
このテンプレートは、HealthDocument、Allergy、Immunization、Medication、LabResult、Provider、Consent、AuditLogを所有権ルールおよび拡張可能なワークフローで定義することで、チームがPHRアプリを迅速かつ適切に実装できるようにします。
コア PHR 機能
このハブのすべての技術カードは、HealthDocument、Allergy、Immunization、Medication、LabResult、Provider、Consent、AuditLogを使用した同じPHRバックエンドスキーマを利用しています。
医療文書バルト
メタデータとオーナーポインタを使用してPDF、画像、構造化された記録をアップロードおよびバージョン管理します。
アレルギー&Reactトラッキング
アレルゲン、React、重症度、発症日をオーナーに紐付けて記録します。
免疫接種およびワクチン接種の履歴
ワクチンの名前、管理日、ロット、および Provider のリファレンスを記録します。
薬剤リストおよびスケジュール
用量、頻度、指示とともに、現在および過去の薬剤を保存します。
実験室の結果
数値、単位、参照範囲、および添付ファイルを含む検査結果を保存します。
同意と共有のコントロール
有効期限と範囲を持つ記録への Provider 特定のアクセスを付与します。
集中監査ログ
トレーサビリティのために、アクター、アクション、ターゲット、ペイロードのメタデータを記録します。
なぜ Back4app であなたの PHR バックエンドを構築するのか?
Back4app は、あなたのチームがバックエンドの整備ではなく、UX、同意体験、統合に集中できるように PHR アプリのためのコアインフラストラクチャを提供します。
- •ユーザー優先のデータ所有権: 所有権ルールと同意オブジェクトを実装し、患者が誰が彼らの記録を表示またはダウンロードできるかを制御できるようにします。
- •安全な文書とメタデータのストレージ: メタデータ、バージョン、および検査や予防接種などの構造化データへのポインタを持つ臨床文書をアップロードします。
- •監査可能性 + API の柔軟性: 共有イベントや記録変更の監査ログを保持し、ウェブおよびモバイルクライアント向けに REST と GraphQL を提供します。
すべてのプラットフォームでスケーラブルなストレージ、認証、および API を備えたプライバシー優先の PHR バックエンドを迅速に提供します。
コアベネフィット
プライバシー重視の健康体験を提供しながら、データを構造化し監査できるPHRバックエンド。
市場へのスピード
臨床エンティティや同意フローをゼロから設計するのではなく、完全なPHRスキーマから始める。
患者第一のアクセス制御
患者が同意を管理し、Provider社やアプリと選択的に記録を共有できるようにする。
相互運用可能なデータモデル
統合と分析のために構造化された免疫、薬剤、検査モデルを使用する。
細かい権限設定
アクセスが明示的かつ監査可能であるように、ACL/CLPおよび同意オブジェクトを使用する。
信頼性のある監査証跡
透明性とコンプライアンスのために、アクセスと共有イベントを記録します。
AI支援のブートストラップフロー
事前に構築されたAIエージェントのプロンプトを使用して、バックエンドのスキャフォールディングと統合ガイダンスを迅速に生成します。
ユーザー第一の個人健康記録を構築する準備はできていますか?
Back4app AIエージェントにPHRバックエンドをスキャフォールドさせ、単一のプロンプトからドキュメント、アレルギー、予防接種、同意書、監査ログを生成させましょう。
無料で始めましょう — 月に50のAIエージェントプロンプト、クレジットカードは不要
技術スタック
この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、同意オブジェクト、及びクラウドコードが個人の健康記録と共有をどのように保護するか。
患者所有の記録
HealthDocument、Allergy、Immunization、Medication、及びLabResultエントリが記録の所有者及び承認された Provider のみが読み書き可能となるように、所有権とACLを設定します。
同意に基づく共有
同意クラスを使用して、明示的な範囲と期限でProviderにアクセスを許可します; Cloud Codeは、読み取り/ダウンロードエンドポイントで同意チェックを強制します。
追加のみの監査ログ
標準ユーザーのためにAuditLogエントリを追加専用に保持します; 信頼されたバックエンドフローまたは管理者のみが、歴史的ログを書き込むまたは管理することができます。
スキーマ (JSON)
Back4appにコピーするための生のJSONスキーマ定義または実装リファレンスとして使用できる準備が整っています。
{
"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エージェントで構築
Back4app AIエージェントを使用して、このテンプレートからフロントエンド、バックエンド、認証、同意ワークフローを含む実際の個人健康記録アプリを生成します。
Back4appにこの正確なスキーマと動作でパーソナルヘルスレコード (PHR) バックエンドを作成します。 スキーマ: 1. HealthDocument: owner (ユーザーへのポインタ、必須)、title (文字列、必須)、file (ファイル、必須)、tags (配列、オプション)、version (数値、デフォルト1)、createdAt、updatedAt (システム)。 2. Allergy: owner (ユーザーへのポインタ、必須)、substance (文字列、必須)、Reaction (文字列、オプション)、severity (文字列: 軽度、中程度、重度、必須)、onsetDate (日付、オプション)。 3. Immunization: owner (ユーザーへのポインタ、必須)、vaccineName (文字列、必須)、administeredAt (日付、必須)、lotNumber (文字列、オプション)、Provider (ポインタ, Provider、オプション)。 4. Medication: owner (ユーザーへのポインタ、必須)、name (文字列、必須)、dose (文字列、オプション)、frequency (文字列、オプション)、instructions (文字列、オプション)、active (ブーリアン、デフォルトtrue)。 5. LabResult: owner (ユーザーへのポインタ、必須)、testName (文字列、必須)、value (数値または文字列)、units (文字列、オプション)、referenceRange (文字列、オプション)、date (日付、必須)、attachment (HealthDocumentへのポインタ、オプション)。 6. Provider: name (文字列、必須)、systemId (文字列、オプション)、contact (オブジェクト、オプション)。 7. Consent: owner (ユーザーへのポインタ、必須)、Provider (ポインタ、Provider、必須)、scope (文字列の配列: [documents, allergies, immunizations, medications, labs])、expiresAt (日付、オプション)、grantedBy (ユーザーまたはシステムへのポインタ)。 8. AuditLog: actor (ユーザーへのポインタ、必須)、action (文字列、必須)、entityType (文字列、必須)、entityId (文字列、必須)、payload (オブジェクト、オプション); createdAt、updatedAt (システム)。 セキュリティ: - ACL/CLPを使用して、オーナーと同意したProviderのみがレコードにアクセスできます。クラウドコードはProviderの読み取り/ダウンロードを許可する前に同意を検証します。監査ログエントリは、標準ユーザー用に追加のみです。 認証: - ユーザーアカウントのサインアップ、ログイン、ログアウト。制限付き権限のProviderアカウントをサポートします。 動作: - 認証、ユーザーレコードのリスト表示、HealthDocumentのアップロード、構造化されたAllergy/Immunization/Medication/LabResultエントリの作成、選択したレコードをProviderと共有するためのConsentを作成し、重要なイベントのためのAuditLogエントリを書き込みます。 提供: - スキーマ、ACL、CLPを持つBack4appアプリ; セキュアなドキュメントボールト、アレルギーと予防接種のタイムライン、薬のリスト、検査結果ビュー、Provider同意フロー、および監査履歴のためのフロントエンド。
下のボタンを押して、このテンプレートプロンプトが事前に入力されたエージェントを開いてください。
これはテクノロジーサフィックスなしの基本プロンプトです。 이후に生成されたフロントエンドスタックを適応させることができます。
APIプレイグラウンド
PHRスキーマに対してRESTおよびGraphQLエンドポイントを試してください。レスポンスはモックデータを使用し、Back4appアカウントは不要です。
このテンプレートと同じスキーマを使用します。
テクノロジーを選択
各カードを展開して、統合手順、状態パターン、データモデルの例、およびオフラインノートを表示します。
Flutter PHR バックエンド
React PHR バックエンド
React ネイティブ PHR バックエンド
Next.js PHR バックエンド
JavaScript PHR バックエンド
Android PHR バックエンド
iOS PHR バックエンド
Vue PHR バックエンド
Angular PHR バックエンド
GraphQL PHR バックエンド
REST API PHR バックエンド
PHP PHR バックエンド
.NET PHR バックエンド
各技術で得られるもの
すべてのスタックは同じ PHR バックエンドスキーマと API 契約を使用します。
統一された個人健康記録データ構造
医療文書および記録のための事前構築されたスキーマ。
個人健康記録のための安全な共有
プライバシーを確保しつつ、Providerと健康情報を簡単に共有します。
個人健康記録のための包括的な監査ログ
敏感な健康データへのすべてのアクセスと変更を追跡します。
個人健康記録のためのREST/GraphQL API
さまざまなフロントエンドとシームレスに統合するための柔軟なAPIアクセス。
個人健康記録のためのリアルタイム更新
健康記録とステータスの変更に関する即時通知。
個人健康記録のための拡張性
特定のニーズに合わせてカスタム機能やモジュールを簡単に追加できます。
個人健康記録フレームワーク比較
サポートされているすべての技術のセットアップ速度、SDKスタイル、AIサポートを比較します。
| フレームワーク | セットアップ時間 | 個人健康記録の利点 | SDKの種類 | AIサポート |
|---|---|---|---|---|
| 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的ウェブUI。 | Typed SDK | フル | |
| 約5分 | 個人健康記録のためのエンタープライズウェブアプリ。 | Typed SDK | フル | |
| 迅速な(2分)セットアップ | 個人健康記録のための柔軟なGraphQL API。 | GraphQL API | フル | |
| 約2分 | 個人健康記録のためのREST API統合。 | REST API | フル | |
| 5分未満 | 個人健康記録のためのサーバーサイドPHPバックエンド。 | REST API | フル | |
| 迅速な(5分)セットアップ | 個人健康記録のための.NETバックエンド。 | Typed SDK | フル |
セットアップ時間は、このテンプレートスキーマを使用してプロジェクトのブートストラップから最初のドキュメントのアップロードおよび同意フローまでの期待される期間を反映しています。
よくある質問
このテンプレートを使用してパーソナルヘルスレコードのバックエンドを構築する際の一般的な質問。