96SEO 2026-08-04 05:30 32
前端需要展示病理切片图像。并在上面查看 AI 标注结果,还要支持医生手动修改标注、对比不同版本的差异。
经过调研发现这方面。

将 OpenSeadragon 与 @wtsml/doodle 的能力进行深度封装。并提供一套可直接使用的 Vue 组件 + Core 引擎,实现“一次实现,多项目复用”。
useAnnotationViewer 一把梭管理所有状态,业务方只需关注数据交互。
# Vue 项目直接装这个
npm install @pathology/dzi-viewer-vue
pnpm add @pathology/dzi-viewer-vue
# 同时确保以下 peer 依赖已在项目中
npm install vue element-plus @element-plus/icons-vue openseadragon
pnpm add vue element-plus @element-plus/icons-vue openseadragon
npm install @pathology/dzi-viewer-core
pnpm add @pathology/dzi-viewer-core
@pathology/dzi-viewer-vue ← Vue 层
│ Vue 组件 + Composable
│ 基于 Element Plus 实现 UI
│ └── @pathology/dzi-viewer-core ← 主要层
创建查看器 / 标注管理 / 几何计算
版本对比 / 坐标转换 / 图像加载
零 UI 框架依赖
└── OpenSeadragon + @wtsml/doodle
*拆分意义*
The actual pathology workflow is not just “open image and look”. It can be divided into three mutually exclusive modes:
N 个版本同时对比,每个版本自动配色。不过,view → refine → view ↓ ↑ compare ────────────────┘
The whole state is encapsulated by composable useAnnotationViewer. Business code only needs to pass a { mode }。and library handles all internal transitions.
If you need a full three‑column layout,just drop in 。feed it required props and you get a production‑ready page instantly.
If you prefer fine‑grained control,use composable directly:
import { useAnnotationViewer } from "@pathology/dzi-viewer-vue";话说回来,const { viewer,tools,stats } = useAnnotationViewer({
imageUrl: dziUrl。annotationData: annotations,mode: "refine",// 必须实现的数据提供者接口见下文
});
The previous approach tried to expose doodle’s raw { pos },which varied wildly 娱乐ween shapes. To simplify backend integration we defined a canonical JSON schema:
interface AnnotationPoint {
x: number;y: number,}
interface AnnotationRegion {
external: AnnotationPoint;// 外边界点数组
至于holes?不过,,AnnotationPoint;// 可选内部空洞集合
再看shape?,"line" | "rect" | "polygon" |
"circle" | "ellipse" | "path" | "closed_path";}
interface AnnotationData {
regions: AnnotationRegion;}
The component internally converts this schema into doodle’s { pos }. Conversion logic lives in @pathology/dzi-viewer-core/src/utils/convertPointsToPos.ts,~50 行代码就可以完成全部映射。
The algorithm works in two passes:
This heuristic covers>九十五成上下 of real‑world cases while staying lightweight. Implementation resides in @pathology/dzi-viewer-core/src/utils/annotationDifference.ts.
The library exposes a simple contract that any backend can implement:
interface AnnotationDataProvider {
/** 获取指定切片及可选版本的标注 */
getAnnotation: Promise;/** 获取该切片所有可用版本列表,用于对比 */
getVersions?: Promise;/** 提交精修后的标注 */
submitRefine?: Promise;}
getVersions。version‑compare panel disappears.
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback