Roles & Permissions
Complete reference for what each role can do in ProjectMed.
ProjectMed uses a three-tier role system to control access throughout the platform. Every user is assigned exactly one role, and each role inherits all permissions from the roles below it.
| Role | Description | Typical User |
|---|---|---|
| Doctor | Clinical user. Can view and manage patient records, add visits, export PDFs, and manage their own profile. | Team physicians, sports medicine doctors, clinical staff |
| Admin | Administrative user. Can view patients (read-only), manage doctors, view audit logs, soft-delete patients, and create groups. Does not create or edit patient records or visits. | Clinic administrators, medical directors, team managers |
| Superadmin | Platform owner. Full control over the entire system including managing admins, permanent deletions, data export, and system configuration. | Platform owner, IT administrator |
角色與權限
ProjectMed 中各角色權限的完整參考。
ProjectMed 使用三層角色系統來控制整個平台的存取權限。每位使用者只被分配一個角色,每個角色會繼承其下層角色的所有權限。
| 角色 | 說明 | 典型使用者 |
|---|---|---|
| 醫師 | 臨床使用者。可檢視及管理病患紀錄、新增看診紀錄、匯出 PDF,並管理自己的個人檔案。 | 隊醫、運動醫學醫師、臨床人員 |
| 管理員 | 行政管理使用者。可檢視病患(唯讀)、管理醫師、查看稽核紀錄、軟刪除病患及建立群組。無法建立或編輯病患紀錄或看診紀錄。 | 診所管理員、醫療主管、團隊經理 |
| 超級管理員 | 平台擁有者。擁有系統完整控制權,包括管理管理員、永久刪除、資料匯出及系統設定。 | 平台擁有者、資訊技術管理員 |
Roles y Permisos
Referencia completa de lo que cada rol puede hacer en ProjectMed.
ProjectMed utiliza un sistema de roles de tres niveles para controlar el acceso en toda la plataforma. Cada usuario tiene exactamente un rol asignado, y cada rol hereda todos los permisos de los roles inferiores.
| Rol | Descripcion | Usuario Tipico |
|---|---|---|
| Medico | Usuario clinico. Puede ver y gestionar registros de pacientes, agregar consultas, exportar PDFs y gestionar su propio perfil. | Medicos de equipo, medicos deportivos, personal clinico |
| Administrador | Usuario administrativo. Puede ver pacientes (solo lectura), gestionar medicos, ver registros de auditoria, eliminar pacientes temporalmente y crear grupos. No puede crear ni editar registros de pacientes ni consultas. | Administradores de clinica, directores medicos, gerentes de equipo |
| Superadministrador | Propietario de la plataforma. Control total del sistema, incluyendo gestion de administradores, eliminaciones permanentes, exportacion de datos y configuracion del sistema. | Propietario de la plataforma, administrador de TI |
Role Hierarchy
How roles inherit permissions from each other.
ProjectMed follows a strict role hierarchy. Each higher role inherits all permissions from the roles below it, plus gains additional capabilities:
↓ inherits all Admin permissions, plus:
Manage admins, permanent delete, bulk operations, system backup, clear audit logs
Admin — Team administration
View patients (read-only), manage doctors, view audit logs, soft-delete patients, create groups
Admins do NOT inherit patient/visit creation, editing, or deletion
Doctor — Clinical access
View/create/edit patients, add visits, export PDF/FHIR, upload images, manage own profile
角色層級
各角色如何繼承彼此的權限。
ProjectMed 遵循嚴格的角色層級制度。每個上層角色繼承其下層角色的所有權限,並額外獲得更多功能:
↓ 繼承所有管理員權限,另外增加:
管理管理員、永久刪除、批量操作、系統備份、清除稽核紀錄
管理員 — 團隊行政管理
檢視病患(唯讀)、管理醫師、查看稽核紀錄、軟刪除病患、建立群組
管理員不會繼承病患/看診的建立、編輯或刪除權限
醫師 — 臨床存取
檢視/建立/編輯病患、新增看診、匯出 PDF/FHIR、上傳影像、管理個人檔案
Jerarquia de Roles
Como los roles heredan permisos entre si.
ProjectMed sigue una jerarquia de roles estricta. Cada rol superior hereda todos los permisos de los roles inferiores, ademas de obtener capacidades adicionales:
↓ hereda todos los permisos de Administrador, mas:
Gestionar administradores, eliminacion permanente, operaciones masivas, respaldo del sistema, borrar registros de auditoria
Administrador — Administracion del equipo
Ver pacientes (solo lectura), gestionar medicos, ver registros de auditoria, eliminar pacientes temporalmente, crear grupos
Los administradores NO heredan la creacion, edicion o eliminacion de pacientes/consultas
Medico — Acceso clinico
Ver/crear/editar pacientes, agregar consultas, exportar PDF/FHIR, subir imagenes, gestionar perfil propio
Patient Management
Creating, editing, and deleting patient records.
| Feature | Doctor | Admin | Superadmin |
|---|---|---|---|
| View all patients (searchable list) | ✓ | ✓ | ✓ |
| Create new patient | ✓ | — | — |
| Edit patient info (name, DOB, contact, etc.) | ✓ | — | — |
| Edit medical history | ✓ | — | — |
| Edit allergies | ✓ | — | — |
| Edit clearance status | ✓ | — | — |
| Change patient status | ✓ | — | — |
| Upload / delete images | ✓ | — | — |
| Export PDF (PIN required) | ✓ | ✓ | ✓ |
| Export FHIR R4 JSON | ✓ | ✓ | ✓ |
| Email record to another doctor | ✓ | ✓ | ✓ |
| Soft-delete patient (trash) | — | ✓ | ✓ |
| View trashed patients | — | — | ✓ |
| Permanently delete patient | — | — | ✓ |
| Bulk delete patients | — | — | ✓ |
Explanation
Only doctors can create, edit, and manage patient records. Admins and superadmins have view-only access to all patient data — they can see Basic Info, Medical Background, Allergies, Clearance, and Visits, but cannot modify any clinical information. The key differences are around deletion:
- Doctors cannot delete patients at all. They can only create and edit records.
- Admins can soft-delete (trash) a patient, which hides the patient from the regular list but does not destroy the data. When an admin trashes a patient, all superadmins are notified by email.
- Superadmins can see trashed patients and permanently delete them. This is a destructive, irreversible action. Superadmins can also bulk-delete multiple patients at once.
Patient Self-Intake
Patients can submit a pre-consultation form via a public URL (no login required). This creates a patient record with pending_intake status. Any doctor or admin can then review and complete the intake from the Dashboard.
病患管理
建立、編輯及刪除病患紀錄。
| 功能 | 醫師 | 管理員 | 超級管理員 |
|---|---|---|---|
| 檢視所有病患(可搜尋列表) | ✓ | ✓ | ✓ |
| 建立新病患 | ✓ | — | — |
| 編輯病患資訊(姓名、出生日期、聯絡方式等) | ✓ | — | — |
| 編輯病史 | ✓ | — | — |
| 編輯過敏資訊 | ✓ | — | — |
| 編輯適性許可狀態 | ✓ | — | — |
| 變更病患狀態 | ✓ | — | — |
| 上傳/刪除影像 | ✓ | — | — |
| 匯出 PDF(需要 PIN) | ✓ | ✓ | ✓ |
| 匯出 FHIR R4 JSON | ✓ | ✓ | ✓ |
| 以電子郵件將紀錄寄給其他醫師 | ✓ | ✓ | ✓ |
| 軟刪除病患(移至回收站) | — | ✓ | ✓ |
| 檢視已刪除的病患 | — | — | ✓ |
| 永久刪除病患 | — | — | ✓ |
| 批量刪除病患 | — | — | ✓ |
說明
只有醫師可以建立、編輯及管理病患紀錄。管理員和超級管理員對所有病患資料只有唯讀權限 — 他們可以查看基本資訊、病史背景、過敏資訊、適性許可及看診紀錄,但無法修改任何臨床資訊。主要差異在於刪除:
- 醫師完全無法刪除病患。只能建立和編輯紀錄。
- 管理員可以軟刪除(移至回收站)病患,這會將病患從一般列表中隱藏但不會銷毀資料。當管理員將病患移至回收站時,所有超級管理員會收到電子郵件通知。
- 超級管理員可以查看已刪除的病患並永久刪除。這是一個具破壞性且不可逆的操作。超級管理員也可以一次批量刪除多位病患。
病患自助填寫
病患可以透過公開網址提交看診前問卷(無需登入)。這會建立一筆狀態為 pending_intake 的病患紀錄。任何醫師或管理員都可以從儀表板檢閱並完成資料登錄。
Gestion de Pacientes
Creacion, edicion y eliminacion de registros de pacientes.
| Funcion | Medico | Administrador | Superadmin |
|---|---|---|---|
| Ver todos los pacientes (lista con busqueda) | ✓ | ✓ | ✓ |
| Crear nuevo paciente | ✓ | — | — |
| Editar informacion del paciente (nombre, fecha de nacimiento, contacto, etc.) | ✓ | — | — |
| Editar historial medico | ✓ | — | — |
| Editar alergias | ✓ | — | — |
| Editar estado de aptitud | ✓ | — | — |
| Cambiar estado del paciente | ✓ | — | — |
| Subir / eliminar imagenes | ✓ | — | — |
| Exportar PDF (requiere PIN) | ✓ | ✓ | ✓ |
| Exportar FHIR R4 JSON | ✓ | ✓ | ✓ |
| Enviar registro por correo a otro medico | ✓ | ✓ | ✓ |
| Eliminacion temporal de paciente (papelera) | — | ✓ | ✓ |
| Ver pacientes en papelera | — | — | ✓ |
| Eliminar paciente permanentemente | — | — | ✓ |
| Eliminacion masiva de pacientes | — | — | ✓ |
Explicacion
Solo los medicos pueden crear, editar y gestionar registros de pacientes. Los administradores y superadministradores tienen acceso de solo lectura a todos los datos de pacientes — pueden ver Informacion Basica, Antecedentes Medicos, Alergias, Aptitud y Consultas, pero no pueden modificar ninguna informacion clinica. Las diferencias clave estan en la eliminacion:
- Los medicos no pueden eliminar pacientes en absoluto. Solo pueden crear y editar registros.
- Los administradores pueden eliminar temporalmente (mover a papelera) un paciente, lo que oculta al paciente de la lista regular pero no destruye los datos. Cuando un administrador mueve un paciente a la papelera, todos los superadministradores son notificados por correo electronico.
- Los superadministradores pueden ver los pacientes en papelera y eliminarlos permanentemente. Esta es una accion destructiva e irreversible. Los superadministradores tambien pueden eliminar masivamente multiples pacientes a la vez.
Auto-registro de Pacientes
Los pacientes pueden enviar un formulario de pre-consulta a traves de una URL publica (sin necesidad de iniciar sesion). Esto crea un registro de paciente con estado pending_intake. Cualquier medico o administrador puede entonces revisar y completar el registro desde el Panel Principal.
Visits & Medical Records
Adding, editing, and exporting clinical visit records.
| Feature | Doctor | Admin | Superadmin |
|---|---|---|---|
| Add visit (any specialty) | ✓ | — | — |
| Edit existing visit | ✓ | — | — |
| Delete visit | ✓ | — | — |
| ICD-10 diagnosis search | ✓ | — | — |
| Prescribe medications | ✓ | — | — |
| Edit visit date (retroactive) | ✓ | — | — |
Explanation
Visit management is exclusively a doctor function. Admins and superadmins can view all visit records but cannot create, edit, or delete visits.
Supported Specialties
ProjectMed supports 12 specialty visit templates, each with specialty-specific fields:
- General / Sports Medicine — SOAP format with vitals, physical exam, assessment, plan
- Internal Medicine — Problem list with status tracking, review of systems
- OB/GYN — Prenatal and gynecological visits with specialized forms
- Psychology — Session type, mental status exam (MSE), risk assessment, interventions
- Pediatrics — Growth milestones, developmental screening, vaccines
- Dermatology — Lesion tracking, ABCDE assessment, full body skin exam
- Nutrition — Anthropometry, dietary assessment, meal planning
- TCM (Traditional Chinese Medicine) — Tongue/pulse diagnosis, zangfu patterns, herbal formulas
- Bone Setting — Orthopedic tests, manual therapy techniques, rehabilitation
- Rehabilitation — Functional assessment, therapy protocols
ICD-10 Codes
All specialty visit forms include an ICD-10 diagnosis search. Doctors can type a diagnosis name or ICD-10 code, and the system suggests matching entries from the built-in database (multilingual: English, Spanish, Chinese). ICD-10 codes are saved alongside the diagnosis text and appear in both the on-screen visit display and PDF/FHIR exports.
看診與醫療紀錄
新增、編輯及匯出臨床看診紀錄。
| 功能 | 醫師 | 管理員 | 超級管理員 |
|---|---|---|---|
| 新增看診(任何專科) | ✓ | — | — |
| 編輯既有看診紀錄 | ✓ | — | — |
| 刪除看診紀錄 | ✓ | — | — |
| ICD-10 診斷碼搜尋 | ✓ | — | — |
| 開立處方 | ✓ | — | — |
| 編輯看診日期(可追溯) | ✓ | — | — |
說明
看診管理完全是醫師的功能。管理員和超級管理員可以查看所有看診紀錄,但無法建立、編輯或刪除看診紀錄。
支援的專科
ProjectMed 支援 12 種專科看診模板,每種都有專科特定的欄位:
- 一般科/運動醫學 — SOAP 格式,含生命徵象、體格檢查、評估、計畫
- 內科 — 問題清單與狀態追蹤、系統回顧
- 婦產科 — 產前及婦科看診,含專科表單
- 心理科 — 療程類型、精神狀態檢查(MSE)、風險評估、介入措施
- 小兒科 — 生長里程碑、發展篩檢、疫苗接種
- 皮膚科 — 病灶追蹤、ABCDE 評估、全身皮膚檢查
- 營養科 — 人體測量、飲食評估、膳食計畫
- 中醫 — 舌診/脈診、臟腑辨證、方劑處方
- 傷科(骨傷科) — 骨科檢查、手法治療技術、復健
- 復健科 — 功能評估、治療方案
ICD-10 診斷碼
所有專科看診表單都包含 ICD-10 診斷碼搜尋功能。醫師可以輸入診斷名稱或 ICD-10 代碼,系統會從內建資料庫中建議匹配的項目(多語言:英文、西班牙文、中文)。ICD-10 代碼會與診斷文字一起儲存,並同時顯示在螢幕上的看診紀錄和 PDF/FHIR 匯出中。
Consultas y Registros Medicos
Agregar, editar y exportar registros de consultas clinicas.
| Funcion | Medico | Administrador | Superadmin |
|---|---|---|---|
| Agregar consulta (cualquier especialidad) | ✓ | — | — |
| Editar consulta existente | ✓ | — | — |
| Eliminar consulta | ✓ | — | — |
| Busqueda de diagnostico ICD-10 | ✓ | — | — |
| Prescribir medicamentos | ✓ | — | — |
| Editar fecha de consulta (retroactiva) | ✓ | — | — |
Explicacion
La gestion de consultas es exclusivamente una funcion del medico. Los administradores y superadministradores pueden ver todos los registros de consultas pero no pueden crear, editar o eliminar consultas.
Especialidades Soportadas
ProjectMed soporta 12 plantillas de consulta por especialidad, cada una con campos especificos:
- General / Medicina Deportiva — Formato SOAP con signos vitales, examen fisico, evaluacion, plan
- Medicina Interna — Lista de problemas con seguimiento de estado, revision por sistemas
- Obstetricia/Ginecologia — Consultas prenatales y ginecologicas con formularios especializados
- Psicologia — Tipo de sesion, examen del estado mental (MSE), evaluacion de riesgo, intervenciones
- Pediatria — Hitos de crecimiento, evaluacion del desarrollo, vacunas
- Dermatologia — Seguimiento de lesiones, evaluacion ABCDE, examen cutaneo corporal completo
- Nutricion — Antropometria, evaluacion dietetica, planificacion de comidas
- Medicina Tradicional China (MTC) — Diagnostico de lengua/pulso, patrones zangfu, formulas herbales
- Traumatologia Osea — Pruebas ortopedicas, tecnicas de terapia manual, rehabilitacion
- Rehabilitacion — Evaluacion funcional, protocolos de terapia
Codigos ICD-10
Todos los formularios de consulta por especialidad incluyen busqueda de diagnostico ICD-10. Los medicos pueden escribir un nombre de diagnostico o codigo ICD-10, y el sistema sugiere coincidencias de la base de datos integrada (multilingue: ingles, espanol, chino). Los codigos ICD-10 se guardan junto al texto del diagnostico y aparecen tanto en la pantalla de la consulta como en las exportaciones PDF/FHIR.
Doctor Management
Adding, approving, and managing doctor accounts.
| Feature | Doctor | Admin | Superadmin |
|---|---|---|---|
| View doctors list | — | ✓ | ✓ |
| Create doctor account | — | ✓ | ✓ |
| Edit doctor details | — | ✓ | ✓ |
| Change doctor status | — | ✓ | ✓ |
| Unlock locked account | — | ✓ | ✓ |
| Reset doctor password | — | ✓ | ✓ |
| Edit clinic email | — | ✓ | ✓ |
| Delete single doctor | — | ✓ | ✓ |
| Bulk import doctors (CSV) | — | ✓ | ✓ |
| Assign doctor to group | — | — | ✓ |
| Bulk delete doctors | — | — | ✓ |
Explanation
Doctors have no access to the Doctor Management page at all. This is an administrative function reserved for Admins and Superadmins.
- Admins can perform all day-to-day doctor management tasks: creating accounts, changing statuses (Active, Pending, On Vacation, Suspended, etc.), unlocking locked accounts, and resetting passwords. When an admin creates a doctor, a temporary password is auto-generated and emailed to the doctor.
- Superadmins gain two additional powers: assigning doctors to specific groups and bulk-deleting multiple doctors at once.
Doctor Statuses
| Status | Meaning |
|---|---|
pending | Newly registered, awaiting approval. Cannot log in yet. |
active / approved | Fully operational. Can log in and use all clinical features. |
on_vacation | Temporarily away. Account remains active but flagged. |
on_leave | Extended leave. Account remains but flagged. |
suspended | Temporarily disabled by admin. Cannot log in. |
inactive | Permanently deactivated. Cannot log in. |
Self-Registration
Doctors can self-register via the public registration page. Self-registered accounts start with pending status and must be approved by an Admin or Superadmin before the doctor can log in. When approved, the doctor receives an email notification.
醫師管理
新增、核准及管理醫師帳戶。
| 功能 | 醫師 | 管理員 | 超級管理員 |
|---|---|---|---|
| 檢視醫師列表 | — | ✓ | ✓ |
| 建立醫師帳戶 | — | ✓ | ✓ |
| 編輯醫師資訊 | — | ✓ | ✓ |
| 變更醫師狀態 | — | ✓ | ✓ |
| 解鎖已鎖定的帳戶 | — | ✓ | ✓ |
| 重設醫師密碼 | — | ✓ | ✓ |
| 編輯診所電子郵件 | — | ✓ | ✓ |
| 刪除單一醫師 | — | ✓ | ✓ |
| 批量匯入醫師(CSV) | — | ✓ | ✓ |
| 將醫師分配至群組 | — | — | ✓ |
| 批量刪除醫師 | — | — | ✓ |
說明
醫師完全無法存取醫師管理頁面。這是專屬於管理員和超級管理員的行政功能。
- 管理員可以執行所有日常醫師管理任務:建立帳戶、變更狀態(啟用、待審核、休假中、停權等)、解鎖已鎖定的帳戶及重設密碼。當管理員建立醫師帳戶時,系統會自動產生臨時密碼並透過電子郵件發送給醫師。
- 超級管理員額外擁有兩項權力:將醫師分配至特定群組,以及一次批量刪除多位醫師。
醫師狀態
| 狀態 | 意義 |
|---|---|
pending | 新註冊,等待核准。尚無法登入。 |
active / approved | 正常運作中。可登入並使用所有臨床功能。 |
on_vacation | 暫時離開。帳戶仍為啟用狀態但已標記。 |
on_leave | 長期請假。帳戶保留但已標記。 |
suspended | 被管理員暫時停權。無法登入。 |
inactive | 永久停用。無法登入。 |
自助註冊
醫師可以透過公開註冊頁面自行註冊。自行註冊的帳戶初始狀態為 pending,必須由管理員或超級管理員核准後才能登入。核准後,醫師會收到電子郵件通知。
Gestion de Medicos
Agregar, aprobar y gestionar cuentas de medicos.
| Funcion | Medico | Administrador | Superadmin |
|---|---|---|---|
| Ver lista de medicos | — | ✓ | ✓ |
| Crear cuenta de medico | — | ✓ | ✓ |
| Editar detalles del medico | — | ✓ | ✓ |
| Cambiar estado del medico | — | ✓ | ✓ |
| Desbloquear cuenta bloqueada | — | ✓ | ✓ |
| Restablecer contrasena del medico | — | ✓ | ✓ |
| Editar correo de clinica | — | ✓ | ✓ |
| Eliminar un medico | — | ✓ | ✓ |
| Importacion masiva de medicos (CSV) | — | ✓ | ✓ |
| Asignar medico a un grupo | — | — | ✓ |
| Eliminacion masiva de medicos | — | — | ✓ |
Explicacion
Los medicos no tienen acceso a la pagina de Gestion de Medicos en absoluto. Esta es una funcion administrativa reservada para Administradores y Superadministradores.
- Los administradores pueden realizar todas las tareas diarias de gestion de medicos: crear cuentas, cambiar estados (Activo, Pendiente, De Vacaciones, Suspendido, etc.), desbloquear cuentas bloqueadas y restablecer contrasenas. Cuando un administrador crea un medico, se genera automaticamente una contrasena temporal y se envia por correo al medico.
- Los superadministradores obtienen dos poderes adicionales: asignar medicos a grupos especificos y eliminar masivamente multiples medicos a la vez.
Estados del Medico
| Estado | Significado |
|---|---|
pending | Recien registrado, esperando aprobacion. Aun no puede iniciar sesion. |
active / approved | Completamente operativo. Puede iniciar sesion y usar todas las funciones clinicas. |
on_vacation | Temporalmente ausente. La cuenta permanece activa pero marcada. |
on_leave | Licencia extendida. La cuenta permanece pero marcada. |
suspended | Temporalmente deshabilitado por el administrador. No puede iniciar sesion. |
inactive | Desactivado permanentemente. No puede iniciar sesion. |
Auto-registro
Los medicos pueden auto-registrarse a traves de la pagina publica de registro. Las cuentas auto-registradas comienzan con estado pending y deben ser aprobadas por un Administrador o Superadministrador antes de que el medico pueda iniciar sesion. Al ser aprobado, el medico recibe una notificacion por correo electronico.
Admin Management
Managing administrator accounts. Superadmin-only.
| Feature | Doctor | Admin | Superadmin |
|---|---|---|---|
| View admins list | — | — | ✓ |
| Create admin account | — | — | ✓ |
| Edit admin details | — | — | ✓ |
| Delete admin | — | — | ✓ |
| Approve / reject pending admin | — | — | ✓ |
| Unlock locked admin | — | — | ✓ |
| Reset admin password | — | — | ✓ |
| Assign admin to group | — | — | ✓ |
| Edit admin clinic email | — | — | ✓ |
| Manage groups (create/edit/delete) | — | — | ✓ |
Explanation
Admin management is exclusively a Superadmin function. Neither Doctors nor Admins can see or access the Admin Management page.
This is a deliberate security measure: only the platform owner (Superadmin) should be able to create, modify, or remove administrative accounts, since admins have elevated privileges over doctor accounts and patient data.
Admin Registration
Admins can request an account via the public admin registration page. These requests start with pending status and must be approved by a Superadmin, who assigns their role and group during the approval process.
管理員管理
管理管理員帳戶。僅限超級管理員。
| 功能 | 醫師 | 管理員 | 超級管理員 |
|---|---|---|---|
| 檢視管理員列表 | — | — | ✓ |
| 建立管理員帳戶 | — | — | ✓ |
| 編輯管理員資訊 | — | — | ✓ |
| 刪除管理員 | — | — | ✓ |
| 核准/拒絕待審管理員 | — | — | ✓ |
| 解鎖已鎖定的管理員 | — | — | ✓ |
| 重設管理員密碼 | — | — | ✓ |
| 將管理員分配至群組 | — | — | ✓ |
| 編輯管理員診所電子郵件 | — | — | ✓ |
| 管理群組(建立/編輯/刪除) | — | — | ✓ |
說明
管理員管理是超級管理員的專屬功能。醫師和管理員都無法查看或存取管理員管理頁面。
這是一項刻意的安全措施:只有平台擁有者(超級管理員)才能建立、修改或移除管理員帳戶,因為管理員對醫師帳戶和病患資料擁有較高的權限。
管理員註冊
管理員可以透過公開的管理員註冊頁面申請帳戶。這些申請的初始狀態為 pending,必須由超級管理員核准,超級管理員會在核准過程中分配角色和群組。
Gestion de Administradores
Gestion de cuentas de administrador. Solo para Superadministradores.
| Funcion | Medico | Administrador | Superadmin |
|---|---|---|---|
| Ver lista de administradores | — | — | ✓ |
| Crear cuenta de administrador | — | — | ✓ |
| Editar detalles del administrador | — | — | ✓ |
| Eliminar administrador | — | — | ✓ |
| Aprobar / rechazar administrador pendiente | — | — | ✓ |
| Desbloquear administrador bloqueado | — | — | ✓ |
| Restablecer contrasena de administrador | — | — | ✓ |
| Asignar administrador a un grupo | — | — | ✓ |
| Editar correo de clinica del administrador | — | — | ✓ |
| Gestionar grupos (crear/editar/eliminar) | — | — | ✓ |
Explicacion
La gestion de administradores es exclusivamente una funcion del Superadministrador. Ni los Medicos ni los Administradores pueden ver o acceder a la pagina de Gestion de Administradores.
Esta es una medida de seguridad deliberada: solo el propietario de la plataforma (Superadministrador) debe poder crear, modificar o eliminar cuentas administrativas, ya que los administradores tienen privilegios elevados sobre las cuentas de medicos y los datos de pacientes.
Registro de Administradores
Los administradores pueden solicitar una cuenta a traves de la pagina publica de registro de administradores. Estas solicitudes comienzan con estado pending y deben ser aprobadas por un Superadministrador, quien asigna el rol y grupo durante el proceso de aprobacion.
Groups
Organizing doctors and admins into clinics or teams.
| Feature | Doctor | Admin | Superadmin |
|---|---|---|---|
| View groups | — | ✓ | ✓ |
| Create group | — | ✓ | ✓ |
| Edit own group | — | ✓ | ✓ |
| Delete group | — | — | ✓ |
| Cascade doctors when changing admin group | — | — | ✓ |
| Request group transfer | ✓ | — | — |
Explanation
Groups represent clinics, teams, or organizational units. They are used to organize doctors and admins, though patient visibility is not restricted by group.
- Admins can create groups and edit the group they belong to (name and description).
- Superadmins can additionally delete groups and edit any group.
Cascade Group Change
When a superadmin changes an admin's group, they are prompted with a checkbox to optionally move all doctors in that group. A warning shows the count of affected doctors.
Group Transfer Requests
Doctors can request a group transfer from their profile page. The admin of the doctor's current group (or any superadmin) can approve or reject the request.
群組
將醫師和管理員組織為診所或團隊。
| 功能 | 醫師 | 管理員 | 超級管理員 |
|---|---|---|---|
| 檢視群組 | — | ✓ | ✓ |
| 建立群組 | — | ✓ | ✓ |
| 編輯自己的群組 | — | ✓ | ✓ |
| 刪除群組 | — | — | ✓ |
| 變更管理員群組時連動醫師 | — | — | ✓ |
| 申請群組轉移 | ✓ | — | — |
說明
群組代表診所、團隊或組織單位。用於組織醫師和管理員,但病患可見性不受群組限制。
- 管理員可以建立群組並編輯自己所屬的群組(名稱和說明)。
- 超級管理員另外還可以刪除群組和編輯任何群組。
連動群組變更
當超級管理員變更管理員的群組時,系統會提示一個勾選框,可選擇是否同時移動該群組中的所有醫師。警告訊息會顯示受影響的醫師數量。
群組轉移申請
醫師可以從個人檔案頁面申請群組轉移。醫師當前群組的管理員(或任何超級管理員)可以核准或拒絕該申請。
Grupos
Organizacion de medicos y administradores en clinicas o equipos.
| Funcion | Medico | Administrador | Superadmin |
|---|---|---|---|
| Ver grupos | — | ✓ | ✓ |
| Crear grupo | — | ✓ | ✓ |
| Editar grupo propio | — | ✓ | ✓ |
| Eliminar grupo | — | — | ✓ |
| Transferir medicos en cascada al cambiar grupo del administrador | — | — | ✓ |
| Solicitar transferencia de grupo | ✓ | — | — |
Explicacion
Los grupos representan clinicas, equipos o unidades organizativas. Se utilizan para organizar medicos y administradores, aunque la visibilidad de pacientes no esta restringida por grupo.
- Los administradores pueden crear grupos y editar el grupo al que pertenecen (nombre y descripcion).
- Los superadministradores adicionalmente pueden eliminar grupos y editar cualquier grupo.
Cambio de Grupo en Cascada
Cuando un superadministrador cambia el grupo de un administrador, se le presenta una casilla de verificacion para opcionalmente mover a todos los medicos de ese grupo. Una advertencia muestra la cantidad de medicos afectados.
Solicitudes de Transferencia de Grupo
Los medicos pueden solicitar una transferencia de grupo desde su pagina de perfil. El administrador del grupo actual del medico (o cualquier superadministrador) puede aprobar o rechazar la solicitud.
Audit & System
Activity tracking, system monitoring, and data backup.
| Feature | Doctor | Admin | Superadmin |
|---|---|---|---|
| View audit logs | — | ✓ | ✓ |
| Filter by action / date range | — | ✓ | ✓ |
| Select display timezone | — | ✓ | ✓ |
| Bulk delete audit logs | — | — | ✓ |
| Clear all audit logs | — | — | ✓ |
| View system overview (email stats, services) | — | — | ✓ |
| Export full system backup (JSON) | — | — | ✓ |
Explanation
Every significant action in ProjectMed is logged in the audit trail: logins, patient views, record changes, exports, account management, and more. Each log entry records who performed the action, what was done, when it happened, and who or what was affected.
- Admins can view and filter audit logs. Their view is scoped to their own group's activity.
- Superadmins see all audit logs across all groups and can delete logs (individually, in bulk, or clear all). They also have access to a system overview dashboard showing email usage statistics and service plan information.
Tracked Actions
The following actions are automatically logged:
- Authentication: login
- Patients: view, create, update, trash, delete, add/edit/delete visit, export PDF, export FHIR, email record, upload/delete image
- Doctors: create, update, delete, unlock, reset password, set/remove PIN
- Admins: create, update, delete, unlock, reset password, set/remove PIN, approve, reject
- Groups: create, update, delete
- System: export backup, delete audit logs, clear all audit logs
稽核與系統
活動追蹤、系統監控及資料備份。
| 功能 | 醫師 | 管理員 | 超級管理員 |
|---|---|---|---|
| 檢視稽核紀錄 | — | ✓ | ✓ |
| 依操作類型/日期範圍篩選 | — | ✓ | ✓ |
| 選擇顯示時區 | — | ✓ | ✓ |
| 批量刪除稽核紀錄 | — | — | ✓ |
| 清除所有稽核紀錄 | — | — | ✓ |
| 檢視系統概覽(電子郵件統計、服務資訊) | — | — | ✓ |
| 匯出完整系統備份(JSON) | — | — | ✓ |
說明
ProjectMed 中的每一項重要操作都會記錄在稽核軌跡中:登入、病患檢視、紀錄變更、匯出、帳戶管理等。每一筆紀錄記載了執行者、操作內容、發生時間及受影響的對象。
- 管理員可以檢視和篩選稽核紀錄。其檢視範圍限於自身群組的活動。
- 超級管理員可以查看所有群組的稽核紀錄,並可刪除紀錄(單筆、批量或全部清除)。他們還可以存取系統概覽儀表板,顯示電子郵件使用統計和服務方案資訊。
追蹤的操作
以下操作會自動記錄:
- 身分驗證:登入
- 病患:檢視、建立、更新、移至回收站、刪除、新增/編輯/刪除看診、匯出 PDF、匯出 FHIR、郵件發送紀錄、上傳/刪除影像
- 醫師:建立、更新、刪除、解鎖、重設密碼、設定/移除 PIN
- 管理員:建立、更新、刪除、解鎖、重設密碼、設定/移除 PIN、核准、拒絕
- 群組:建立、更新、刪除
- 系統:匯出備份、刪除稽核紀錄、清除所有稽核紀錄
Auditoria y Sistema
Seguimiento de actividad, monitoreo del sistema y respaldo de datos.
| Funcion | Medico | Administrador | Superadmin |
|---|---|---|---|
| Ver registros de auditoria | — | ✓ | ✓ |
| Filtrar por accion / rango de fechas | — | ✓ | ✓ |
| Seleccionar zona horaria de visualizacion | — | ✓ | ✓ |
| Eliminacion masiva de registros de auditoria | — | — | ✓ |
| Borrar todos los registros de auditoria | — | — | ✓ |
| Ver resumen del sistema (estadisticas de correo, servicios) | — | — | ✓ |
| Exportar respaldo completo del sistema (JSON) | — | — | ✓ |
Explicacion
Cada accion significativa en ProjectMed se registra en la pista de auditoria: inicios de sesion, vistas de pacientes, cambios en registros, exportaciones, gestion de cuentas y mas. Cada entrada del registro indica quien realizo la accion, que se hizo, cuando ocurrio y quien o que fue afectado.
- Los administradores pueden ver y filtrar registros de auditoria. Su vista esta limitada a la actividad de su propio grupo.
- Los superadministradores ven todos los registros de auditoria de todos los grupos y pueden eliminar registros (individualmente, masivamente o borrar todos). Tambien tienen acceso a un panel de resumen del sistema que muestra estadisticas de uso de correo e informacion del plan de servicio.
Acciones Rastreadas
Las siguientes acciones se registran automaticamente:
- Autenticacion: inicio de sesion
- Pacientes: ver, crear, actualizar, mover a papelera, eliminar, agregar/editar/eliminar consulta, exportar PDF, exportar FHIR, enviar registro por correo, subir/eliminar imagen
- Medicos: crear, actualizar, eliminar, desbloquear, restablecer contrasena, establecer/eliminar PIN
- Administradores: crear, actualizar, eliminar, desbloquear, restablecer contrasena, establecer/eliminar PIN, aprobar, rechazar
- Grupos: crear, actualizar, eliminar
- Sistema: exportar respaldo, eliminar registros de auditoria, borrar todos los registros de auditoria
Profile & Account
Managing personal settings, passwords, and PINs.
| Feature | Doctor | Admin | Superadmin |
|---|---|---|---|
| Edit name | ✓ | ✓ | ✓ |
| Edit specialty, license number, ID number | ✓ | — | — |
| Edit timezone | ✓ | ✓ | ✓ |
| View clinic email (read-only) | ✓ | ✓ | ✓ |
| Change password | ✓ | ✓ | ✓ |
| Set / update PIN | ✓ | ✓ | ✓ |
| Remove PIN | ✓ | ✓ | ✓ |
| Request group transfer | ✓ | — | — |
Explanation
All users access the My Profile page to manage their personal settings. The main differences:
- Doctors have additional profile fields (specialty, license number, ID number) that Admins and Superadmins do not have, since these are clinical credentials.
- All roles can change their password and manage their PIN. Password changes require the current password. PIN is required for PDF exports.
Password Requirements
- Minimum 8 characters
- At least one uppercase letter, one lowercase letter, one digit, and one special character
- Cannot reuse the last 5 passwords
PIN Requirements
- Exactly 6 digits
- Cannot use sequences from date of birth or license number
個人檔案與帳戶
管理個人設定、密碼和 PIN。
| 功能 | 醫師 | 管理員 | 超級管理員 |
|---|---|---|---|
| 編輯姓名 | ✓ | ✓ | ✓ |
| 編輯專科、執照號碼、身分證號 | ✓ | — | — |
| 編輯時區 | ✓ | ✓ | ✓ |
| 檢視診所電子郵件(唯讀) | ✓ | ✓ | ✓ |
| 變更密碼 | ✓ | ✓ | ✓ |
| 設定/更新 PIN | ✓ | ✓ | ✓ |
| 移除 PIN | ✓ | ✓ | ✓ |
| 申請群組轉移 | ✓ | — | — |
說明
所有使用者都可透過「我的檔案」頁面管理個人設定。主要差異:
- 醫師擁有額外的個人檔案欄位(專科、執照號碼、身分證號),管理員和超級管理員沒有這些欄位,因為這些屬於臨床證照資訊。
- 所有角色都可以變更密碼和管理 PIN。變更密碼需要輸入現有密碼。匯出 PDF 時需要 PIN。
密碼要求
- 最少 8 個字元
- 至少包含一個大寫字母、一個小寫字母、一個數字和一個特殊字元
- 不能重複使用最近 5 次的密碼
PIN 要求
- 恰好 6 位數字
- 不能使用來自出生日期或執照號碼的序列
Perfil y Cuenta
Gestion de configuraciones personales, contrasenas y PINs.
| Funcion | Medico | Administrador | Superadmin |
|---|---|---|---|
| Editar nombre | ✓ | ✓ | ✓ |
| Editar especialidad, numero de licencia, numero de identificacion | ✓ | — | — |
| Editar zona horaria | ✓ | ✓ | ✓ |
| Ver correo de clinica (solo lectura) | ✓ | ✓ | ✓ |
| Cambiar contrasena | ✓ | ✓ | ✓ |
| Establecer / actualizar PIN | ✓ | ✓ | ✓ |
| Eliminar PIN | ✓ | ✓ | ✓ |
| Solicitar transferencia de grupo | ✓ | — | — |
Explicacion
Todos los usuarios acceden a la pagina Mi Perfil para gestionar sus configuraciones personales. Las principales diferencias:
- Los medicos tienen campos de perfil adicionales (especialidad, numero de licencia, numero de identificacion) que los Administradores y Superadministradores no tienen, ya que son credenciales clinicas.
- Todos los roles pueden cambiar su contrasena y gestionar su PIN. Los cambios de contrasena requieren la contrasena actual. El PIN es necesario para exportar PDFs.
Requisitos de Contrasena
- Minimo 8 caracteres
- Al menos una letra mayuscula, una minuscula, un digito y un caracter especial
- No se pueden reutilizar las ultimas 5 contrasenas
Requisitos de PIN
- Exactamente 6 digitos
- No se pueden usar secuencias de la fecha de nacimiento o numero de licencia
Authentication & Security
Login methods, account recovery, and security measures.
| Feature | Public | Doctor | Admin | Superadmin |
|---|---|---|---|---|
| Doctor self-registration | ✓ | — | — | — |
| Admin registration request | ✓ | — | — | — |
| Admin registration with group selection | ✓ | — | — | — |
| Patient self-intake form | ✓ | — | — | — |
| Forgot password (OTP reset) | ✓ | — | — | — |
| Forgot PIN (OTP reset) | ✓ | — | — | — |
| Forgot email (ID lookup) | ✓ | — | — | — |
| Login with password | — | ✓ | ✓ | ✓ |
| Login with PIN | — | ✓ | ✓ | ✓ |
Login Security
ProjectMed enforces a progressive lockout policy to protect against brute-force attacks:
- 5 failed password attempts → User must switch to PIN-only login
- 5 failed PIN attempts → Account is locked
- 10 total failed attempts → User must reset both password and PIN
Account Recovery Escalation
If a user loses access to their registered email:
- Doctor → contacts their Admin
- Admin → contacts the Superadmin
- Superadmin can manually reset from the Admin Management screen
身分驗證與安全
登入方式、帳戶恢復及安全措施。
| 功能 | 公開 | 醫師 | 管理員 | 超級管理員 |
|---|---|---|---|---|
| 醫師自助註冊 | ✓ | — | — | — |
| 管理員註冊申請 | ✓ | — | — | — |
| 管理員註冊含群組選擇 | ✓ | — | — | — |
| 病患自助填寫表單 | ✓ | — | — | — |
| 忘記密碼(OTP 重設) | ✓ | — | — | — |
| 忘記 PIN(OTP 重設) | ✓ | — | — | — |
| 忘記電子郵件(身分證號查詢) | ✓ | — | — | — |
| 使用密碼登入 | — | ✓ | ✓ | ✓ |
| 使用 PIN 登入 | — | ✓ | ✓ | ✓ |
登入安全
ProjectMed 實施漸進式鎖定政策以防止暴力破解攻擊:
- 密碼錯誤 5 次 → 使用者必須改用 PIN 登入
- PIN 錯誤 5 次 → 帳戶被鎖定
- 累計錯誤 10 次 → 使用者必須同時重設密碼和 PIN
帳戶恢復升級機制
如果使用者無法存取已註冊的電子郵件:
- 醫師 → 聯絡其管理員
- 管理員 → 聯絡超級管理員
- 超級管理員可以從管理員管理畫面手動重設
Autenticacion y Seguridad
Metodos de inicio de sesion, recuperacion de cuenta y medidas de seguridad.
| Funcion | Publico | Medico | Administrador | Superadmin |
|---|---|---|---|---|
| Auto-registro de medico | ✓ | — | — | — |
| Solicitud de registro de administrador | ✓ | — | — | — |
| Registro de administrador con seleccion de grupo | ✓ | — | — | — |
| Formulario de auto-registro de paciente | ✓ | — | — | — |
| Olvide mi contrasena (restablecimiento OTP) | ✓ | — | — | — |
| Olvide mi PIN (restablecimiento OTP) | ✓ | — | — | — |
| Olvide mi correo (busqueda por ID) | ✓ | — | — | — |
| Iniciar sesion con contrasena | — | ✓ | ✓ | ✓ |
| Iniciar sesion con PIN | — | ✓ | ✓ | ✓ |
Seguridad de Inicio de Sesion
ProjectMed aplica una politica de bloqueo progresivo para proteger contra ataques de fuerza bruta:
- 5 intentos fallidos con contrasena → El usuario debe cambiar a inicio de sesion solo con PIN
- 5 intentos fallidos con PIN → La cuenta se bloquea
- 10 intentos fallidos en total → El usuario debe restablecer tanto la contrasena como el PIN
Escalamiento de Recuperacion de Cuenta
Si un usuario pierde acceso a su correo electronico registrado:
- Medico → contacta a su Administrador
- Administrador → contacta al Superadministrador
- Superadministrador puede restablecer manualmente desde la pantalla de Gestion de Administradores
Quick Summary
At-a-glance reference of all role capabilities.
| Capability | Doctor | Admin | Superadmin |
|---|---|---|---|
| View / search patients | ✓ | ✓ | ✓ |
| Create / edit patients | ✓ | — | — |
| Add / edit / delete visits | ✓ | — | — |
| Export PDF / FHIR | ✓ | ✓ | ✓ |
| Upload patient images | ✓ | — | — |
| Request group transfer | ✓ | — | — |
| Email records to doctors | ✓ | ✓ | ✓ |
| Manage own profile / PIN | ✓ | ✓ | ✓ |
| Admin-level features | |||
| Manage doctors | — | ✓ | ✓ |
| View audit logs | — | ✓ | ✓ |
| Soft-delete (trash) patients | — | ✓ | ✓ |
| Create / edit groups | — | ✓ | ✓ |
| Superadmin-only features | |||
| Manage admins | — | — | ✓ |
| Permanently delete patients | — | — | ✓ |
| Bulk delete (doctors / patients) | — | — | ✓ |
| Delete / clear audit logs | — | — | ✓ |
| Delete groups | — | — | ✓ |
| System overview & email stats | — | — | ✓ |
| Export full system backup | — | — | ✓ |
| Cascade group with doctors | — | — | ✓ |
快速總覽
所有角色功能的一覽參考。
| 功能 | 醫師 | 管理員 | 超級管理員 |
|---|---|---|---|
| 檢視/搜尋病患 | ✓ | ✓ | ✓ |
| 建立/編輯病患 | ✓ | — | — |
| 新增/編輯/刪除看診 | ✓ | — | — |
| 匯出 PDF / FHIR | ✓ | ✓ | ✓ |
| 上傳病患影像 | ✓ | — | — |
| 申請群組轉移 | ✓ | — | — |
| 以郵件發送紀錄給醫師 | ✓ | ✓ | ✓ |
| 管理個人檔案 / PIN | ✓ | ✓ | ✓ |
| 管理員等級功能 | |||
| 管理醫師 | — | ✓ | ✓ |
| 檢視稽核紀錄 | — | ✓ | ✓ |
| 軟刪除(回收站)病患 | — | ✓ | ✓ |
| 建立/編輯群組 | — | ✓ | ✓ |
| 超級管理員專屬功能 | |||
| 管理管理員 | — | — | ✓ |
| 永久刪除病患 | — | — | ✓ |
| 批量刪除(醫師/病患) | — | — | ✓ |
| 刪除/清除稽核紀錄 | — | — | ✓ |
| 刪除群組 | — | — | ✓ |
| 系統概覽與電子郵件統計 | — | — | ✓ |
| 匯出完整系統備份 | — | — | ✓ |
| 連動群組與醫師 | — | — | ✓ |
Resumen Rapido
Referencia rapida de todas las capacidades por rol.
| Capacidad | Medico | Administrador | Superadmin |
|---|---|---|---|
| Ver / buscar pacientes | ✓ | ✓ | ✓ |
| Crear / editar pacientes | ✓ | — | — |
| Agregar / editar / eliminar consultas | ✓ | — | — |
| Exportar PDF / FHIR | ✓ | ✓ | ✓ |
| Subir imagenes de pacientes | ✓ | — | — |
| Solicitar transferencia de grupo | ✓ | — | — |
| Enviar registros por correo a medicos | ✓ | ✓ | ✓ |
| Gestionar perfil propio / PIN | ✓ | ✓ | ✓ |
| Funciones de nivel Administrador | |||
| Gestionar medicos | — | ✓ | ✓ |
| Ver registros de auditoria | — | ✓ | ✓ |
| Eliminacion temporal (papelera) de pacientes | — | ✓ | ✓ |
| Crear / editar grupos | — | ✓ | ✓ |
| Funciones exclusivas del Superadministrador | |||
| Gestionar administradores | — | — | ✓ |
| Eliminar pacientes permanentemente | — | — | ✓ |
| Eliminacion masiva (medicos / pacientes) | — | — | ✓ |
| Eliminar / borrar registros de auditoria | — | — | ✓ |
| Eliminar grupos | — | — | ✓ |
| Resumen del sistema y estadisticas de correo | — | — | ✓ |
| Exportar respaldo completo del sistema | — | — | ✓ |
| Transferencia de grupo en cascada con medicos | — | — | ✓ |
API Endpoints Reference
Backend route guards and access control for developers.
Every API endpoint is protected by one of three role guards:
| Guard | Allows | Used For |
|---|---|---|
require_doctor_or_admin | Doctor, Admin, Superadmin | Patient CRUD, visits, images, PDF/FHIR export, doctor self-profile |
require_admin | Admin, Superadmin | Doctor management, audit logs, soft-delete patients, groups |
require_superadmin | Superadmin only | Admin management, hard-delete, bulk operations, system backup, audit clearing |
Patient Endpoints
| Method | Path | Guard |
|---|---|---|
| GET | /patients/ | doctor_or_admin |
| GET | /patients/{id} | doctor_or_admin |
| POST | /patients/ | doctor |
| PUT | /patients/{id} | doctor |
| POST | /patients/{id}/trash | admin |
| DELETE | /patients/{id} | superadmin |
| DELETE | /patients/bulk | superadmin |
| POST | /patients/intake | public |
Visit Endpoints
| Method | Path | Guard |
|---|---|---|
| POST | /patients/{id}/visits | doctor |
| PUT | /patients/{id}/visits/{vid} | doctor |
| DELETE | /patients/{id}/visits/{vid} | doctor |
Export Endpoints
| Method | Path | Guard |
|---|---|---|
| GET | /patients/{id}/export | doctor_or_admin |
| GET | /patients/{id}/export-fhir | doctor_or_admin |
| POST | /patients/{id}/email-record | doctor_or_admin |
Doctor Endpoints
| Method | Path | Guard |
|---|---|---|
| GET | /doctors/ | admin |
| POST | /doctors/ | admin |
| PUT | /doctors/{id} | admin |
| DELETE | /doctors/{id} | admin |
| DELETE | /doctors/bulk | superadmin |
| GET/PUT | /doctors/me | doctor_or_admin |
Admin Endpoints
| Method | Path | Guard |
|---|---|---|
| GET | /admins/ | superadmin |
| POST | /admins/ | superadmin |
| PUT | /admins/{id} | superadmin |
| DELETE | /admins/{id} | superadmin |
| GET | /admins/export | superadmin |
Audit Endpoints
| Method | Path | Guard |
|---|---|---|
| GET | /audit/ | admin |
| DELETE | /audit/bulk | superadmin |
| DELETE | /audit/clear-all | superadmin |
Transfer Endpoints
| Method | Path | Guard |
|---|---|---|
| POST | /doctors/me/transfer-group | doctor |
| GET | /doctors/transfer-requests | admin |
| POST | /doctors/transfer-requests/{id}/approve | admin |
| POST | /doctors/transfer-requests/{id}/reject | admin |
API 端點參考
後端路由守衛與存取控制(開發者參考)。
每個 API 端點都受到三種角色守衛之一的保護:
| 守衛 | 允許角色 | 用途 |
|---|---|---|
require_doctor_or_admin | 醫師、管理員、超級管理員 | 病患 CRUD、看診、影像、PDF/FHIR 匯出、醫師個人檔案 |
require_admin | 管理員、超級管理員 | 醫師管理、稽核紀錄、軟刪除病患、群組 |
require_superadmin | 僅超級管理員 | 管理員管理、永久刪除、批量操作、系統備份、清除稽核紀錄 |
病患端點
| 方法 | 路徑 | 守衛 |
|---|---|---|
| GET | /patients/ | doctor_or_admin |
| GET | /patients/{id} | doctor_or_admin |
| POST | /patients/ | doctor |
| PUT | /patients/{id} | doctor |
| POST | /patients/{id}/trash | admin |
| DELETE | /patients/{id} | superadmin |
| DELETE | /patients/bulk | superadmin |
| POST | /patients/intake | public |
看診端點
| 方法 | 路徑 | 守衛 |
|---|---|---|
| POST | /patients/{id}/visits | doctor |
| PUT | /patients/{id}/visits/{vid} | doctor |
| DELETE | /patients/{id}/visits/{vid} | doctor |
匯出端點
| 方法 | 路徑 | 守衛 |
|---|---|---|
| GET | /patients/{id}/export | doctor_or_admin |
| GET | /patients/{id}/export-fhir | doctor_or_admin |
| POST | /patients/{id}/email-record | doctor_or_admin |
醫師端點
| 方法 | 路徑 | 守衛 |
|---|---|---|
| GET | /doctors/ | admin |
| POST | /doctors/ | admin |
| PUT | /doctors/{id} | admin |
| DELETE | /doctors/{id} | admin |
| DELETE | /doctors/bulk | superadmin |
| GET/PUT | /doctors/me | doctor_or_admin |
管理員端點
| 方法 | 路徑 | 守衛 |
|---|---|---|
| GET | /admins/ | superadmin |
| POST | /admins/ | superadmin |
| PUT | /admins/{id} | superadmin |
| DELETE | /admins/{id} | superadmin |
| GET | /admins/export | superadmin |
稽核端點
| 方法 | 路徑 | 守衛 |
|---|---|---|
| GET | /audit/ | admin |
| DELETE | /audit/bulk | superadmin |
| DELETE | /audit/clear-all | superadmin |
轉移端點
| 方法 | 路徑 | 守衛 |
|---|---|---|
| POST | /doctors/me/transfer-group | doctor |
| GET | /doctors/transfer-requests | admin |
| POST | /doctors/transfer-requests/{id}/approve | admin |
| POST | /doctors/transfer-requests/{id}/reject | admin |
Referencia de Endpoints API
Guardias de rutas del backend y control de acceso para desarrolladores.
Cada endpoint de la API esta protegido por uno de tres guardias de rol:
| Guardia | Permite | Uso |
|---|---|---|
require_doctor_or_admin | Medico, Administrador, Superadmin | CRUD de pacientes, consultas, imagenes, exportacion PDF/FHIR, perfil propio del medico |
require_admin | Administrador, Superadmin | Gestion de medicos, registros de auditoria, eliminacion temporal de pacientes, grupos |
require_superadmin | Solo Superadmin | Gestion de administradores, eliminacion permanente, operaciones masivas, respaldo del sistema, borrado de auditoria |
Endpoints de Pacientes
| Metodo | Ruta | Guardia |
|---|---|---|
| GET | /patients/ | doctor_or_admin |
| GET | /patients/{id} | doctor_or_admin |
| POST | /patients/ | doctor |
| PUT | /patients/{id} | doctor |
| POST | /patients/{id}/trash | admin |
| DELETE | /patients/{id} | superadmin |
| DELETE | /patients/bulk | superadmin |
| POST | /patients/intake | public |
Endpoints de Consultas
| Metodo | Ruta | Guardia |
|---|---|---|
| POST | /patients/{id}/visits | doctor |
| PUT | /patients/{id}/visits/{vid} | doctor |
| DELETE | /patients/{id}/visits/{vid} | doctor |
Endpoints de Exportacion
| Metodo | Ruta | Guardia |
|---|---|---|
| GET | /patients/{id}/export | doctor_or_admin |
| GET | /patients/{id}/export-fhir | doctor_or_admin |
| POST | /patients/{id}/email-record | doctor_or_admin |
Endpoints de Medicos
| Metodo | Ruta | Guardia |
|---|---|---|
| GET | /doctors/ | admin |
| POST | /doctors/ | admin |
| PUT | /doctors/{id} | admin |
| DELETE | /doctors/{id} | admin |
| DELETE | /doctors/bulk | superadmin |
| GET/PUT | /doctors/me | doctor_or_admin |
Endpoints de Administradores
| Metodo | Ruta | Guardia |
|---|---|---|
| GET | /admins/ | superadmin |
| POST | /admins/ | superadmin |
| PUT | /admins/{id} | superadmin |
| DELETE | /admins/{id} | superadmin |
| GET | /admins/export | superadmin |
Endpoints de Auditoria
| Metodo | Ruta | Guardia |
|---|---|---|
| GET | /audit/ | admin |
| DELETE | /audit/bulk | superadmin |
| DELETE | /audit/clear-all | superadmin |
Endpoints de Transferencia
| Metodo | Ruta | Guardia |
|---|---|---|
| POST | /doctors/me/transfer-group | doctor |
| GET | /doctors/transfer-requests | admin |
| POST | /doctors/transfer-requests/{id}/approve | admin |
| POST | /doctors/transfer-requests/{id}/reject | admin |