Backend de PHR
Construa com o Agente de IA
Back-end do Prontuário de Saúde Pessoal

Modelo de Back-end do Aplicativo de Prontuário de Saúde Pessoal (PHR)
Documentos médicos de propriedade do usuário, rastreamento de alergias e registros de vacinação

Back-end do Prontuário de Saúde Pessoal pronto para produção em Back4app com armazenamento de documentos médicos, históricos de alergias e vacinação, modelos de medicamentos e de exames, consentimento/ compartilhamento, registros de auditoria, diagrama ER, e um prompt Agente de IA para inicialização rápida.

Pontos-chave

Este modelo oferece um backend de PHR centrado no usuário com armazenamento de documentos, alergias, imunizações, medicamentos, resultados de laboratório, objetos de consentimento e logs de auditoria, para que você possa entregar rapidamente aplicativos de saúde com privacidade em primeiro plano.

  1. Dados de saúde controlados pelo usuárioColoque os pacientes em primeiro lugar: os registros e consentimentos são de propriedade e controlados pela conta do usuário, permitindo compartilhamento seletivo com Providers.
  2. Entidades clínicas estruturadasModele alergias, imunizações, medicamentos e resultados de laboratório com campos tipados para consultas precisas e exibição na UX.
  3. Carregamento de documentos e versionamentoArmazene PDFs, imagens e documentos estruturados com metadados e histórico de envios para apoiar fluxos de trabalho clínicos.
  4. Compartilhamento orientado por consentimentoConceda acesso granular ao Provider com objetos de Consentimento e permissões com validade limitada.
  5. Prontidão multiplataformaAtende dispositivos móveis, web e portais Provider usando REST unificado e APIs GraphQL com Live Queries para atualizações em tempo real.

O que é o Modelo de Backend do Aplicativo de Registro de Saúde Pessoal (PHR)?

Back4app é um backend-as-a-service (BaaS) para entrega rápida de produtos. O PHR App Backend Template é um esquema pré-construído para documentos médicos, alergias, imunizações, medicamentos, resultados de laboratório, Providers, consentimentos e logs de auditoria. Conecte seu frontend (React, Flutter, Next.js, e mais) e acelere a entrega.

Melhor para:

Aplicativos de saúde centrados no pacienteApps de registro de vacinas e imunizaçõesCofres digitais de documentos médicosProvider-gestão de consentimento do pacienteRastreadores pessoais de medicação e alergiasEquipes que constroem MVPs de saúde baseados em BaaS

Visão geral

Um produto PHR moderno precisa de armazenamento seguro centrado no usuário para documentos, registros precisos de alergias e imunizações, histórico de medicação e um modelo de consentimento para compartilhar dados com Providers.

Este modelo define HealthDocument, Allergy, Immunization, Medication, LabResult, Provider, Consent e AuditLog com regras de propriedade e fluxos de trabalho extensíveis para que equipes possam implementar aplicativos PHR de forma rápida e em conformidade.

Principais recursos de PHR

Cada cartão de tecnologia neste hub usa o mesmo esquema de backend PHR com HealthDocument, Allergy, Immunization, Medication, LabResult, Provider, Consent e AuditLog.

Cofre de documentos médicos

Faça upload e crie novas versões de PDFs, imagens e registros estruturados com metadados e ponteiros do proprietário.

Rastreamento de alergias e Reaction

Registre alérgenos, Reactions, gravidade e data de início vinculados a um proprietário.

Imunização e histórico de vacinação

Registre o nome da vacina, data de administração, lote e referência Provider.

Listas de medicamentos e cronogramas

Armazene medicamentos ativos e históricos com dosagem, frequência e instruções.

Resultados de laboratório

Armazene resultados de laboratório com valores numéricos, unidades, intervalos de referência e anexos.

Controles de consentimento e compartilhamento

Conceda acesso específico ao Provider aos registros com prazo de validade e escopo.

Registros de auditoria centralizados

Metadados do ator do registro, da ação, do alvo e da carga útil para rastreabilidade.

Por que construir o backend do seu PHR com Back4app?

Back4app oferece a infraestrutura central para aplicativos PHR, para que sua equipe possa se concentrar em UX, experiências de consentimento e integrações, em vez da infraestrutura de backend.

  • Propriedade dos dados centrada no usuário: Implemente regras de propriedade e objetos de consentimento para que os pacientes mantenham o controle de quem pode visualizar ou baixar seus prontuários.
  • Armazenamento seguro de documentos e metadados: Carregar documentos clínicos com metadados, versões e ponteiros para dados estruturados como resultados de laboratório e immunizações.
  • Auditabilidade + flexibilidade de API: Persistir logs de auditoria para eventos de compartilhamento e alterações em registros, enquanto fornece REST e GraphQL para clientes web e móveis.

Lance rapidamente um backend de PHR priorizando a privacidade, com armazenamento escalável, autenticação e APIs em todas as plataformas.

Principais Benefícios

Um back-end de PHR que ajuda você a oferecer experiências de saúde com foco na privacidade, mantendo os dados estruturados e auditáveis.

Tempo de entrada no mercado

Comece a partir de um esquema PHR completo, em vez de projetar entidades clínicas e fluxos de consentimento do zero.

Controle de acesso centrado no paciente

Permitir que os pacientes gerenciem consentimentos e compartilhem registros seletivamente com Providers e aplicativos.

Modelos de dados interoperáveis

Use modelos estruturados de imunização, medicamentos e dados de laboratório para integrações e análises.

Permissões granulares

Use ACL/CLP e objetos de Consentimento para que o acesso seja explícito e auditável.

Trilha de auditoria confiável

Registre eventos de acesso e compartilhamento para transparência e conformidade.

Fluxo de bootstrap assistido por IA

Gere rapidamente o esqueleto de backend e as diretrizes de integração com um prompt de AI Agent pré-construído.

Pronto para construir um Registro de Saúde Pessoal centrado no usuário?

Deixe o agente de IA Back4app estruturar o backend do seu Registro de Saúde Pessoal e gerar documentos, alergias, imunizações, consentimentos e logs de auditoria a partir de um único prompt.

Gratuito para começar — 50 prompts do AI Agent por mês, não é necessário cartão de crédito.

Pilha técnica

Tudo incluído neste modelo de backend PHR.

Front-end
13+ tecnologias
Back-end
Back4app
Banco de dados
MongoDB
Autenticação
Autenticação integrada + sessões
API
REST e GraphQL
Tempo real
Live Queries

Diagrama ER

Modelo de Entidade-Relacionamento para o esquema de backend do PHR

Ver fonte do diagrama
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
    }

Fluxo de Integração

Fluxo típico de tempo de execução para autenticação, acesso a registros, upload de documentos, concessão de consentimento e registro de auditoria.

Ver fonte do diagrama
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

Dicionário de Dados

Referência completa em nível de campo para cada classe no esquema PHR.

CampoTipoDescriçãoObrigatório
objectIdStringAuto-generated unique identifierAutomático
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 timestampAutomático
updatedAtDateAuto-generated last-update timestampAutomático

10 campos em Profile

Segurança e Permissões

Como ACL, CLP, objetos de consentimento e Cloud Code protegem registros de saúde pessoais e o compartilhamento.

Registros de propriedade do paciente

Defina a propriedade e a ACL para que as entradas HealthDocument, Allergy, Immunization, Medication e LabResult sejam legíveis e graváveis apenas pelo proprietário do registro e pelos Providers autorizados.

Compartilhamento orientado por consentimento

Use a classe Consent para conceder acesso a Provider com escopo e expiração explícitos; o Cloud Code aplica verificações de consentimento nos endpoints de leitura e download.

Logs de auditoria apenas de acréscimo

Mantenha as entradas do AuditLog como acréscimos apenas para usuários padrão; apenas fluxos de backend confiáveis ou administradores podem escrever ou gerenciar logs históricos.

Esquema (JSON)

Definição de esquema JSON bruta pronta para copiar para Back4app ou usar como referência de implementação.

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
        }
      }
    }
  ]
}

Construa com o AI Agent

Use o Back4app AI Agent para gerar um Prontuário de Saúde Pessoal real a partir deste modelo, incluindo frontend, backend, autenticação e fluxos de consentimento.

Back4app AI Agent
Pronto para construir
Crie um backend de Registro de Saúde Pessoal (PHR) no Back4app com este esquema e comportamento exatos.

Esquema:
1. HealthDocument: owner (Pointer to User, obrigatório), title (String, obrigatório), file (File, obrigatório), tags (Array, opcional), version (Number, padrão 1), createdAt, updatedAt (system).
2. Allergy: owner (Pointer to User, obrigatório), substance (String, obrigatório), Reaction (String, opcional), severity (String: leve, moderada, grave, obrigatório), onsetDate (Date, opcional).
3. Immunization: owner (Pointer to User, obrigatório), vaccineName (String, obrigatório), administeredAt (Date, obrigatório), lotNumber (String, opcional), Provider (Pointer to Provider, opcional).
4. Medication: owner (Pointer to User, obrigatório), name (String, obrigatório), dose (String, opcional), frequency (String, opcional), instructions (String, opcional), active (Boolean, padrão true).
5. LabResult: owner (Pointer to User, obrigatório), testName (String, obrigatório), value (Number or String), units (String, opcional), referenceRange (String, opcional), date (Date, obrigatório), attachment (Pointer to HealthDocument, opcional).
6. Provider: name (String, obrigatório), systemId (String, opcional), contact (Object, opcional).
7. Consent: owner (Pointer to User, obrigatório), Provider (Pointer to Provider, obrigatório), scope (Array of Strings: [documents, allergies, immunizations, medications, labs]), expiresAt (Date, opcional), grantedBy (Pointer to User or system).
8. AuditLog: actor (Pointer to User, obrigatório), action (String, obrigatório), entityType (String, obrigatório), entityId (String, obrigatório), payload (Object, opcional); createdAt, updatedAt (system).

Segurança:
- Use ACL/CLP para que apenas proprietários e consentidos Providers acessem os registros. Cloud Code valida o Consentimento antes de permitir Provider leitura/download. Entradas de AuditLog são apenas para acréscimo para usuários padrão.

Autenticação:
- Cadastro, login, logout para contas de usuário. Suporte Provider contas com privilégios limitados.

Comportamento:
- Autenticar, listar registros de usuário, fazer upload do HealthDocument, criar entradas estruturadas de Allergy/Immunization/Medication/LabResult, criar Consentimento para compartilhar registros selecionados com um Provider, e escrever entradas de AuditLog para eventos críticos.

Entrega:
- Back4app app com esquema, ACLs, CLPs; frontend para cofres de documentos seguros, linhas do tempo de alergias e imunizações, listas de medicamentos, visualizações de resultados de laboratório, fluxos de consentimento Provider, e histórico de auditoria.

Pressione o botão abaixo para abrir o Agente com este prompt de modelo pré-preenchido.

Este é o prompt base sem um sufixo de tecnologia. Você pode adaptar o stack de frontend gerado posteriormente.

Implantar em minutos50 prompts gratuitos por mêsNão é necessário cartão de crédito

Área de testes de API

Teste os endpoints REST e GraphQL contra o esquema PHR. As respostas usam dados simulados e não requerem uma conta Back4app.

common.loadingPlayground

Usa o mesmo esquema deste modelo.

Escolha sua tecnologia

Expanda cada cartão para etapas de integração, padrões de estado, exemplos de modelo de dados e notas offline.

Flutter PHR Backend

React PHR Backend

React Nativo 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

O que você obtém com cada tecnologia

Cada stack usa o mesmo esquema de backend PHR e contratos de API.

Estrutura de dados unificada registro de saúde pessoal

Um esquema pré-construído para documentos e registros médicos.

Compartilhamento seguro para registro de saúde pessoal

Compartilhe facilmente informações de saúde com Providers enquanto garante a privacidade.

Registros de auditoria abrangentes para registro de saúde pessoal

Acompanhe todos os acessos e alterações em dados de saúde sensíveis.

REST/GraphQL APIs para registro de saúde pessoal

Acesso API flexível para integrar-se com várias interfaces sem problemas.

Atualizações em tempo real para registro de saúde pessoal

Notificações instantâneas sobre alterações nos registros de saúde e status.

Extensibilidade para registro de saúde pessoal

Adicione facilmente recursos e módulos personalizados para atender a necessidades específicas.

Comparação da Estrutura do Registro de Saúde Pessoal

Compare a velocidade de configuração, estilo de SDK e suporte a IA em todas as tecnologias suportadas.

FrameworkTempo de ConfiguraçãoBenefício do Registro de Saúde PessoalTipo de SDKSuporte de IA
Menos de 5 minutosBase de código única para registro de saúde pessoal em dispositivos móveis e na web.Typed SDKCompleto
~3–7 minPainel da web rápido para registro de saúde pessoal.Typed SDKCompleto
Configuração rápida (5 min)Aplicativo móvel multiplataforma para registro de saúde pessoal.Typed SDKCompleto
~5 minAplicativo da web renderizado no servidor para registro de saúde pessoal.Typed SDKCompleto
~3 minIntegração leve da web para registro de saúde pessoal.Typed SDKCompleto
Menos de 5 minutosAplicativo nativo Android para registro de saúde pessoal.Typed SDKCompleto
~3–7 minAplicativo nativo iOS para registro de saúde pessoal.Typed SDKCompleto
Configuração rápida (5 min)Interface da web Reactive para registro de saúde pessoal.Typed SDKCompleto
~5 minAplicativo da web para empresas para registro de saúde pessoal.Typed SDKCompleto
Configuração rápida (2 min)API flexível GraphQL para registro de saúde pessoal.GraphQL APICompleto
~2 minIntegração REST API para registro de saúde pessoal.REST APICompleto
Menos de 5 minBackend PHP do lado do servidor para registro de saúde pessoal.REST APICompleto
Configuração rápida (5 min)Backend .NET para registro de saúde pessoal.Typed SDKCompleto

O tempo de configuração reflete a duração prevista desde a inicialização do projeto até o upload do primeiro documento e o fluxo de consentimento usando este esquema de modelo.

Perguntas Frequentes

Perguntas comuns sobre a construção de um backend de Registro de Saúde Pessoal (PHR) com este modelo.

O que é um backend de Prontuário de Saúde Pessoal (PHR)?
O que o modelo PHR inclui?
Como os documentos médicos são versionados?
Quais campos são obrigatórios para um registro de Immunization?
Como posso proteger os dados de alergias e medicamentos?
Os pacientes podem exportar seus dados do PHR?
Como modelar resultados de laboratório no PHR?
Por que usar Back4app para um PHR?
Como posso gerenciar o vencimento do consentimento?
Posso suportar vários Providers por paciente?

Confiado por desenvolvedores em todo o mundo

Equipes que constroem aplicativos de saúde centrados no paciente entregam mais rápido com os modelos Back4app

G2 Users Love Us Badge

Pronto para Construir Seu Aplicativo de Prontuário de Saúde Pessoal?

Inicie seu projeto de Prontuário de Saúde Pessoal em minutos. Não é necessário cartão de crédito.

Escolha a Tecnologia