|
@@ -0,0 +1,340 @@
|
|
|
+# 医护云桥应用UML编写
|
|
|
+## 一、Schema范式设计
|
|
|
+### 用户模块
|
|
|
+- 功能描述:支持患者、专家医生、医学生等多种用户角色的注册和登录。
|
|
|
+- 分析:这一模块是用户体验的基础,确保用户能够顺利进入平台。需要考虑用户身份验证的安全性和便捷性,可能包括多因素认证等措施。
|
|
|
+为了设计一个用户模块的Parse Schema,我们需要考虑不同用户角色的需求,包括患者、专家医生和医学生。我们将创建一个用户表和相关的角色表,并确保遵循设计范式。以下是所需的Parse Schema范式表及具体字段名称的分析。
|
|
|
+
|
|
|
+#### 1.表设计
|
|
|
+
|
|
|
+1.1 **User** 表
|
|
|
+ - **objectId**: 唯一标识符
|
|
|
+ - **createdAt**: 创建时间
|
|
|
+ - **username**: 用户名
|
|
|
+ - **password**: 密码(建议加密存储)
|
|
|
+ - **email**: 邮箱
|
|
|
+ - **role**: 用户角色(Pointer<Role>)
|
|
|
+ - **isVerified**: 是否已验证(boolean)
|
|
|
+ - **lastLogin**: 最后登录时间
|
|
|
+
|
|
|
+1.2 **Role** 表
|
|
|
+ - **objectId**: 唯一标识符
|
|
|
+ - **createdAt**: 创建时间
|
|
|
+ - **roleName**: 角色名称(如“患者”、“专家医生”、“医学生”)
|
|
|
+ - **permissions**: 权限列表(array)
|
|
|
+
|
|
|
+1.3 **UserProfile** 表
|
|
|
+ - **objectId**: 唯一标识符
|
|
|
+ - **createdAt**: 创建时间
|
|
|
+ - **user**: 用户(Pointer<User>)
|
|
|
+ - **firstName**: 名
|
|
|
+ - **lastName**: 姓
|
|
|
+ - **phoneNumber**: 电话号码
|
|
|
+ - **profilePicture**: 头像(File)
|
|
|
+ - **bio**: 简介
|
|
|
+
|
|
|
+#### 2.PlantUML 类图表示
|
|
|
+
|
|
|
+以下是使用PlantUML表示的类图:
|
|
|
+
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
+class User {
|
|
|
+ + objectId: String
|
|
|
+ + createdAt: Date
|
|
|
+ + username: String
|
|
|
+ + password: String
|
|
|
+ + email: String
|
|
|
+ + role: Pointer<Role>
|
|
|
+ + isVerified: Boolean
|
|
|
+ + lastLogin: Date
|
|
|
+}
|
|
|
+
|
|
|
+class Role {
|
|
|
+ + objectId: String
|
|
|
+ + createdAt: Date
|
|
|
+ + roleName: String
|
|
|
+ + permissions: Array
|
|
|
+}
|
|
|
+
|
|
|
+class UserProfile {
|
|
|
+ + objectId: String
|
|
|
+ + createdAt: Date
|
|
|
+ + user: Pointer<User>
|
|
|
+ + firstName: String
|
|
|
+ + lastName: String
|
|
|
+ + phoneNumber: String
|
|
|
+ + profilePicture: File
|
|
|
+ + bio: String
|
|
|
+}
|
|
|
+
|
|
|
+User "1" -- "1" Role : has
|
|
|
+User "1" -- "1" UserProfile : has
|
|
|
+@enduml
|
|
|
+```
|
|
|
+
|
|
|
+#### 3.设计说明
|
|
|
+
|
|
|
+- **User 表**: 主要存储用户的基本信息,包括用户名、密码、邮箱和角色。角色通过指针关联到 Role 表,以便于管理不同用户的权限。
|
|
|
+- **Role 表**: 定义不同角色的名称和相应的权限,支持后续的权限管理和扩展。
|
|
|
+- **UserProfile 表**: 存储用户的详细个人信息,便于展示和管理。
|
|
|
+
|
|
|
+通过上述设计,可以确保用户模块的功能性和安全性,为患者、专家医生和医学生提供良好的用户体验。
|
|
|
+### 知识模块
|
|
|
+- 功能描述:提供各学科的知识模块,用户可以选择学习。
|
|
|
+- 分析:知识模块的多样性和系统性是提升用户学习效果的关键。需要确保内容的权威性和更新频率,以满足医护人员和医学生的学习需求。
|
|
|
+为了设计一个知识模块的Parse Schema,我们需要考虑不同学科的知识内容、用户的学习需求以及内容的更新机制。以下是所需的Parse Schema范式表及具体字段名称的分析。
|
|
|
+
|
|
|
+#### 1.表设计
|
|
|
+
|
|
|
+1.1 **KnowledgeModule** 表
|
|
|
+ - **objectId**: 唯一标识符
|
|
|
+ - **createdAt**: 创建时间
|
|
|
+ - **title**: 模块标题
|
|
|
+ - **description**: 模块描述
|
|
|
+ - **category**: 学科分类(Pointer<Category>)
|
|
|
+ - **content**: 知识内容(Text)
|
|
|
+ - **author**: 作者(Pointer<User>)
|
|
|
+ - **updatedAt**: 最后更新时间
|
|
|
+ - **isPublished**: 是否已发布(boolean)
|
|
|
+
|
|
|
+1.2 **Category** 表
|
|
|
+ - **objectId**: 唯一标识符
|
|
|
+ - **createdAt**: 创建时间
|
|
|
+ - **name**: 类别名称(如“内科”、“外科”、“药理学”等)
|
|
|
+ - **description**: 类别描述
|
|
|
+
|
|
|
+1.3 **KnowledgeResource** 表
|
|
|
+ - **objectId**: 唯一标识符
|
|
|
+ - **createdAt**: 创建时间
|
|
|
+ - **module**: 知识模块(Pointer<KnowledgeModule>)
|
|
|
+ - **resourceType**: 资源类型(如“视频”、“文档”、“图表”等)
|
|
|
+ - **resourceLink**: 资源链接(URL)
|
|
|
+ - **description**: 资源描述
|
|
|
+
|
|
|
+#### 2.PlantUML 类图表示
|
|
|
+
|
|
|
+以下是使用PlantUML表示的类图:
|
|
|
+
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
+class KnowledgeModule {
|
|
|
+ + objectId: String
|
|
|
+ + createdAt: Date
|
|
|
+ + title: String
|
|
|
+ + description: String
|
|
|
+ + category: Pointer<Category>
|
|
|
+ + content: Text
|
|
|
+ + author: Pointer<User>
|
|
|
+ + updatedAt: Date
|
|
|
+ + isPublished: Boolean
|
|
|
+}
|
|
|
+
|
|
|
+class Category {
|
|
|
+ + objectId: String
|
|
|
+ + createdAt: Date
|
|
|
+ + name: String
|
|
|
+ + description: String
|
|
|
+}
|
|
|
+
|
|
|
+class KnowledgeResource {
|
|
|
+ + objectId: String
|
|
|
+ + createdAt: Date
|
|
|
+ + module: Pointer<KnowledgeModule>
|
|
|
+ + resourceType: String
|
|
|
+ + resourceLink: String
|
|
|
+ + description: String
|
|
|
+}
|
|
|
+
|
|
|
+KnowledgeModule "1" -- "1" Category : belongs to
|
|
|
+KnowledgeModule "1" -- "*" KnowledgeResource : has
|
|
|
+@enduml
|
|
|
+```
|
|
|
+
|
|
|
+#### 3.设计说明
|
|
|
+
|
|
|
+- **KnowledgeModule 表**: 存储知识模块的基本信息,包括标题、描述、内容、分类、作者以及发布状态。通过指针关联到 Category 表和 User 表,以便于管理模块的分类和作者信息。
|
|
|
+- **Category 表**: 定义不同学科的分类,支持知识模块的组织和检索。
|
|
|
+- **KnowledgeResource 表**: 存储与知识模块相关的资源,如视频、文档等,便于用户获取更多学习材料。
|
|
|
+
|
|
|
+通过上述设计,可以确保知识模块的功能性和系统性,为医护人员和医学生提供丰富的学习资源和良好的学习体验。
|
|
|
+### 专家咨询
|
|
|
+- 功能描述:患者可以预约专家进行在线咨询,提供视频咨询功能。
|
|
|
+- 分析:在线咨询功能能够极大地方便患者,尤其是在偏远地区。视频咨询的引入提升了沟通的有效性,建议考虑技术支持的稳定性和用户隐私保护。
|
|
|
+为了设计一个专家咨询的Parse Schema,我们需要考虑患者预约专家的需求、视频咨询的实现、以及用户隐私的保护。以下是所需的Parse Schema范式表及具体字段名称的分析。
|
|
|
+
|
|
|
+#### 1.表设计
|
|
|
+
|
|
|
+1.1 **Consultation** 表
|
|
|
+ - **objectId**: 唯一标识符
|
|
|
+ - **createdAt**: 创建时间
|
|
|
+ - **patient**: 患者(Pointer<User>)
|
|
|
+ - **doctor**: 专家医生(Pointer<User>)
|
|
|
+ - **appointmentTime**: 预约时间(Date)
|
|
|
+ - **status**: 咨询状态(如“待确认”、“已确认”、“已完成”、“已取消”)
|
|
|
+ - **videoLink**: 视频咨询链接(URL)
|
|
|
+ - **notes**: 咨询备注(Text)
|
|
|
+ - **createdBy**: 创建者(Pointer<User>)
|
|
|
+
|
|
|
+1.2 **User** 表
|
|
|
+ - **objectId**: 唯一标识符
|
|
|
+ - **createdAt**: 创建时间
|
|
|
+ - **username**: 用户名
|
|
|
+ - **password**: 密码(建议加密存储)
|
|
|
+ - **email**: 邮箱
|
|
|
+ - **role**: 用户角色(如“患者”、“医生”)(Pointer<Role>)
|
|
|
+ - **isVerified**: 是否已验证(boolean)
|
|
|
+ - **lastLogin**: 最后登录时间
|
|
|
+
|
|
|
+1.3 **Role** 表
|
|
|
+ - **objectId**: 唯一标识符
|
|
|
+ - **createdAt**: 创建时间
|
|
|
+ - **roleName**: 角色名称(如“患者”、“专家医生”)
|
|
|
+ - **permissions**: 权限列表(array)
|
|
|
+
|
|
|
+#### 2.PlantUML 类图表示
|
|
|
+
|
|
|
+以下是使用PlantUML表示的类图:
|
|
|
+
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
+class Consultation {
|
|
|
+ + objectId: String
|
|
|
+ + createdAt: Date
|
|
|
+ + patient: Pointer<User>
|
|
|
+ + doctor: Pointer<User>
|
|
|
+ + appointmentTime: Date
|
|
|
+ + status: String
|
|
|
+ + videoLink: String
|
|
|
+ + notes: Text
|
|
|
+ + createdBy: Pointer<User>
|
|
|
+}
|
|
|
+
|
|
|
+class User {
|
|
|
+ + objectId: String
|
|
|
+ + createdAt: Date
|
|
|
+ + username: String
|
|
|
+ + password: String
|
|
|
+ + email: String
|
|
|
+ + role: Pointer<Role>
|
|
|
+ + isVerified: Boolean
|
|
|
+ + lastLogin: Date
|
|
|
+}
|
|
|
+
|
|
|
+class Role {
|
|
|
+ + objectId: String
|
|
|
+ + createdAt: Date
|
|
|
+ + roleName: String
|
|
|
+ + permissions: Array
|
|
|
+}
|
|
|
+
|
|
|
+Consultation "1" -- "1" User : patient
|
|
|
+Consultation "1" -- "1" User : doctor
|
|
|
+Consultation "1" -- "1" User : createdBy
|
|
|
+@enduml
|
|
|
+```
|
|
|
+
|
|
|
+#### 3.设计说明
|
|
|
+
|
|
|
+- **Consultation 表**: 存储在线咨询的基本信息,包括患者和医生的指针、预约时间、咨询状态、视频链接以及备注。通过指针关联到 User 表,以便于管理患者和医生的信息。
|
|
|
+- **User 表**: 存储用户的基本信息,包括用户名、密码、邮箱、角色等。角色通过指针关联到 Role 表,以便于管理用户的权限。
|
|
|
+- **Role 表**: 定义不同角色的名称和相应的权限,支持对用户的访问控制。
|
|
|
+
|
|
|
+通过上述设计,可以确保专家咨询模块的功能性、用户隐私保护以及良好的用户体验,为患者和医生提供高效的在线咨询服务。
|
|
|
+### 智能诊疗模块
|
|
|
+- 功能描述:利用人工智能进行初步自我诊断和健康评估。
|
|
|
+- 分析:智能诊疗模块能够帮助患者在就医前进行初步的健康评估,减轻医疗资源的压力。然而,需要确保系统的准确性和安全性,避免误诊的风险。
|
|
|
+为了设计一个智能诊疗模块的Parse Schema,我们需要考虑患者进行初步自我诊断和健康评估的需求,以及系统的准确性和安全性。以下是所需的Parse Schema范式表及具体字段名称的分析。
|
|
|
+
|
|
|
+#### 1.表设计
|
|
|
+
|
|
|
+1.1 **Symptom** 表
|
|
|
+ - **objectId**: 唯一标识符
|
|
|
+ - **createdAt**: 创建时间
|
|
|
+ - **name**: 症状名称(如“发热”、“咳嗽”)
|
|
|
+ - **description**: 症状描述
|
|
|
+ - **severity**: 严重程度(如“轻微”、“中等”、“严重”)
|
|
|
+
|
|
|
+1.2 **Diagnosis** 表
|
|
|
+ - **objectId**: 唯一标识符
|
|
|
+ - **createdAt**: 创建时间
|
|
|
+ - **patient**: 患者(Pointer<User>)
|
|
|
+ - **symptoms**: 相关症状(Array<Pointer<Symptom>>)
|
|
|
+ - **suggestedCondition**: 建议的疾病或状况(String)
|
|
|
+ - **recommendations**: 建议的后续步骤(Text)
|
|
|
+ - **confidenceScore**: 诊断的置信度评分(Float)
|
|
|
+ - **createdBy**: 创建者(Pointer<User>)
|
|
|
+
|
|
|
+1.3 **User** 表
|
|
|
+ - **objectId**: 唯一标识符
|
|
|
+ - **createdAt**: 创建时间
|
|
|
+ - **username**: 用户名
|
|
|
+ - **password**: 密码(建议加密存储)
|
|
|
+ - **email**: 邮箱
|
|
|
+ - **role**: 用户角色(如“患者”、“医生”)(Pointer<Role>)
|
|
|
+ - **isVerified**: 是否已验证(boolean)
|
|
|
+ - **lastLogin**: 最后登录时间
|
|
|
+
|
|
|
+1.4 **Role** 表
|
|
|
+ - **objectId**: 唯一标识符
|
|
|
+ - **createdAt**: 创建时间
|
|
|
+ - **roleName**: 角色名称(如“患者”、“医生”)
|
|
|
+ - **permissions**: 权限列表(array)
|
|
|
+
|
|
|
+#### 2.PlantUML 类图表示
|
|
|
+
|
|
|
+以下是使用PlantUML表示的类图:
|
|
|
+
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
+class Symptom {
|
|
|
+ + objectId: String
|
|
|
+ + createdAt: Date
|
|
|
+ + name: String
|
|
|
+ + description: String
|
|
|
+ + severity: String
|
|
|
+}
|
|
|
+
|
|
|
+class Diagnosis {
|
|
|
+ + objectId: String
|
|
|
+ + createdAt: Date
|
|
|
+ + patient: Pointer<User>
|
|
|
+ + symptoms: Array<Pointer<Symptom>>
|
|
|
+ + suggestedCondition: String
|
|
|
+ + recommendations: Text
|
|
|
+ + confidenceScore: Float
|
|
|
+ + createdBy: Pointer<User>
|
|
|
+}
|
|
|
+
|
|
|
+class User {
|
|
|
+ + objectId: String
|
|
|
+ + createdAt: Date
|
|
|
+ + username: String
|
|
|
+ + password: String
|
|
|
+ + email: String
|
|
|
+ + role: Pointer<Role>
|
|
|
+ + isVerified: Boolean
|
|
|
+ + lastLogin: Date
|
|
|
+}
|
|
|
+
|
|
|
+class Role {
|
|
|
+ + objectId: String
|
|
|
+ + createdAt: Date
|
|
|
+ + roleName: String
|
|
|
+ + permissions: Array
|
|
|
+}
|
|
|
+
|
|
|
+Diagnosis "1" -- "1" User : patient
|
|
|
+Diagnosis "*" -- "*" Symptom : includes
|
|
|
+Diagnosis "1" -- "1" User : createdBy
|
|
|
+@enduml
|
|
|
+```
|
|
|
+
|
|
|
+#### 3.设计说明
|
|
|
+
|
|
|
+- **Symptom 表**: 存储各种症状的信息,包括名称、描述和严重程度。此表用于帮助患者选择和描述他们的症状。
|
|
|
+- **Diagnosis 表**: 存储智能诊疗的结果,包括患者信息、相关症状、建议的疾病、后续建议和置信度评分。通过指针关联到 User 表和 Symptom 表,以便于管理患者和症状信息。
|
|
|
+- **User 表**: 存储用户的基本信息,包括用户名、密码、邮箱、角色等。角色通过指针关联到 Role 表,以便于管理用户的权限。
|
|
|
+- **Role 表**: 定义不同角色的名称和相应的权限,支持对用户的访问控制。
|
|
|
+
|
|
|
+通过上述设计,可以确保智能诊疗模块的功能性、准确性和用户隐私保护,为患者提供高效的初步健康评估服务。
|