schema.md 12 KB

医护云桥应用UML编写

一、Schema范式设计

用户模块

  • 功能描述:支持患者、专家医生、医学生等多种用户角色的注册和登录。
  • 分析:这一模块是用户体验的基础,确保用户能够顺利进入平台。需要考虑用户身份验证的安全性和便捷性,可能包括多因素认证等措施。 为了设计一个用户模块的Parse Schema,我们需要考虑不同用户角色的需求,包括患者、专家医生和医学生。我们将创建一个用户表和相关的角色表,并确保遵循设计范式。以下是所需的Parse Schema范式表及具体字段名称的分析。

1.表设计

1.1 User

  • objectId: 唯一标识符
  • createdAt: 创建时间
  • username: 用户名
  • password: 密码(建议加密存储)
  • email: 邮箱
  • role: 用户角色(Pointer)
  • isVerified: 是否已验证(boolean)
  • lastLogin: 最后登录时间
  • 1.2 Role

    • objectId: 唯一标识符
    • createdAt: 创建时间
    • roleName: 角色名称(如“患者”、“专家医生”、“医学生”)
    • permissions: 权限列表(array)

    1.3 UserProfile

    • objectId: 唯一标识符
    • createdAt: 创建时间
    • user: 用户(Pointer)
    • firstName: 名
    • lastName: 姓
    • phoneNumber: 电话号码
    • profilePicture: 头像(File)
    • bio: 简介
    • 2.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)
      • content: 知识内容(Text)
      • author: 作者(Pointer)
      • updatedAt: 最后更新时间
      • isPublished: 是否已发布(boolean)
      • 1.2 Category

        • objectId: 唯一标识符
        • createdAt: 创建时间
        • name: 类别名称(如“内科”、“外科”、“药理学”等)
        • description: 类别描述

        1.3 KnowledgeResource

        • objectId: 唯一标识符
        • createdAt: 创建时间
        • module: 知识模块(Pointer)
        • resourceType: 资源类型(如“视频”、“文档”、“图表”等)
        • resourceLink: 资源链接(URL)
        • description: 资源描述
        • 2.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)
          • doctor: 专家医生(Pointer)
          • appointmentTime: 预约时间(Date)
          • status: 咨询状态(如“待确认”、“已确认”、“已完成”、“已取消”)
          • videoLink: 视频咨询链接(URL)
          • notes: 咨询备注(Text)
          • createdBy: 创建者(Pointer)
          • 1.2 User

            • objectId: 唯一标识符
            • createdAt: 创建时间
            • username: 用户名
            • password: 密码(建议加密存储)
            • email: 邮箱
            • role: 用户角色(如“患者”、“医生”)(Pointer)
            • isVerified: 是否已验证(boolean)
            • lastLogin: 最后登录时间
            • 1.3 Role

              • objectId: 唯一标识符
              • createdAt: 创建时间
              • roleName: 角色名称(如“患者”、“专家医生”)
              • permissions: 权限列表(array)

              2.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)
              • symptoms: 相关症状(Array>)
              • suggestedCondition: 建议的疾病或状况(String)
              • recommendations: 建议的后续步骤(Text)
              • confidenceScore: 诊断的置信度评分(Float)
              • createdBy: 创建者(Pointer)
              • 1.3 User

                • objectId: 唯一标识符
                • createdAt: 创建时间
                • username: 用户名
                • password: 密码(建议加密存储)
                • email: 邮箱
                • role: 用户角色(如“患者”、“医生”)(Pointer)
                • isVerified: 是否已验证(boolean)
                • lastLogin: 最后登录时间
                • 1.4 Role

                  • objectId: 唯一标识符
                  • createdAt: 创建时间
                  • roleName: 角色名称(如“患者”、“医生”)
                  • permissions: 权限列表(array)

                  2.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 表: 定义不同角色的名称和相应的权限,支持对用户的访问控制。

                  通过上述设计,可以确保智能诊疗模块的功能性、准确性和用户隐私保护,为患者提供高效的初步健康评估服务。