| name | emergency-card |
| description | 生成紧急情况下快速访问的医疗信息摘要卡片。当用户需要旅行、就诊准备、紧急情况或询问"紧急信息"、"医疗卡片"、"急救信息"时使用此技能。提取� |
| category | AI & Agents |
| source | antigravity |
| tags | ["python","javascript","react","pdf","ai","tailwind","rag"] |
| url | https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/emergency-card |
紧急医疗信息卡生成器
生成紧急情况下快速访问的医疗信息摘要,用于急救或就医。
核心功能
1. 紧急信息提取
从用户的健康数据中提取最关键的信息:
- 严重过敏:优先提取4级(过敏性休克)和3级过敏
- 当前用药:活跃药物的名称、剂量、频率
- 急症情况:需要紧急处理的医疗状况
- 植入物:心脏起搏器、支架等(影响检查和治疗)
- 紧急联系人:快速联系的家属信息
2. 信息优先级排序
按照医疗紧急程度对信息排序:
- P0 - 危急信息:过敏性休克、严重药物过敏、危及生命的疾病
- P1 - 重要信息:当前用药、慢性病、植入物
- P2 - 一般信息:血型、年龄、体重、最近检查
3. 多格式输出
支持多种输出格式以适应不同场景:
- HTML格式:可打印网页,使用Tailwind CSS和Lucide图标(推荐)
- JSON格式:结构化数据,便于系统集成
- 文本格式:简洁可读,适合打印携带
- PDF格式:专业打印,适合长期保存
HTML格式(新增)
生成独立的HTML文件,包含:
- Tailwind CSS样式(通过CDN)
- Lucide图标(通过CDN)
- 响应式设计
- 打印优化
- 多种尺寸变体(A4、钱包卡、大字版)
- 自动卡片类型检测(标准、儿童、老年、严重过敏)
使用方式:
python scripts/generate_emergency_card.py
python scripts/generate_emergency_card.py standard
python scripts/generate_emergency_card.py child
python scripts/generate_emergency_card.py elderly
python scripts/generate_emergency_card.py severe
python scripts/generate_emergency_card.py standard a4
python scripts/generate_emergency_card.py standard wallet
python scripts/generate_emergency_card.py standard large
输出文件:emergency-cards/emergency-card-{variant}-{YYYY-MM-DD}.html
4. 离线可用
- 支持手机保存(相册、文件)
- 支持打印携带(钱包、包)
- 支持云端备份(可选)
使用说明
触发条件
当用户提到以下场景时,使用此技能:
- ✅ "生成紧急医疗信息卡"
- ✅ "我需要旅行,如何快速提供医疗信息"
- ✅ "把我的过敏信息整理成卡片"
- ✅ "紧急情况急救信息"
- ✅ "就医准备资料"
- ✅ "医疗信息摘要"
执行步骤
步骤 1: 读取用户基础数据
从以下数据源读取信息:
const profile = readFile('data/profile.json');
const allergies = readFile('data/allergies.json');
const medications = readFile('data/medications/medications.json');
const radiation = readFile('data/radiation-records.json');
const surgeries = glob('data/手术记录/**/*.json');
const dischargeSummaries = glob('data/出院小结/**/*.json');
步骤 2: 提取关键信息
2.1 基础信息
const basicInfo = {
name: profile.basic_info?.name || "未设置",
age: calculateAge(profile.basic_info?.birth_date),
gender: profile.basic_info?.gender || "未设置",
blood_type: profile.basic_info?.blood_type || "未知",
weight: `${profile.basic_info?.weight} ${profile.basic_info?.weight_unit}`,
height: `${profile.basic_info?.height} ${profile.basic_info?.height_unit}`,
bmi: profile.calculated?.bmi,
emergency_contacts: profile.emergency_contacts || []
};
2.2 严重过敏
const criticalAllergies = allergies.allergies
.filter(a => a.severity_level >= 3 && a.current_status.status === 'active')
.map(a => ({
allergen: a.allergen.name,
severity: `过敏${getSeverityLabel(a.severity_level)}(${a.severity_level}级)`,
reaction: a.reaction_description,
diagnosed_date: a.diagnosis_date
}));
2.3 慢性疾病诊断(新增)
const chronicConditions = [];
try {
const hypertensionData = readFile('data/hypertension-tracker.json');
if (hypertensionData.hypertension_management?.diagnosis_date) {
chronicConditions.push({
condition: '高血压',
diagnosis_date: hypertensionData.hypertension_management.diagnosis_date,
classification: hypertensionData.hypertension_management.classification,
current_bp: hypertensionData.hypertension_management.average_bp,
risk_level: hypertensionData.hypertension_management.cardiovascular_risk?.risk_level
});
}
} catch (e) {
}
try {
const diabetesData = readFile('data/diabetes-tracker.json');
if (diabetesData.diabetes_management?.diagnosis_date) {
chronicConditions.push({
condition: diabetesData.diabetes_management.type === 'type_1' ? '1型糖尿病' : '2型糖尿病',
diagnosis_date: diabetesData.diabetes_management.diagnosis_date,
: diabetesData..,
: diabetesData..?.?.[]?.,
: diabetesData..?. ? :
});
}
} (e) {
}
{
copdData = ();
(copdData.?.) {
chronicConditions.({
: ,
: copdData..,
: ,
: copdData..?.?.,
: copdData..?.
});
}
} (e) {
}
2.4 当前用药
const currentMedications = medications.medications
.filter(m => m.active === true)
.map(m => ({
name: m.name,
dosage: `${m.dosage.value}${m.dosage.unit}`,
frequency: getFrequencyLabel(m.frequency),
instructions: m.instructions,
warnings: m.warnings || []
}));
2.4 医疗状况
从出院小结中提取诊断信息:
const medicalConditions = dischargeSummaries
.flatMap(ds => {
const data = readF