【眼底辅助诊断开放平台】项目笔记

这是一个标题

    • 任务一
      • 前端页面开发:
      • 后端接口配置:
    • 任务二
      • 自行部署
      • 接入服务
    • 日志
      • 修改样式和解析MD文档
      • 接入服务
    • Note
      • 前端登陆不进去/更改后端api接口
      • 304 Not Modified
      • login.cache.json
      • ERR_CONNECTION_TIMED_OUT
      • 跨域
      • 一般提交格式
      • proxy.ts

  1. src/coponents 目录下新增新文件 MarkdownRenderer.tsx
  2. 修改页面 src/pages/SelfDeployAI/index.tsx

任务一

前端页面开发:

所涉及知识点:《眼底视网膜解读》

  1. 页面位于 page 目录下的两个新文件中,查看 Git 提交记录可以找到具体文件。
  2. 需要适配手机端,支持弹性变化布局。

后端接口配置:

  1. 将 config.tsx 中的端口替换为 10.3.36.106,以便访问的后端服务。✅
  • 修改 ./proxy 文件:确保 target 指向 http://。✅

重启项目:确保配置生效。

http://7529

负责前端页面开发、后端接口配置和代码拉取。

任务二

自行部署

1、历史记录实现✅已实现
2、后台任务上传、假、真 列表展示✅已实现

3、excel导出 pdf打印

  • 安装必要的依赖:
    yarn add jspdf jspdf-autotable
    
  • 更改导出方式
    最适合这种场景的库通常是jsPDF,它是一个轻量级的客户端PDF生成库,易于使用。
  // 导出诊断报告const exportReport = () => {if (messages.length === 0) {message.info('暂无诊断结果可导出');return;}// 找最近的一次分析结果let reportContent = '';let hasAnalysis = false;for (let i = messages.length - 1; i >= 0; i--) {if (messages[i].aiAnalysis) {// 找到了分析结果const analysis = messages[i].aiAnalysis;const content = messages[i].content;reportContent = `
# 眼底诊断报告
生成时间:${moment().format('YYYY-MM-DD HH:mm:ss')}## 分析结果
主要诊断: ${analysis.main_class.label} (置信度: ${(analysis.main_class.confidence * 100).toFixed(2)}%)
分级: ${analysis.main_class.grade}级
左眼: ${analysis.left_eye.severity} (置信度: ${(analysis.left_eye.confidence * 100).toFixed(2)}%)
右眼: ${analysis.right_eye.severity} (置信度: ${(analysis.right_eye.confidence * 100).toFixed(2)}%)
预测年龄: ${analysis.age_prediction}
预测性别: ${analysis.gender_prediction}## 病灶测量
微血管瘤: ${analysis.measurements?.microaneurysm_count ?? '未测量'}个
出血点: ${analysis.measurements?.hemorrhage_count ?? '未测量'}处
硬性渗出: ${analysis.measurements?.exudate_count ?? '未测量'}处## 特征重要性
${analysis.feature_importance?.factors?.map(f =>`- ${f.name}: ${(f.value * 100).toFixed(1)}%`).join('\n') || '无特征重要性数据'}## 可视化分析
- 左眼分析图: ${analysis.visualizations?.left_eye ? '已生成' : '无'}
- 右眼分析图: ${analysis.visualizations?.right_eye ? '已生成' : '无'}
- 包含视图: ${analysis.visualizations?.left_eye?.filtered_views ?Object.keys(analysis.visualizations.left_eye.filtered_views).join(', ') : '无'}## 诊断解读
${analysis.explanation.text}
关键发现:${analysis.explanation.findings.join(',')}## 诊断建议
${content}`;hasAnalysis = true;break;}}if (!hasAnalysis) {message.info('暂无分析结果可导出');return;}// 创建下载链接const blob = new Blob([reportContent], {type: 'text/plain'});const url = URL.createObjectURL(blob);const a = document.createElement('a');a.href = url;a.download = `眼底诊断报告_${moment().format('YYYYMMDD_HHmmss')}.txt`;document.body.appendChild(a);a.click();document.body.removeChild(a);URL.revokeObjectURL(url);message.success('诊断报告已导出');};
  • 创建导出工具函数
    创建src/utils/exportUtils.ts文件:
    exportUtils.ts文件的作用是提供可重用的导出功能,比如将数据导出为PDF或Excel等格式。这样可以避免在多个组件中重复编写相同的导出逻辑,使代码更加模块化和易于维护。

创建完成后,将我之前提供的PDF导出代码放入这个文件中,然后在主组件中导入使用。

或者直接靠浏览器自带的下载

接入服务

1、添加详细介绍
2、提示词预设
3、功能介绍如可以智能导诊、查看名医

  • 创建更详细的提示词分类和数据结构
  • 增加一个侧边栏或下拉菜单来展示提示词预设
  • 添加功能让用户选择这些预设
  • 将选择的预设直接填入输入框或直接发送

日志

修改样式和解析MD文档

  • SelfDeployAI/index.tsx
  1. 修改 Layout 的样式
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    怎么感觉没变化啊靠

0分

  1. 修改加载动画的样式

在这里插入图片描述

接入服务

  1. 导入缺失的Avatar组件。
- import { Card, message, Typography, Layout, Button, Switch, Space, Tooltip, Spin } from 'antd';
+ import { Card, message, Typography, Layout, Button, Switch, Space, Tooltip, Spin, Avatar } from 'antd';
  1. 新增消息元数据字段
// 原结构
setMessages([...prev, { sender, content, timestamp }])// 修改后应包含AI角色和消息类型
setMessages([...prev, {sender: '用户',role: 'patient', // 新增用户角色标识contentType: 'text', // 新增消息类型(text/image)attachments: [], // 新增附件字段diagnosticData: {}, // 新增诊断数据字段timestamp
}])

Note

前端登陆不进去/更改后端api接口

多半是因为后端没有部署,或者可以更改后端api
config -> config.ts

openAPI: [{requestLibPath: "import { request } from '@umijs/max'",schemaPath: 'http://localhost:7529/api/v3/api-docs', //更改后端apiprojectName: 'cai-api-backend',},],

304 Not Modified

浏览器缓存问题,但是刷新后仍然出现报错,我查看了其他报错原因

mf-dep____vendor.0983249d.js:343218POST http://127.0.0.1:7529/api/user/login?token%20=%20123 net::ERR_CONNECTION_REFUSED

我的端口并不是这个,所以肯定有哪些遗漏的
可以排查:后端服务未启动、端口配置错误、网络问题或跨域问题

login.cache.json

账号密码

"payload": {"username": "admin","password": "ant.design","autoLogin": true,"type": "account"},

ERR_CONNECTION_TIMED_OUT

浏览器在尝试连接到服务器时,等待响应的时间过长,超出了设置的超时时间

  1. 网络连接较慢
  2. 服务器无法响应
  3. 求目标地址不可访问

建议:查看端口号,我这里需要的端口号不是8080,所以需要更改

跨域

有的时候直接申请网址会出现失败的情况
这种就是跨域了
在这里插入图片描述

一般提交格式

feat: - 新功能
fix: - 修复问题
docs: - 文档相关
style: - 样式/格式变更
refactor: - 代码重构
perf: - 性能优化
test: - 测试相关
chore: - 日常维护任务

proxy.ts

请添加图片描述

  • pre是生产环境
  • dev配置是开发环境 改掉dev的target为10.3.36.106:7529
  • openapi的是接口文档的地址 不需要快速开发不需要改

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/76942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【后端开发】Spring MVC-计算器、用户登录、留言板

文章目录 前后端分离设计接口设计思路项目问题解决思路 计算器需求分析接口定义前端页面代码服务器代码 用户登录需求分析接口定义用户登录校验接口查询登录用户接口 前端页面代码用户登录校验查询登录用户 服务器代码前后端交互 留言版需求分析接口定义获取全部留言发布留言前…

在Ubuntu-22.04.5中安装ONLYOFFICE DocSpace(协作空间)【注意:安装失败,谨慎参考!】

1. 通过Docker安装 预计需要下载10G的镜像。 (1)下载docspace安装脚本 curl -fsSL https://download.onlyoffice.com/docspace/docspace-install.sh -o docspace-install.sh (2)修改docker compose的别名为docker-compose ali…

2025年计算机领域重大技术突破与行业动态综述

——前沿技术重塑未来,开发者如何把握机遇? 2025年第一季度,全球计算机领域迎来多项里程碑式进展,从量子计算到人工智能,从芯片设计到网络安全,技术革新与产业融合持续加速。本文梳理近三个月内最具影响力…

一、LLM 大语言模型初窥:起源、概念与核心原理

一、初识大模型 1.1 人工智能演进与大模型兴起:从A11.0到A12.0的变迁 AI 1.0时代(2012-2022年) 感知智能的突破:以卷积神经网络(CNN)为核心,AI在图像识别、语音处理等感知任务中超越人类水平。例如&#…

Redis 分布式锁+秒杀异步优化

文章目录 问题思路setnx实现锁误删问题和解决方案Redis Lua脚本问题引出解决方案 setnx实现的问题Redission快速入门redission可重入锁原理 秒杀优化(异步优化)异步秒杀思路秒杀资格判断Redis消息队列 问题 比如我们两个机器都部署了我们项目,这里nginx使用轮询的方…

机器学习中的距离度量与优化方法:从曼哈顿距离到梯度下降

目录 前言一、曼哈顿距离(Manhattan Distance):二、切比雪夫距离 (Chebyshev Distance):三、 闵可夫斯基距离(Minkowski Distance):小结四、余弦距离(Cosine Distance)五、杰卡德距离(Jaccard Distance)六、交叉验证方法6.1 HoldOut Cross-v…

HTML 嵌入标签对比:小众(<embed>、<object>) 与 <iframe> 的优缺点及使用场景和方式

需求背景 在网页开发中&#xff0c;嵌入外部资源预览&#xff08;如视频、PDF、地图或其他网页&#xff09;是常见的需求。HTML 提供了多种标签来实现这一功能&#xff0c;其中 <embed>、<object> 和 <iframe> 是最常用的三种。本文将对比它们的优缺点&…

未来七轴机器人会占据主流?深度解析具身智能方向当前六轴机器人和七轴机器人的区别,七轴力控机器人发展会加快吗?

六轴机器人和七轴机器人在设计、功能和应用场景上存在明显区别。六轴机器人是工业机器人的传统架构&#xff0c;而七轴机器人则在多自由度和灵活性方面进行了增强。 本文将在理解这两者的区别以及为何六轴机器人仍然是市场主流&#xff0c;从多个方面进行深入解读六轴和七轴区…

C++基础精讲-07

文章目录 1. const对象2. 指向对象的指针3. 对象数组4. c中const常见用法总结4.1 修饰常量4.2 修饰指针4.3 修饰函数参数4.4 修饰函数返回值4.5 修饰成员函数4.6 const对象 5. 赋值运算符函数&#xff08;补充&#xff09;5.1 概念5.2 默认赋值运算符函数局限5.3 解决办法 1. c…

软件测试之接口测试用例设计

1.接口测试用例设计简介 我们对系统的需求分析完成之后&#xff0c;即可设计对应的接口测试用例&#xff0c;然后用接口测试用例进行接口测试。接口测试用例的设计也需要用到黑盒测试方法&#xff0c;其与功能测试用例设计的方法类似&#xff0c;接口测试用例设计中还需要增加…

(2)VTK C++开发示例 --- 绘制多面锥体

文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容&#x1f449;内容导航 &#x1f448;&#x1f449;VTK开发 &#x1f448; 1. 概述 VTK C开发示例程序&#xff1b; 使用C 和VTK绘制一个多面锥体。 环境说明系统ubuntu22.04、windows11cmake3.22、3.2…

公司内部自建知识共享的方式分类、详细步骤及表格总结,分为开源(对外公开)和闭源(仅限内部),以及公共(全员可访问)和内部(特定团队/项目组)四个维度

以下是公司内部自建知识共享的方式分类、详细步骤及表格总结&#xff0c;分为开源&#xff08;对外公开&#xff09;和闭源&#xff08;仅限内部&#xff09;&#xff0c;以及公共&#xff08;全员可访问&#xff09;和内部&#xff08;特定团队/项目组&#xff09;四个维度&am…

DeepSeek使用001:Word中配置DeepSeek AI的V3和R1模型

文章目录 Word中配置DeepSeek大模型1、勾选开发工具2、信任中心设置3、添加DeepSeek-V3模型4、获取API KEY5、添加DeepSeek-R1模型6、新建组7、测试使用 Word中配置DeepSeek大模型 1、勾选开发工具 打开【选项】 选择【自定义功能区】 2、信任中心设置 打开【信任中心】&…

Spark-SQL核心编程语言

利用IDEA开发spark-SQL 创建spark-SQL测试代码 自定义函数UDF 自定义聚合函数UDAF 强类型的 Dataset 和弱类型的 DataFrame 都提供了相关的聚合函数&#xff0c; 如 count()&#xff0c; countDistinct()&#xff0c;avg()&#xff0c;max()&#xff0c;min()。除此之外&…

从图像“看出动作”

&#x1f4d8; 第一部分&#xff1a;运动估计&#xff08;Motion Estimation&#xff09; &#x1f9e0; 什么是运动估计&#xff1f; 简单说&#xff1a; &#x1f449; 给你一段视频&#xff0c;计算机要“看懂”里面什么东西动了、往哪动了、有多快。 比如&#xff1a; 一…

Spring Boot 使用 SMB 协议

2025/4/14 向全栈工程师迈进&#xff01; 一、详述SMB协议 SMB&#xff08;Server Message Block&#xff09;协议是一个网络文件共享协议&#xff0c;它使得计算机可以在网络中共享文件、打印机以及其他资源。SMB 主要用于 Windows 操作系统&#xff0c;但也有其他平台&#…

Spring编程式事务(本地事务)

使用 TransactionTemplate等类和 API 手动管理事务&#xff0c;控制事务的新建、提交、回滚等过程 方式一&#xff1a;使用 TransactionTemplate&#xff08;推荐方式&#xff09; Service public class OrderService {private final TransactionTemplate transactionTemplat…

itext7 html2pdf 将html文本转为pdf

1、将html转为pdf需求分析 经常会看到爬虫有这样的需求&#xff0c;将某一个网站上的数据&#xff0c;获取到了以后&#xff0c;进行分析&#xff0c;然后将需要的数据进行存储&#xff0c;也有将html转为pdf进行存储&#xff0c;作为原始存档&#xff0c;当然这里看具体的需求…

企业级低代码平台的架构范式转型研究

在快速迭代的数字时代&#xff0c;低代码平台如同一股清流&#xff0c;悄然成为开发者们的新宠。 它利用直观易用的拖拽式界面和丰富的预制组件&#xff0c;将应用程序的开发过程简化到了前所未有的程度。通过封装复杂的编程逻辑和提供强大的集成能力&#xff0c;低代码平台让…

C++ | STL之list详解:双向链表的灵活操作与高效实践

引言 std::list 是C STL中基于双向链表实现的顺序容器&#xff0c;擅长高效插入和删除操作&#xff0c;尤其适用于频繁修改中间元素的场景。与std::vector不同&#xff0c;std::list的内存非连续&#xff0c;但提供了稳定的迭代器和灵活的元素管理。本文将全面解析std::list的…