PHRバックエンド
AIエージェントで構築
個人健康記録バックエンド

個人健康記録 (PHR) アプリバックエンドテンプレート
ユーザー所有の医療文書、アレルゲン追跡、ワクチン接種記録

Back4app 上の 個人健康記録バックエンド: 医療文書の保存、アレルギーおよびワクチン接種履歴、薬および検査モデル、同意/共有、監査ログ、ERダイヤグラム、および迅速なブートストラップのためのAI エージェント プロンプト。

重要なポイント

このテンプレートは、文書ストア、アレルギー、予防接種、薬剤、検査結果、同意オブジェクト、及び監査ログを備えたユーザー中心のPHRバックエンドを提供し、プライバシーを重視した健康アプリを迅速に提供できるようにします。

  1. ユーザーが管理する健康データ患者第一に:記録と同意はユーザーのアカウントに所有され管理され、Providerとの選択的な共有を可能にします。
  2. 構造化された臨床エンティティアレルギー、予防接種、薬剤、及び検査結果を正確なクエリとユーザーエクスペリエンス表示のための型付きフィールドでモデル化します。
  3. 文書のアップロードとバージョン管理臨床ワークフローを支援するために、メタデータとアップロード履歴を備えたPDF、画像、及び構造化文書を保存します。
  4. 同意に基づく共有同意オブジェクトと時間制限付きの権限を用いて、精密な Provider アクセスを付与します。
  5. クロスプラットフォームの準備統一されたRESTおよび GraphQL APIを使用し、Provider ポータル、モバイル、ウェブにサービスを提供し、リアルタイムの更新のために Live Queries を利用します。

パーソナルヘルスレコード (PHR) アプリバックエンドテンプレートとは何ですか?

Back4app は迅速な製品提供のためのバックエンドサービス (BaaS) です。PHR アプリバックエンドテンプレートは、医療文書、アレルギー、免疫、投薬、検査結果、Provider、同意、および監査ログのための事前構築されたスキーマです。フロントエンド(React、Flutter、Next.js など)を接続して、提供を加速します。

最適:

患者中心の健康アプリワクチンおよび免疫記録アプリデジタル医療文書保管庫Provider-患者同意管理個人用薬物およびアレルギートラッカーチームがBaaSベースのヘルスMVPを構築する

概要

現代の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バックエンドテンプレートに含まれるすべて

フロントエンド
13 以上のテクノロジー
バックエンド
Back4app
データベース
MongoDB
認証
組み込みの認証 + セッション
API
REST と GraphQL
リアルタイム
Live Queries

ER ダイアグラム

PHR バックエンドスキーマのエンティティ関係モデル。

図のソースを見る
Mermaid
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
    }

統合フロー

認証、記録アクセス、文書アップロード、同意の付与、監査ログ記録の典型的な実行フロー。

図のソースを見る
Mermaid
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スキーマのすべてのクラスに対するフルフィールドレベルのリファレンス。

フィールドタイプ説明必須
objectIdStringAuto-generated unique identifier自動
userPointer<_User>Linked Back4app user account (patient or caregiver)
fullNameStringPatient full name
birthDateDateDate of birth
genderStringGender identity
bloodTypeStringBlood type (e.g. A+, O-)
primaryCareProviderStringName or clinic of primary care provider
notesStringFree-text health notes or summary
createdAtDateAuto-generated creation timestamp自動
updatedAtDateAuto-generated last-update timestamp自動

10 フィールドを Profile に

セキュリティと権限

ACL、CLP、同意オブジェクト、及びクラウドコードが個人の健康記録と共有をどのように保護するか。

患者所有の記録

HealthDocument、Allergy、Immunization、Medication、及びLabResultエントリが記録の所有者及び承認された Provider のみが読み書き可能となるように、所有権とACLを設定します。

同意に基づく共有

同意クラスを使用して、明示的な範囲と期限でProviderにアクセスを許可します; Cloud Codeは、読み取り/ダウンロードエンドポイントで同意チェックを強制します。

追加のみの監査ログ

標準ユーザーのためにAuditLogエントリを追加専用に保持します; 信頼されたバックエンドフローまたは管理者のみが、歴史的ログを書き込むまたは管理することができます。

スキーマ (JSON)

Back4appにコピーするための生のJSONスキーマ定義または実装リファレンスとして使用できる準備が整っています。

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 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同意フロー、および監査履歴のためのフロントエンド。

下のボタンを押して、このテンプレートプロンプトが事前に入力されたエージェントを開いてください。

これはテクノロジーサフィックスなしの基本プロンプトです。 이후に生成されたフロントエンドスタックを適応させることができます。

数分でデプロイ月に50の無料プロンプトクレジットカードは不要です

APIプレイグラウンド

PHRスキーマに対してRESTおよびGraphQLエンドポイントを試してください。レスポンスはモックデータを使用し、Back4appアカウントは不要です。

common.loadingPlayground

このテンプレートと同じスキーマを使用します。

テクノロジーを選択

各カードを展開して、統合手順、状態パターン、データモデルの例、およびオフラインノートを表示します。

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フル

セットアップ時間は、このテンプレートスキーマを使用してプロジェクトのブートストラップから最初のドキュメントのアップロードおよび同意フローまでの期待される期間を反映しています。

よくある質問

このテンプレートを使用してパーソナルヘルスレコードのバックエンドを構築する際の一般的な質問。

パーソナルヘルスレコード(PHR)バックエンドとは何ですか?
PHRテンプレートには何が含まれていますか?
医療文書はどのようにバージョン管理されていますか?
予防接種記録に必要なフィールドは何ですか?
アレルギーおよび薬物データをどのように保護しますか?
患者はPHRデータをエクスポートできますか?
PHRでの検査結果をどのようにモデル化しますか?
Back4appをPHRに使用する理由は何ですか?
同意の期限切れをどのように処理しますか?
患者ごとに複数のProviderをサポートできますか?

世界中の開発者に信頼されています

患者中心の健康アプリを構築するチームは、Back4appテンプレートを使用してより早く出荷します

G2 Users Love Us Badge

個人健康記録アプリを構築する準備はできていますか?

数分で個人健康記録プロジェクトを開始します。クレジットカードは不要です。

テクノロジーを選択