Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

med-followup-record-struct

v1.0.1

将中文门诊复诊病历文本结构化为细粒度字段,输出 JSON(如现病史/既往史/诊断/处理意见等)。

0· 90·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for unisound-llm/med-followup-record-struct.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "med-followup-record-struct" (unisound-llm/med-followup-record-struct) from ClawHub.
Skill page: https://clawhub.ai/unisound-llm/med-followup-record-struct
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install med-followup-record-struct

ClawHub CLI

Package manager switcher

npx clawhub@latest install med-followup-record-struct
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
high confidence
Purpose & Capability
The skill purpose (structure Chinese outpatient follow‑up records) aligns with its code and the declared external API (record structuring). The hardcoded API endpoint (https://shangbao.yunzhisheng.cn/skills/record-struct/gen_abstract_by_his) is consistent with the stated capability, but embedding a remote service endpoint without configurable auth or opt‑out is a noteworthy design choice.
!
Instruction Scope
SKILL.md asserts strict de‑identification before sending data and claims no local persistence of inputs/intermediates. However, the implementation (scripts/struct_followup_record.py -> struct_followup_record -> call_followup_struct_api) reads the input file and sends the raw record_text directly to the remote API with no de‑identification step. The tool also writes the structured JSON to disk (default ../runs/...), and run.py offers a --save-prepared option to persist normalized text. These behaviors contradict the documented privacy claims.
Install Mechanism
No install spec or third‑party package installs are required by the skill itself; optional Python packages and external tools are documented (openpyxl, pypdf, soffice, pdftotext, tesseract) and are reasonable for file extraction tasks. Nothing is downloaded from an unknown URL by an installer.
!
Credentials
The skill requests no credentials or env vars, which reduces risk, but it unconditionally posts potentially sensitive text to a hardcoded third‑party endpoint without authentication or an explicit opt‑in/configurable backend. Lack of a configurable endpoint or a requirement to supply an API key means data may be sent to that remote server by default — this is disproportionate given the privacy-sensitive input.
!
Persistence & Privilege
The skill is not set to always:true and does not request elevated platform privileges. However, SKILL.md's claims of 'no local persistence' are false in practice: the code writes structured output to disk by default and can save normalized/prepared text. That mismatch between promise and behavior is a privacy/storage concern.
What to consider before installing
Key points before installing or using this skill: - Do not run this on real patient data until the desensitization behavior is proven: the code sends the record text to a hardcoded remote API (shangbao.yunzhisheng.cn) with no de‑identification step or API key. This contradicts the SKILL.md privacy claims. - The tool writes structured output to disk by default (../runs/med-followup-record-struct/structured.json) and can optionally save prepared text; expect local persistence unless you change the code or CLI options. - If you need to use this for real PHI, request or implement one of the following: (a) a local/offline structuring backend, (b) an explicit, configurable endpoint plus required API key env var, (c) a vetted de‑identification/redaction step applied to the text before any network call (and verify it works on edge cases). - If you cannot verify the remote service operator and the data minimization/de‑id guarantees, test only with synthetic or fully de‑identified samples. - Suggested immediate changes to improve safety: remove or make API_URL configurable, require an API key or explicit opt‑in to enable network calls, implement and demonstrate de‑identification before sending, and document exactly what is persisted and where. If the author claims no persistence, ask them to fix code to avoid writing files by default or to make file saving opt‑in.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🧩 Clawdis
latestvk97egdg0f5hzr3x09xjgazg21n85eykm
90downloads
0stars
2versions
Updated 4d ago
v1.0.1
MIT-0

门诊复诊病历结构化

概述

给定一份中文门诊 复诊病历文本(医生已书写),本技能抽取并规范化为细粒度字段 JSON,例如:

  • 现病史.病情概述
  • 现病史.药物
  • 现病史.其他治疗措施
  • 现病史.病情转归
  • 现病史.一般情况
  • 既往史.疾病
  • 既往史.其他信息
  • 既往史.手术史
  • 既往史.过敏史
  • 既往史.输血史
  • 婚育史
  • 月经史
  • 个人史
  • 家族史
  • 查体
  • 辅助检查
  • 诊断
  • 处理意见.药物
  • 处理意见.其他建议

数据安全、隐私与伦理声明

  • 最小必要原则:仅处理结构化抽取所必需的文本内容;不要求也不鼓励包含姓名、证件号、手机号、详细地址等身份信息。
  • 严格脱敏:在发送至任何模型/接口前,会对可识别个人身份的信息进行脱敏/去标识化处理(如姓名、证件号、手机号、详细地址、人脸/影像等)。仅传递脱敏后的必要信息用于本次 skill 调用。
  • 不做本地持久化:不将用户输入与中间结果写入本地持久化存储(包含磁盘文件、数据库、日志)。仅在内存中短暂处理;本次调用结束即销毁
  • 第三方 API 风险提示:在功能需要时,可能会调用第三方模型/服务接口;此时仅会发送脱敏后的必要信息,并使用加密传输。除完成本次请求外,不用于任何其他用途(如训练、画像、营销)。
  • 医疗边界:本技能输出为文本抽取与结构化结果,不构成医疗诊断或治疗建议;如涉及临床判断请以执业医生意见为准。

输入格式

纯文本病历(UTF-8),可包含如下分段:

主诉:…… 现病史:…… 既往史:…… 婚育史:…… 月经史:…… 个人史:…… 家族史:…… 查体:…… 辅助检查:…… 诊断:…… 处理:……

也支持通过统一入口 scripts/run.py 直接输入 pdf/doc/docx/xls/xlsx/csv/txt/json。 预处理成功后,会先归一化为标准复诊病历文本,再调用本 skill 的原始结构化逻辑。

快速开始

# 从 skills 目录运行
python3 scripts/run.py \
  --input data/med-followup-record-struct/followup_record.txt

# 或继续直接使用原始文本入口
python3 scripts/struct_followup_record.py \
  --input data/med-followup-record-struct/followup_record.txt

参数说明

  • --input PATH
    • 输入复诊病历文本路径(UTF-8)。
  • --output PATH
    • 输出结构化 JSON 路径(默认:../runs/med-followup-record-struct/structured.json)。
  • --timeout SECONDS
    • 超时秒数;0 表示一直等待(默认:0)。
  • --diag-id STRING
    • 对话/就诊 ID(默认:skill-diag)。
  • --department STRING
    • 科室(可选)。

统一入口附加参数(scripts/run.py

  • --input-type auto|pdf|doc|docx|xls|xlsx|csv|txt|json
    • 输入类型;默认 auto
  • --sheet STRING
    • 读取 Excel 时指定 sheet(可选)。
  • --encoding STRING
    • txt/csv 编码(默认:utf-8)。
  • --save-prepared
    • 保存预处理后的标准复诊病历文本,便于调试。

输出约定

  • 输出为 UTF-8 JSON,key 形如 现病史.病情概述现病史.药物既往史.疾病诊断处理意见.药物 等。
  • 未提及字段在服务支持的情况下可能填充为“未提及”。

依赖

运行环境

  • Python 3.7+

外部 API

  • 后端结构化服务:https://shangbao.yunzhisheng.cn/skills/record-struct/gen_abstract_by_his
    • 方法:POST,Content-Type: application/json
    • 需要网络访问 shangbao.yunzhisheng.cn

Python 第三方包(可选,按输入格式需要)

包名用途必要条件
openpyxl读取 .xlsx 文件输入为 xlsx 时必须
pypdf提取 PDF 文本输入为 pdf 时必须(或用 pdftotext 替代)

安装:pip install openpyxl pypdf

外部工具(可选,按输入格式需要)

工具用途必要条件
LibreOffice (soffice)转换 .doc / .xls 为文本输入为 doc/xls 时必须
pdftotext(poppler-utils)提取 PDF 文本输入为 pdf 且未安装 pypdf 时必须
tesseract(含 chi_sim+eng 语言包)图片 OCR输入为 png/jpg/bmp/tif 等图片时必须

安装(Ubuntu/Debian):sudo apt-get install libreoffice poppler-utils tesseract-ocr tesseract-ocr-chi-sim

仅使用 TXT/JSON 输入时,无需安装任何第三方包或外部工具。

测试命令

skills 目录执行(网络自测):

python3 self_tests/med-followup-record-struct/self_test_followup_record_struct.py --run-network

Comments

Loading comments...