전자 건강 기록 (EHR) 애플리케이션 백엔드 템플릿
장기 환자 기록, 만남 문서화, 서명된 메모 워크플로우 및 추적 가능한 감사 기록
생산 준비 완료된 EHR 백엔드 on Back4app는 포괄적인 환자 임상 역사, 버전 관리된 메모 및 다중 서명 승인 흐름을 제공합니다. 이를 통해 추적 가능성을 유지하면서 웹과 모바일을 통한 의료 제품을 더 빠르게 배송하세요.
주요 내용
이 템플릿은 환자 기록, 방문, 메모 수정 및 공동 서명 프로세스를 위한 임상 문서화 준비가 된 백엔드를 제공하여 팀이 백엔드 기반을 재구성하는 대신 돌봄 작업 흐름에 집중할 수 있도록 합니다.
- 종단적 환자 차트 모델 — 완전한 환자 역사 보기를 위해 구축된 구조에서 인구 통계, 식별자, 방문 및 임상 항목을 정리합니다.
- 버전 관리된 의료 메모 작업 흐름 — 초안, 검토, 수정 및 서명된 메모 수정을 추적하여 문서 이력이 명확하고 쿼리 가능하도록 유지됩니다.
- 다중 서명 지원 — 참여, 레지던트, 전문가 또는 감독자의 서명을 수집하고 상태 추적 및 타임스탬프가 있는 승인을 제공합니다.
- 차트 접근에 대한 감사 가능성 — 내부 검토, 준수 보고 및 운영 문제 해결을 지원하기 위해 의미 있는 접근 및 변경 이벤트를 캡처하십시오.
- 크로스 플랫폼 제공 — REST 및 GraphQL를 통해 포털, 임상의 작업공간 및 모바일 차트 앱을 제공하며 선택적으로 Live Queries를 사용할 수 있습니다.
전자 건강 기록 (EHR) 앱 백엔드 템플릿이란?
Back4app는 신속한 제품 제공을 위한 관리 백엔드입니다. 전자 건강 기록 (EHR) 앱 백엔드 템플릿은 환자, 만남, 노트 버전, 서명 및 감사 이벤트를 모델링하여 팀이 첫날부터 강력한 백엔드 계약을 통해 의료 문서화 제품을 구현할 수 있도록 합니다.
최고의 용도:
개요
임상 문서화 시스템은 사용성과 추적 가능성의 균형을 이루어야 합니다. 팀은 완전한 환자 타임라인, 구조화된 만남 기록, 제어된 노트 수정 및 서명 및 수정에 대한 신뢰할 수 있는 승인 경로가 필요합니다.
이 템플릿은 소유권 규칙 및 선택적 Live Queries와 함께 환자, 만남, 의료 노트, 노트 서명 및 감사 이벤트를 정의하여 팀이 EHR 경험을 신속하고 일관되게 구축할 수 있도록 합니다.
핵심 EHR 기능
이 허브의 모든 기술 카드에는 Patient, Encounter, MedicalNote, NoteSignature 및 AuditEvent와 같은 동일한 EHR 스키마가 사용됩니다.
환자 기본 기록
각 환자에 대한 인구통계 세부 정보, 의료 기록 번호, 생년월일, 연락처 데이터 및 기본 차트 메타데이터를 저장합니다.
만남 기반 차트 구성
방문, 입원, 상담 또는 후속 조치를 타임스탬프, 치료 맥락, 상태 및 책임 있는 임상의 포인터와 함께 나타냅니다.
버전이 있는 의료 기록
MedicalNote는 노트 유형, 내용, 수정 번호, 상태, 수정 메타데이터, 환자 및 만남에 대한 연결을 저장합니다.
다중 서명 승인 워크플로우
NoteSignature 객체는 누가 서명해야 하는지, 어떤 역할인지, 현재 상태, 서명된 타임스탬프 및 선택적 주석을 추적합니다.
접속 및 변경 감사 이벤트
AuditEvent는 배우자, 대상 및 타임스탬프 데이터와 함께 중요한 읽기, 쓰기, 상태 변경 및 서명 작업을 기록합니다.
왜 Back4app로 전자 건강 기록(EHR) 앱 백엔드를 구축해야 할까요?
Back4app는 팀이 인프라 파이프라인이 아닌 임상의 경험, 차트 사용성 및 도메인 논리에 집중할 수 있도록 의료 문서 흐름을 위한 관리형 백엔드 계약을 제공합니다.
- •임상 데이터 구축 Blocks: 환자 기록, 만남, 메모 버전 및 서명을 위한 미리 정의된 클래스를 사용하면 전체 백엔드를 처음부터 설계하지 않고도 필수 EHR 흐름을 구현할 수 있습니다.
- •수정 및 승인 추적 가능성: 버전이 있는 메모 기록과 명시적인 서명 객체는 초안, 검토, 수정 및 서명 상태를 명확하게 표현하는 데 도움이 됩니다.
- •앱 및 통합을 위한 유연한 API: Live Queries를 사용하여 차트를 업데이트하고 REST 및 GraphQL 엔드포인트를 포털, 모바일 차팅, 분석 및 외부 임상 통합을 위해 노출합니다.
하나의 백엔드 계약으로 팀과 플랫폼 전반에 걸쳐 환자 차트를 표준화하고 안전한 문서 워크플로를 전달하는 데 필요한 시간을 줄입니다.
핵심 이점
버전 기록과 승인 추적성을 유지하면서 더 빠르게 이동할 수 있도록 돕는 의료 문서 백엔드입니다.
더 빠른 차트 작성 제품 제공
미리 구축된 환자 및 메모 모델에서 시작하여 팀이 차트 검토, 문서화 및 승인 화면과 같은 작업 흐름에 집중할 수 있도록 합니다.
명확한 수정 이력
팀이 무엇이 변경되었는지, 언제 변경되었는지, 그리고 어떤 버전이 권위 있는지 이해할 수 있도록 명시적인 노트 버전과 수정 계통을 유지합니다.
서명 워크플로우 지원
별도의 워크플로우 엔진을 먼저 발명하지 않고도 검토자 대기열, 필수 서명자, 공동 서명 마감일 및 완료 상태를 나타냅니다.
역할 인식 접근 패턴
권한이 부여된 임상의나 관리자만이 민감한 차트 콘텐츠를 생성, 편집, 서명 또는 볼 수 있도록 역할 및 소유권 규칙을 적용합니다.
실시간 차트 반응성
Live Queries는 만남이 업데이트되거나, 노트가 수정되거나, 필요한 서명이 완료되었을 때 클라이언트에게 알릴 수 있습니다.
확장 가능한 통합
REST 또는 GraphQL API를 사용하여 일정 도구, 환자 포털, 청구 시스템 또는 상호 운용성 레이어에 연결합니다.
현대 EHR 워크플로우를 시작할 준비가 되셨습니까?
Back4app AI 에이전트가 EHR 백엔드를 만들고 샘플 환자, 임상 만남, 노트 버전 및 감사 이벤트를 하나의 프롬프트에서 시드합니다.
무료 시작 — 월 50개의 AI 에이전트 프롬프트, 신용카드 필요 없음
기술 스택
이 EHR 백엔드 템플릿에 포함된 모든 것.
ER 다이어그램
EHR 스키마에 대한 엔터티 관계 모델입니다.
환자, 만남, 노트 수정, 서명 및 감사 이벤트를 포함하는 스키마입니다.
다이어그램 소스 보기
erDiagram
User ||--o{ Patient : "primary_clinician_for"
Patient ||--o{ Encounter : "has"
Patient ||--o{ MedicalNote : "chart_contains"
Encounter ||--o{ MedicalNote : "context_for"
MedicalNote ||--o{ NoteVersion : "versioned_as"
MedicalNote ||--o{ Signature : "requires"
NoteVersion ||--o{ Signature : "attests"
Patient ||--o{ Attachment : "owns"
Encounter ||--o{ Attachment : "context_for"
MedicalNote ||--o{ Attachment : "references"
User ||--o{ MedicalNote : "authors"
User ||--o{ NoteVersion : "edits"
User ||--o{ Signature : "signs"
User ||--o{ AuditEvent : "actor_of"
Patient ||--o{ AuditEvent : "chart_activity"
Patient {
String objectId PK
String mrn
String fullName
Date dateOfBirth
String sexAtBirth
Array allergies
Pointer primaryClinician FK
String status
Date createdAt
Date updatedAt
}
Encounter {
String objectId PK
Pointer patient FK
String encounterNumber
String type
String department
Pointer admittingClinician FK
Date startedAt
Date endedAt
String status
Date createdAt
Date updatedAt
}
MedicalNote {
String objectId PK
Pointer patient FK
Pointer encounter FK
Pointer author FK
String title
String noteType
Number currentVersionNumber
String status
Boolean requiresCosign
Date createdAt
Date updatedAt
}
NoteVersion {
String objectId PK
Pointer medicalNote FK
Number versionNumber
Pointer editor FK
String subjective
String objective
String assessment
String plan
String changeSummary
Boolean isAddendum
Date createdAt
Date updatedAt
}
Signature {
String objectId PK
Pointer medicalNote FK
Pointer noteVersion FK
Pointer signer FK
String signatureRole
String status
Date signedAt
String comment
Date createdAt
Date updatedAt
}
Attachment {
String objectId PK
Pointer patient FK
Pointer encounter FK
Pointer medicalNote FK
File file
String category
Pointer uploadedBy FK
Date createdAt
Date updatedAt
}
AuditEvent {
String objectId PK
Pointer actor FK
Pointer patient FK
String eventType
String targetClass
String targetId
String details
String ipAddress
Date timestamp
}
통합 흐름
환자 차트 접근, 만남 문서화, 버전이 있는 노트 업데이트 및 서명 워크플로우에 대한 Auth-to-CRUD 흐름입니다.
다이어그램 소스 보기
sequenceDiagram
participant User as Clinician
participant App as Electronic Health Record (EHR) App
participant Back4app as Back4app Cloud
User->>App: Sign in to access patient chart
App->>Back4app: POST /login (username, password)
Back4app-->>App: Session token + user role
User->>App: Open patient timeline
App->>Back4app: GET /classes/Patient + /classes/Encounter + /classes/MedicalNote
Back4app-->>App: Patient chart, active encounters, note list
User->>App: Create amended progress note
App->>Back4app: POST /classes/MedicalNote (patient, encounter, author, status)
Back4app-->>App: MedicalNote objectId
App->>Back4app: POST /classes/NoteVersion (medicalNote, versionNumber, SOAP content)
Back4app-->>App: NoteVersion saved
User->>App: Request attending co-signature
App->>Back4app: POST /classes/Signature (medicalNote, noteVersion, signer, role)
Back4app-->>App: Signature request created
App->>Back4app: POST /classes/AuditEvent (eventType: sign_request, targetClass: MedicalNote)
Back4app-->>App: Audit event saved
Back4app-->>App: Live Query events (new versions, signature status changes)
App-->>User: Real-time chart refresh and signer updates데이터 사전
EHR 스키마의 모든 클래스에 대한 전체 필드 수준 참조입니다.
| 필드 | 유형 | 설명 | 필수 |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | 자동 |
| username | String | Login username for clinicians, scribes, and administrators | |
| String | User email address | ||
| password | String | Hashed password (write-only) | |
| role | String | Role (admin, physician, nurse, scribe, auditor) | |
| displayName | String | Full display name used in signatures and chart headers | — |
| licenseNumber | String | Clinical license or credential identifier | — |
| createdAt | Date | Auto-generated creation timestamp | 자동 |
| updatedAt | Date | Auto-generated last-update timestamp | 자동 |
9 필드에서 User
보안 및 권한
ACL, 역할 및 CLP 전략이 환자 차트, 의견 수정, 서명 및 감사 이벤트를 어떻게 보호하는지.
역할 기반 차트 접근
임상 의사, 담당 의사, 검토자 및 관리자와 같은 역할을 사용하여 환자 기록을 읽거나, 노트를 작성하거나, 서명을 요청하거나, 접근을 관리할 수 있는 사람을 범위 지정합니다.
소유권 및 서명 책임
지정된 서명자만이 그들에게 할당된 NoteSignature 기록을 완료할 수 있도록 하여 권한이 있는 저자 또는 감독자에게만 노트 수정을 제한합니다.
보호된 감사 추적
AuditEvent 항목은 추가 전용이며 철저하게 제어되어 차트 접근 이력 및 중요한 변경 사항이 클라이언트 앱에서 변조될 수 없도록 해야 합니다.
스키마 (JSON)
복사하여 Back4app에 붙여넣거나 구현 참고용으로 사용할 준비가 된 원시 JSON 스키마 정의입니다.
{
"classes": [
{
"className": "User",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"username": {
"type": "String",
"required": true
},
"email": {
"type": "String",
"required": true
},
"password": {
"type": "String",
"required": true
},
"role": {
"type": "String",
"required": true
},
"displayName": {
"type": "String",
"required": false
},
"licenseNumber": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Patient",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"mrn": {
"type": "String",
"required": true
},
"fullName": {
"type": "String",
"required": true
},
"dateOfBirth": {
"type": "Date",
"required": true
},
"sexAtBirth": {
"type": "String",
"required": false
},
"allergies": {
"type": "Array",
"required": false
},
"primaryClinician": {
"type": "Pointer",
"required": false,
"targetClass": "User"
},
"status": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Encounter",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"patient": {
"type": "Pointer",
"required": true,
"targetClass": "Patient"
},
"encounterNumber": {
"type": "String",
"required": true
},
"type": {
"type": "String",
"required": true
},
"department": {
"type": "String",
"required": false
},
"admittingClinician": {
"type": "Pointer",
"required": false,
"targetClass": "User"
},
"startedAt": {
"type": "Date",
"required": true
},
"endedAt": {
"type": "Date",
"required": false
},
"status": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "MedicalNote",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"patient": {
"type": "Pointer",
"required": true,
"targetClass": "Patient"
},
"encounter": {
"type": "Pointer",
"required": true,
"targetClass": "Encounter"
},
"author": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"title": {
"type": "String",
"required": true
},
"noteType": {
"type": "String",
"required": true
},
"currentVersionNumber": {
"type": "Number",
"required": true
},
"status": {
"type": "String",
"required": true
},
"requiresCosign": {
"type": "Boolean",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "NoteVersion",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"medicalNote": {
"type": "Pointer",
"required": true,
"targetClass": "MedicalNote"
},
"versionNumber": {
"type": "Number",
"required": true
},
"editor": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"subjective": {
"type": "String",
"required": false
},
"objective": {
"type": "String",
"required": false
},
"assessment": {
"type": "String",
"required": false
},
"plan": {
"type": "String",
"required": false
},
"changeSummary": {
"type": "String",
"required": false
},
"isAddendum": {
"type": "Boolean",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Signature",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"medicalNote": {
"type": "Pointer",
"required": true,
"targetClass": "MedicalNote"
},
"noteVersion": {
"type": "Pointer",
"required": true,
"targetClass": "NoteVersion"
},
"signer": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"signatureRole": {
"type": "String",
"required": true
},
"status": {
"type": "String",
"required": true
},
"signedAt": {
"type": "Date",
"required": false
},
"comment": {
"type": "String",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Attachment",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"patient": {
"type": "Pointer",
"required": true,
"targetClass": "Patient"
},
"encounter": {
"type": "Pointer",
"required": false,
"targetClass": "Encounter"
},
"medicalNote": {
"type": "Pointer",
"required": false,
"targetClass": "MedicalNote"
},
"file": {
"type": "File",
"required": true
},
"category": {
"type": "String",
"required": true
},
"uploadedBy": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "AuditEvent",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"actor": {
"type": "Pointer",
"required": true,
"targetClass": "User"
},
"patient": {
"type": "Pointer",
"required": false,
"targetClass": "Patient"
},
"eventType": {
"type": "String",
"required": true
},
"targetClass": {
"type": "String",
"required": false
},
"targetId": {
"type": "String",
"required": false
},
"details": {
"type": "String",
"required": false
},
"ipAddress": {
"type": "String",
"required": false
},
"timestamp": {
"type": "Date",
"required": true
}
}
}
]
}AI 에이전트로 구축하기
이 템플릿에서 전체 EHR 앱을 생성하기 위해 Back4app AI 에이전트를 사용하세요. 여기에는 프론트엔드, 백엔드, 인증, 노트 수정 워크플로우 및 서명 흐름이 포함됩니다.
Back4app에서 이 정확한 스키마와 동작으로 전자 건강 기록 (EHR) 백엔드를 생성하세요. 스키마: 1. 환자: medicalRecordNumber (문자열, 필수), fullName (문자열, 필수), dateOfBirth (날짜), sexAtBirth (문자열), contact (JSON), primaryClinician (사용자에 대한 포인터, 선택 사항), status (문자열: active, inactive, archived), objectId, createdAt, updatedAt. 2. 만남: patient (환자에 대한 포인터, 필수), encounterType (문자열: outpatient, inpatient, emergency, telehealth), startedAt (날짜, 필수), endedAt (날짜, 선택 사항), location (문자열), attendingClinician (사용자에 대한 포인터), status (문자열: open, closed, cancelled), objectId, createdAt, updatedAt. 3. MedicalNote: patient (환자에 대한 포인터, 필수), encounter (만남에 대한 포인터, 선택 사항), author (사용자에 대한 포인터, 필수), noteType (문자열: progress, admission, discharge, consult, procedure), title (문자열), content (문자열, 필수), versionNumber (숫자, 필수), previousVersion (MedicalNote에 대한 포인터, 선택 사항), status (문자열: draft, under_review, signed, amended), amendmentReason (문자열, 선택 사항), objectId, createdAt, updatedAt. 4. NoteSignature: note (MedicalNote에 대한 포인터, 필수), signer (사용자에 대한 포인터, 필수), signerRole (문자열), status (문자열: requested, signed, declined), requestedAt (날짜), signedAt (날짜, 선택 사항), comment (문자열, 선택 사항), objectId, createdAt, updatedAt. 5. AuditEvent: actor (사용자에 대한 포인터), eventType (문자열), targetClass (문자열), targetId (문자열), details (JSON), timestamp (날짜) — 추가 전용. 보안: - 역할 기반 CLP 및 ACL: 인증된 치료 팀 사용자만 환자 및 만남 데이터에 액세스할 수 있습니다. 노트 저자 또는 감독 역할만 MedicalNote 초안을 수정할 수 있습니다. 지정된 서명자만 NoteSignature 작업을 완료할 수 있습니다. AuditEvent는 추가 전용이며 읽기 제한이 있습니다. 인증: - 임상의는 내장된 사용자를 통해 가입 및 로그인합니다; 역할은 관리자가 할당합니다. 동작: - 사용자를 인증하고, 환자 차트를 가져오고, MedicalNote를 생성 또는 수정하고, 하나 이상의 NoteSignature 승인을 요청하며, 각각의 중요 작업에 대해 AuditEvent 항목을 작성합니다. 전달: - 선택된 기술에 따라 스키마, ACL, CLP, 클라우드 코드 검증, 시드된 샘플 데이터 및 프론트엔드 스캐폴드를 포함한 Back4app 앱.
아래 버튼을 눌러 이 템플릿 프롬프트가 미리 채워진 에이전트를 엽니다.
이 기본 프롬프트는 EHR 스키마 및 동작을 설명합니다; 이후에 기술별 접미사를 선택할 수 있습니다.
API 놀이터
EHR 스키마에 대해 REST 및 GraphQL 엔드포인트를 시도해 보십시오. 응답은 모의 데이터를 사용하며 Back4app 계정이 필요하지 않습니다.
이 템플릿과 동일한 스키마를 사용합니다.
기술 선택
각 카드를 확장하여 통합 단계, 상태 패턴, 데이터 모델 예제 및 오프라인 노트를 확인하세요.
Flutter EHR 백엔드
React EHR 백엔드
React 네이티브 EHR 백엔드
Next.js EHR 백엔드
JavaScript EHR 백엔드
Android EHR 백엔드
iOS EHR 백엔드
Vue EHR 백엔드
Angular EHR 백엔드
GraphQL EHR 백엔드
REST API EHR 백엔드
PHP EHR 백엔드
.NET EHR 백엔드
모든 기술로 얻는 것
모든 스택은 동일한 EHR 백엔드 스키마와 API 계약을 사용합니다.
포괄적인 환자 기록
EHR 시스템의 완전한 환자 히스토리를 쉽게 관리하십시오.
안전한 데이터 저장소
강력한 EHR 시스템 데이터 보호로 환자 기밀성 보장.
규정 준수를 위한 감사 추적
EHR 시스템 상호 작용에 대한 정확한 로그 유지하여 규제 준수.
REST/GraphQL APIs
현대 API로 EHR 시스템 데이터에 원활하게 접근하고 조작하십시오.
메모에 대한 버전 관리
효율적인 메모 버전 관리를 통해 EHR 시스템 문서의 변경 사항 추적.
사용자 정의 가능한 워크플로우
유연한 백엔드 솔루션으로 고유한 EHR 시스템 요구에 맞게 프로세스를 조정하십시오.
EHR 시스템 프레임워크 비교
모든 지원 기술에 대해 설정 속도, SDK 스타일 및 AI 지원을 비교하십시오.
| 프레임워크 | 설정 시간 | EHR 시스템의 이점 | SDK 유형 | AI 지원 |
|---|---|---|---|---|
| 신속한 (5 분) 설정 | 모바일 및 웹용 EHR 시스템에 대한 단일 코드베이스. | Typed SDK | 전체 | |
| ~5 분 | EHR 시스템을 위한 빠른 웹 대시보드. | Typed SDK | 전체 | |
| 약 5 분 | EHR 시스템을 위한 크로스 플랫폼 모바일 앱. | Typed SDK | 전체 | |
| 5 분 이내 | EHR 시스템을 위한 서버 렌더링 웹 앱. | Typed SDK | 전체 | |
| 5 분 이내 | EHR 시스템을 위한 가벼운 웹 통합. | Typed SDK | 전체 | |
| 신속한 (5 분) 설정 | EHR 시스템을 위한 네이티브 Android 앱. | Typed SDK | 전체 | |
| ~5 분 | EHR 시스템을 위한 네이티브 iOS 앱. | Typed SDK | 전체 | |
| 약 5 분 | React적 웹 UI를 위한 EHR 시스템. | Typed SDK | 전체 | |
| 5 분 이내 | EHR 시스템을 위한 기업 웹 앱. | Typed SDK | 전체 | |
| ~2 분 | EHR 시스템을 위한 유연한 GraphQL API. | GraphQL API | 전체 | |
| 2 분 이내 | EHR 시스템을 위한 REST API 통합. | REST API | 전체 | |
| ~3-5 분 | EHR 시스템을 위한 서버사이드 PHP 백엔드. | REST API | 전체 | |
| 약 5 분 | .NET 백엔드 for ehr system. | Typed SDK | 전체 |
설정 시간은 프로젝트 시작부터 첫 환자 차트 뷰가 만남 및 메모 요약으로 채워지는 예상 소요 기간을 반영합니다.
자주 묻는 질문
이 템플릿으로 EHR 백엔드를 구축하는 것에 대한 일반적인 질문들입니다.