# zhengcookie/ruoyi-meditrust architecture

> Architecture diagram of the GitHub repository zhengcookie/ruoyi-meditrust, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/zhengcookie/ruoyi-meditrust
- Repository: https://github.com/zhengcookie/ruoyi-meditrust

## Overview

This repository is a Vue 3 and Spring Boot medical-management system, with RuoYi administration and a FISCO-BCOS-backed medical-record attestation capability. The documented user journey is patient/doctor registration or login, appointment application and review, then medical-record creation, viewing, and blockchain verification. The graph preserves these domain stages and the authentication/token layer, alongside administration, scheduling, and code-generation capabilities evident in the tree. Medical workflows and blockchain integration are described by the README and named modules; their detailed call wiring was not sampled.

Main entry points: [`ruoyi-web-vue3-ts/src/main.ts`](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/ruoyi-web-vue3-ts/src/main.ts) (Vue application), [`ruoyi-web-vue3-ts/src/router/constantRoutes.ts`](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/ruoyi-web-vue3-ts/src/router/constantRoutes.ts) (Patient and doctor routes), [`HRIP_Backend_match/ruoyi-system/src/main/java/com/ruoyi/system/domain/MedicalRecord.java`](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-system/src/main/java/com/ruoyi/system/domain/MedicalRecord.java) (Medical records), [`HRIP_Backend_match/ruoyi-system/src/main/java/com/ruoyi/system/domain/Appointments.java`](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-system/src/main/java/com/ruoyi/system/domain/Appointments.java) (Appointment domain)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_clients["User workflows"]
  node_web["Vue application<br/>[main.ts]"]
  node_routes["Patient and doctor routes<br/>[constantRoutes.ts]"]
end

subgraph group_medical["Medical services"]
  node_register["Registration"]
  node_appointments["Appointment domain<br/>[Appointments.java]"]
  node_records["Medical records<br/>[MedicalRecord.java]"]
  node_block_controller["Blockchain endpoints"]
  node_block_processor["Block processing"]
  node_medical_contract["Medical platform contract"]
end

subgraph group_security["Identity and access"]
  node_login["Login"]
  node_login_service["Login service"]
  node_token["Token service<br/>[TokenService.java]"]
  node_redis[("Redis cache<br/>[RedisCache.java]")]
end

subgraph group_platform["Administration platform"]
  node_sys_users["User administration"]
  node_jobs["Scheduled jobs"]
  node_generator["Code generation<br/>[GenController.java]"]
end

node_patient(("Patient"))
node_doctor(("Doctor"))
node_fisco{{"FISCO-BCOS"}}

node_patient -->|"uses"| node_web
node_doctor -->|"uses"| node_web
node_web -->|"mounts"| node_routes
node_routes -->|"registers"| node_register
node_routes -->|"authenticates"| node_login
node_routes -->|"requests appointments"| node_appointments
node_routes -->|"views records"| node_records
node_login -->|"delegates login"| node_login_service
node_login_service -->|"creates token"| node_token
node_token -->|"caches session"| node_redis
node_appointments -.->|"supports care history"| node_records
node_records -.->|"attests records"| node_block_controller
node_block_controller -->|"processes blocks"| node_block_processor
node_block_processor -->|"uses contract"| node_medical_contract
node_medical_contract -.->|"records evidence"| node_fisco
node_web -.->|"administers users"| node_sys_users
node_web -.->|"manages schedules"| node_jobs
node_web -.->|"requests generation"| node_generator

click node_web "https://github.com/zhengcookie/ruoyi-meditrust/blob/main/ruoyi-web-vue3-ts/src/main.ts"
click node_routes "https://github.com/zhengcookie/ruoyi-meditrust/blob/main/ruoyi-web-vue3-ts/src/router/constantRoutes.ts"
click node_register "https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java"
click node_login "https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java"
click node_login_service "https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java"
click node_token "https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java"
click node_redis "https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java"
click node_appointments "https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-system/src/main/java/com/ruoyi/system/domain/Appointments.java"
click node_records "https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-system/src/main/java/com/ruoyi/system/domain/MedicalRecord.java"
click node_block_controller "https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/BlockController.java"
click node_block_processor "https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/BlockDataProcessor.java"
click node_medical_contract "https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-system/src/main/java/com/ruoyi/system/contract/MedicalPlatform.java"
click node_sys_users "https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java"
click node_jobs "https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java"
click node_generator "https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web,node_routes toneBlue
class node_register,node_appointments,node_records,node_block_controller,node_block_processor,node_medical_contract toneAmber
class node_login,node_login_service,node_token,node_redis toneMint
class node_sys_users,node_jobs,node_generator toneRose
class node_patient,node_doctor,node_fisco toneIndigo
```

## Components

### User workflows

- [Vue application](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/ruoyi-web-vue3-ts/src/main.ts): `ruoyi-web-vue3-ts/src/main.ts`
- [Patient and doctor routes](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/ruoyi-web-vue3-ts/src/router/constantRoutes.ts): `ruoyi-web-vue3-ts/src/router/constantRoutes.ts`

### Medical services

- [Registration](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java): `HRIP_Backend_match/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java`
- [Appointment domain](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-system/src/main/java/com/ruoyi/system/domain/Appointments.java): `HRIP_Backend_match/ruoyi-system/src/main/java/com/ruoyi/system/domain/Appointments.java`
- [Medical records](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-system/src/main/java/com/ruoyi/system/domain/MedicalRecord.java): `HRIP_Backend_match/ruoyi-system/src/main/java/com/ruoyi/system/domain/MedicalRecord.java`
- [Blockchain endpoints](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/BlockController.java): `HRIP_Backend_match/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/BlockController.java`
- [Block processing](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/BlockDataProcessor.java): `HRIP_Backend_match/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/BlockDataProcessor.java`
- [Medical platform contract](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-system/src/main/java/com/ruoyi/system/contract/MedicalPlatform.java): `HRIP_Backend_match/ruoyi-system/src/main/java/com/ruoyi/system/contract/MedicalPlatform.java`

### Identity and access

- [Login](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java): `HRIP_Backend_match/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java`
- [Login service](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java): `HRIP_Backend_match/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java`
- [Token service](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java): `HRIP_Backend_match/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java`
- [Redis cache](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java): `HRIP_Backend_match/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java`

### Administration platform

- [User administration](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java): `HRIP_Backend_match/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java`
- [Scheduled jobs](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java): `HRIP_Backend_match/ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java`
- [Code generation](https://github.com/zhengcookie/ruoyi-meditrust/blob/main/HRIP_Backend_match/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java): `HRIP_Backend_match/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java`

### Other components

- **Patient**
- **Doctor**
- **FISCO-BCOS**

## Connections

- Patient → Vue application: uses
- Doctor → Vue application: uses
- Vue application → Patient and doctor routes: mounts
- Patient and doctor routes → Registration: registers
- Patient and doctor routes → Login: authenticates
- Patient and doctor routes → Appointment domain: requests appointments
- Patient and doctor routes → Medical records: views records
- Login → Login service: delegates login
- Login service → Token service: creates token
- Token service → Redis cache: caches session
- Appointment domain → Medical records: supports care history
- Medical records → Blockchain endpoints: attests records
- Blockchain endpoints → Block processing: processes blocks
- Block processing → Medical platform contract: uses contract
- Medical platform contract → FISCO-BCOS: records evidence
- Vue application → User administration: administers users
- Vue application → Scheduled jobs: manages schedules
- Vue application → Code generation: requests generation
