# 江苏医保社保卡读取最佳实践建议 ## 🎯 **智能重置策略(推荐方案)** ### 📋 **策略概述** 基于用户使用场景(网页点击按钮读卡),采用智能重置策略: ``` 1. 系统启动时 → 初始化一次 2. 患者A → 点击读卡 → 成功 3. 患者B → 点击读卡 → 成功 4. 患者C → 点击读卡 → 成功 5. 如果连续失败 → 自动重置 → 重新初始化 6. 继续正常读卡... ``` ### 🔄 **核心实现** #### JavaScript智能读卡函数 ```javascript let consecutiveFailures = 0; const MAX_FAILURES = 3; // 连续失败3次后自动重置 async function smartReadCard() { try { // 调用读卡API const response = await fetch('/api/jiangsu/readcard', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({}) }); const result = await response.json(); if (result.success) { consecutiveFailures = 0; // 成功后重置失败计数 console.log('读卡成功:', result.data); return result; } else { throw new Error(result.message); } } catch (error) { consecutiveFailures++; console.log(`读卡失败 ${consecutiveFailures}/${MAX_FAILURES}:`, error.message); if (consecutiveFailures >= MAX_FAILURES) { console.log('连续失败达到阈值,自动重置系统...'); try { // 自动重置系统 await fetch('/api/jiangsu/reset', { method: 'POST' }); // 重新初始化 const initResponse = await fetch('/api/jiangsu/init', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ ip: "192.168.1.100", port: "8080", timeout: "30000", logPath: "C:\\logs\\jiangsu_medical.log", ecUrl: "https://fuwu.nhsa.gov.cn", orgCode: "H32010000001", deviceNo: "设备编号001", operId: "操作员001", operName: "系统操作员", officeId: "科室001", officeName: "门诊部", machineCode: "终端001" }) }); if (initResponse.ok) { consecutiveFailures = 0; // 重置成功后清零 console.log('系统重置并重新初始化完成'); // 重置后再次尝试读卡 return await readCardDirect(); // 直接调用读卡,避免递归 } else { throw new Error('系统重置失败'); } } catch (resetError) { console.error('自动重置过程失败:', resetError); throw new Error('系统重置失败,请手动重启应用'); } } throw error; // 未达到重置阈值,直接抛出错误 } } // 直接读卡函数(避免重置逻辑递归) async function readCardDirect() { const response = await fetch('/api/jiangsu/readcard', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({}) }); const result = await response.json(); if (!result.success) { throw new Error(result.message); } return result; } ``` ### 🌐 **完整的HTML页面实现** ```html 江苏医保读卡系统

江苏医保社保卡读取系统

系统准备中...
``` ### 📊 **策略特点** #### ✅ **优势** 1. **高效率** - 系统启动时初始化一次,避免重复初始化开销 2. **智能恢复** - 连续失败3次自动重置,无需人工干预 3. **用户友好** - 自动处理异常,用户体验流畅 4. **状态可视** - 实时显示失败计数和系统状态 5. **手动备份** - 提供手动重置选项作为备用方案 #### 🔄 **工作流程** ``` 正常流程: 启动 → 初始化 → 读卡成功 → 读卡成功 → 读卡成功 → ... 异常恢复: 读卡失败1次 → 读卡失败2次 → 读卡失败3次 → 自动重置 → 重新初始化 → 继续读卡 ``` #### 📈 **性能对比** | 策略 | 初始化频率 | 响应速度 | 自动恢复 | 用户体验 | 推荐度 | |------|------------|----------|----------|----------|--------| | 智能重置 | 启动+异常时 | 快速 | ✅ 自动 | 优秀 | ⭐⭐⭐⭐⭐ | | 手动重置 | 启动+手动时 | 快速 | ❌ 手动 | 良好 | ⭐⭐⭐⭐ | | 每次重置 | 每次读卡 | 慢 | ❌ 无 | 差 | ⭐ | ### 🎯 **实施建议** 1. **部署此HTML页面**作为读卡界面 2. **设置失败阈值**为3次(可根据实际情况调整) 3. **配置初始化参数**(IP、端口等) 4. **监控系统日志**了解重置频率 5. **定期维护**确保DLL文件正常 这种智能重置策略既保证了系统的高效运行,又提供了自动故障恢复能力,是医疗场景下的最佳实践方案。