|
@@ -0,0 +1,600 @@
|
|
|
+<!DOCTYPE html>
|
|
|
+<html lang="zh-CN">
|
|
|
+<head>
|
|
|
+ <meta charset="UTF-8">
|
|
|
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
+ <title>江苏工伤联网结算接口测试</title>
|
|
|
+ <style>
|
|
|
+ body {
|
|
|
+ font-family: 'Microsoft YaHei', Arial, sans-serif;
|
|
|
+ margin: 0;
|
|
|
+ padding: 20px;
|
|
|
+ background-color: #f0f0f0;
|
|
|
+ }
|
|
|
+ .container {
|
|
|
+ max-width: 1000px;
|
|
|
+ margin: 0 auto;
|
|
|
+ background: white;
|
|
|
+ border-radius: 8px;
|
|
|
+ box-shadow: 0 2px 10px rgba(0,0,0,0.1);
|
|
|
+ overflow: hidden;
|
|
|
+ }
|
|
|
+ .header {
|
|
|
+ background: #4472C4;
|
|
|
+ color: white;
|
|
|
+ padding: 15px 20px;
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: bold;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+ .header::before {
|
|
|
+ content: "🏥";
|
|
|
+ margin-right: 10px;
|
|
|
+ font-size: 18px;
|
|
|
+ }
|
|
|
+ .button-group {
|
|
|
+ padding: 20px;
|
|
|
+ border-bottom: 1px solid #ddd;
|
|
|
+ background: #f8f9fa;
|
|
|
+ }
|
|
|
+ .btn {
|
|
|
+ background: #5B9BD5;
|
|
|
+ color: white;
|
|
|
+ border: none;
|
|
|
+ padding: 8px 16px;
|
|
|
+ margin: 4px;
|
|
|
+ border-radius: 4px;
|
|
|
+ cursor: pointer;
|
|
|
+ font-size: 14px;
|
|
|
+ min-width: 80px;
|
|
|
+ transition: background-color 0.2s;
|
|
|
+ }
|
|
|
+ .btn:hover {
|
|
|
+ background: #4682B4;
|
|
|
+ }
|
|
|
+ .btn:active {
|
|
|
+ background: #2F5496;
|
|
|
+ }
|
|
|
+ .btn.init { background: #70AD47; }
|
|
|
+ .btn.init:hover { background: #5A8A3A; }
|
|
|
+ .btn.signin { background: #FFC000; color: #333; }
|
|
|
+ .btn.signin:hover { background: #E6AC00; }
|
|
|
+ .btn.signout { background: #FF6B6B; }
|
|
|
+ .btn.signout:hover { background: #E55555; }
|
|
|
+ .btn.business { background: #5B9BD5; }
|
|
|
+ .btn.business:hover { background: #4682B4; }
|
|
|
+ .btn.clear { background: #D9534F; }
|
|
|
+ .btn.clear:hover { background: #C9302C; }
|
|
|
+ .btn.reset { background: #6C757D; }
|
|
|
+ .btn.reset:hover { background: #5A6268; }
|
|
|
+
|
|
|
+ .section {
|
|
|
+ padding: 15px 20px;
|
|
|
+ }
|
|
|
+ .section-title {
|
|
|
+ font-weight: bold;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ color: #333;
|
|
|
+ }
|
|
|
+ .param-area {
|
|
|
+ width: 100%;
|
|
|
+ height: 300px;
|
|
|
+ border: 1px solid #ccc;
|
|
|
+ padding: 10px;
|
|
|
+ font-family: 'Courier New', monospace;
|
|
|
+ font-size: 12px;
|
|
|
+ resize: vertical;
|
|
|
+ background: #fafafa;
|
|
|
+ }
|
|
|
+ .param-area:focus {
|
|
|
+ outline: none;
|
|
|
+ border-color: #5B9BD5;
|
|
|
+ background: white;
|
|
|
+ }
|
|
|
+ .help-text {
|
|
|
+ font-size: 12px;
|
|
|
+ color: #666;
|
|
|
+ margin-top: 5px;
|
|
|
+ line-height: 1.4;
|
|
|
+ }
|
|
|
+ .function-help {
|
|
|
+ background: #e8f4fd;
|
|
|
+ border: 1px solid #b6d7ff;
|
|
|
+ border-radius: 4px;
|
|
|
+ padding: 10px;
|
|
|
+ margin: 10px 0;
|
|
|
+ font-size: 12px;
|
|
|
+ color: #0066cc;
|
|
|
+ }
|
|
|
+ .status-bar {
|
|
|
+ background: #f8f9fa;
|
|
|
+ border-top: 1px solid #ddd;
|
|
|
+ padding: 10px 20px;
|
|
|
+ font-size: 12px;
|
|
|
+ color: #666;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+ .error-msg {
|
|
|
+ color: #d9534f;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+ .success-msg {
|
|
|
+ color: #5cb85c;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+ </style>
|
|
|
+</head>
|
|
|
+<body>
|
|
|
+ <div class="container">
|
|
|
+ <div class="header">
|
|
|
+ 江苏工伤联网结算接口测试工具 - WorkInjuryInterfaceTest
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="button-group">
|
|
|
+ <!-- 系统管理按钮 -->
|
|
|
+ <button class="btn init" onclick="loadInitParams()" title="初始化工伤联网系统">初始化</button>
|
|
|
+ <button class="btn signin" onclick="loadSignInParams()" title="操作员签到">签到</button>
|
|
|
+ <button class="btn signout" onclick="loadSignOutParams()" title="操作员签退">签退</button>
|
|
|
+ <button class="btn business" onclick="loadBusinessParams()" title="工伤业务交易">业务</button>
|
|
|
+
|
|
|
+ <!-- 特殊功能按钮 -->
|
|
|
+ <button class="btn" onclick="loadHealthCheckParams()" title="检查系统健康状态">健康检查</button>
|
|
|
+ <button class="btn" onclick="loadStatsParams()" title="获取系统统计信息">统计信息</button>
|
|
|
+
|
|
|
+ <!-- 执行按钮 -->
|
|
|
+ <button class="btn" onclick="callWorkInjuryAPI()" title="调用工伤联网接口" style="background: #28A745; font-weight: bold;">🚀 调用接口</button>
|
|
|
+
|
|
|
+ <!-- 工具按钮 -->
|
|
|
+ <button class="btn clear" onclick="clearAll()" title="清空入参和出参">清屏</button>
|
|
|
+ <button class="btn reset" onclick="resetToDefault()" title="恢复默认参数">重置</button>
|
|
|
+ <button class="btn" onclick="showParamExamples()" title="显示参数示例" style="background: #17A2B8;">参数示例</button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 功能说明 -->
|
|
|
+ <div class="function-help">
|
|
|
+ <strong>📋 使用说明:</strong><br>
|
|
|
+ 1. <strong>初始化</strong>:系统启动时必须先调用,配置医院信息和系统参数<br>
|
|
|
+ 2. <strong>签到</strong>:操作员登录工伤系统,获取签到流水号(每日首次使用)<br>
|
|
|
+ 3. <strong>签退</strong>:操作员退出工伤系统(下班时调用)<br>
|
|
|
+ 4. <strong>业务</strong>:处理工伤患者的各种业务交易(读卡、登记、结算等)<br>
|
|
|
+ 5. <strong>健康检查</strong>:检查系统运行状态和DLL文件<br>
|
|
|
+ 6. <strong>统计信息</strong>:查看交易统计和系统状态<br><br>
|
|
|
+ <strong>⚠️ 注意事项:</strong>必须按顺序操作:初始化 → 签到 → 业务交易 → 签退<br><br>
|
|
|
+ <strong>🔧 关于"诊区"功能的说明:</strong><br>
|
|
|
+ 原测试界面的"诊区"功能在工伤系统中不适用,因为:<br>
|
|
|
+ • 工伤系统关注的是<strong>业务交易类型</strong>,而非物理诊疗区域<br>
|
|
|
+ • 江苏工伤联网规范中没有诊区概念,主要是签到、读卡、登记、结算等交易<br>
|
|
|
+ • 已改为"健康检查"功能,更符合系统监控需求
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="section">
|
|
|
+ <div class="section-title">入参</div>
|
|
|
+ <textarea id="inputParams" class="param-area" placeholder="请选择上方按钮加载默认参数,或手动输入JSON格式的请求参数..."></textarea>
|
|
|
+ <div class="help-text">
|
|
|
+ 💡 <strong>参数格式说明:</strong><br>
|
|
|
+ • <strong>action</strong>: 操作类型 (init|transaction|health|stats|signin_status)<br>
|
|
|
+ • <strong>transactionName</strong>: 交易名称 (读卡|RegisterPatient|PreSettle|Settle等)<br>
|
|
|
+ • <strong>businessParams</strong>: 业务参数对象<br>
|
|
|
+ • <strong>identifyMode</strong>: 识别方式 (1-实体卡|2-电子凭证)<br>
|
|
|
+ • <strong>operatorId</strong>: 操作员编号<br>
|
|
|
+ • <strong>operatorName</strong>: 操作员姓名<br><br>
|
|
|
+
|
|
|
+ 📝 <strong>使用步骤:</strong><br>
|
|
|
+ 1. 点击上方按钮加载对应功能的默认参数<br>
|
|
|
+ 2. 根据实际情况修改参数值(如操作员信息、患者信息等)<br>
|
|
|
+ 3. 点击"🚀 调用接口"按钮或双击此文本框或按Ctrl+Enter<br>
|
|
|
+ 4. 查看下方出参框中的返回结果<br><br>
|
|
|
+
|
|
|
+ <span id="currentFunction" style="color: #0066cc; font-weight: bold;">当前功能:未选择</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="section">
|
|
|
+ <div class="section-title">出参</div>
|
|
|
+ <textarea id="outputParams" class="param-area" placeholder="调用接口后,返回结果将显示在这里..." readonly></textarea>
|
|
|
+ <div class="help-text">
|
|
|
+ 📊 <strong>返回字段说明:</strong><br>
|
|
|
+ • <strong>success</strong>: 调用是否成功 (true|false)<br>
|
|
|
+ • <strong>code</strong>: 结果代码 (200-成功,其他-失败)<br>
|
|
|
+ • <strong>message</strong>: 结果描述信息<br>
|
|
|
+ • <strong>data</strong>: 具体业务数据<br>
|
|
|
+ • <strong>device</strong>: 设备标识
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="status-bar">
|
|
|
+ <span id="statusMsg">就绪 - 请选择功能并配置参数</span>
|
|
|
+ <span>接口地址: http://localhost:8321/api/entry/workinjury</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <script>
|
|
|
+ const inputArea = document.getElementById('inputParams');
|
|
|
+ const outputArea = document.getElementById('outputParams');
|
|
|
+ const statusMsg = document.getElementById('statusMsg');
|
|
|
+
|
|
|
+ // 默认参数配置
|
|
|
+ const defaultParams = {
|
|
|
+ init: {
|
|
|
+ action: "init",
|
|
|
+ config: {
|
|
|
+ fixmedinsCode: "H32132200561",
|
|
|
+ fixmedinsName: "宿迁沭阳铭和医院",
|
|
|
+ receiverSysCode: "JSYTH",
|
|
|
+ interfaceVersion: "V2.1",
|
|
|
+ operatorType: "1",
|
|
|
+ defaultOperator: "001",
|
|
|
+ defaultOperatorName: "收费员张三",
|
|
|
+ logPath: "logs/workinjury/"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ signin: {
|
|
|
+ action: "transaction",
|
|
|
+ transactionName: "SignIn",
|
|
|
+ operatorId: "001",
|
|
|
+ operatorName: "收费员张三"
|
|
|
+ },
|
|
|
+ signout: {
|
|
|
+ action: "transaction",
|
|
|
+ transactionName: "SignOut",
|
|
|
+ operatorId: "001",
|
|
|
+ operatorName: "收费员张三"
|
|
|
+ },
|
|
|
+ business: {
|
|
|
+ action: "transaction",
|
|
|
+ transactionName: "读卡",
|
|
|
+ identifyMode: "1",
|
|
|
+ operatorId: "001",
|
|
|
+ operatorName: "收费员张三",
|
|
|
+ businessParams: {
|
|
|
+ // 根据具体交易类型填写对应参数
|
|
|
+ // 例如登记时需要填写:psn_no、visit_type、dept_code等
|
|
|
+ // 例如结算时需要填写:visit_no、fee_details等
|
|
|
+ }
|
|
|
+ },
|
|
|
+ health: {
|
|
|
+ action: "health"
|
|
|
+ },
|
|
|
+ stats: {
|
|
|
+ action: "stats"
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ // 加载初始化参数
|
|
|
+ function loadInitParams() {
|
|
|
+ inputArea.value = JSON.stringify(defaultParams.init, null, 2);
|
|
|
+ updateStatus('已加载初始化参数 - 配置医院信息和系统环境');
|
|
|
+ updateCurrentFunction('系统初始化');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 加载签到参数
|
|
|
+ function loadSignInParams() {
|
|
|
+ inputArea.value = JSON.stringify(defaultParams.signin, null, 2);
|
|
|
+ updateStatus('已加载签到参数 - 操作员登录工伤系统');
|
|
|
+ updateCurrentFunction('操作员签到');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 加载签退参数
|
|
|
+ function loadSignOutParams() {
|
|
|
+ inputArea.value = JSON.stringify(defaultParams.signout, null, 2);
|
|
|
+ updateStatus('已加载签退参数 - 操作员退出工伤系统');
|
|
|
+ updateCurrentFunction('操作员签退');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 加载业务交易参数
|
|
|
+ function loadBusinessParams() {
|
|
|
+ const businessExamples = [
|
|
|
+ {
|
|
|
+ name: "读卡",
|
|
|
+ params: {
|
|
|
+ action: "transaction",
|
|
|
+ transactionName: "读卡",
|
|
|
+ identifyMode: "1",
|
|
|
+ operatorId: "001",
|
|
|
+ operatorName: "收费员张三"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "患者登记",
|
|
|
+ params: {
|
|
|
+ action: "transaction",
|
|
|
+ transactionName: "RegisterPatient",
|
|
|
+ businessParams: {
|
|
|
+ psn_no: "32010219800101001X",
|
|
|
+ visit_type: "1",
|
|
|
+ dept_code: "001",
|
|
|
+ dept_name: "骨科",
|
|
|
+ doctor_code: "DOC001",
|
|
|
+ doctor_name: "张主任",
|
|
|
+ diag_code: "M79.900",
|
|
|
+ diag_name: "骨折",
|
|
|
+ visit_time: "2024-12-01 10:30:00"
|
|
|
+ },
|
|
|
+ identifyMode: "1"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "费用预结算",
|
|
|
+ params: {
|
|
|
+ action: "transaction",
|
|
|
+ transactionName: "PreSettle",
|
|
|
+ businessParams: {
|
|
|
+ visit_no: "V20241201001",
|
|
|
+ fee_details: [
|
|
|
+ {
|
|
|
+ fee_ocur_time: "2024-12-01 10:30:00",
|
|
|
+ med_list_codg: "001",
|
|
|
+ med_list_name: "X光片检查",
|
|
|
+ med_chrgitm_type: "4",
|
|
|
+ fee_amt: 120.00,
|
|
|
+ cnt: 1,
|
|
|
+ pric: 120.00,
|
|
|
+ spec: "胸部X光",
|
|
|
+ dept_code: "001",
|
|
|
+ dept_name: "骨科"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "正式结算",
|
|
|
+ params: {
|
|
|
+ action: "transaction",
|
|
|
+ transactionName: "Settle",
|
|
|
+ businessParams: {
|
|
|
+ visit_no: "V20241201001",
|
|
|
+ pre_settle_id: "PS20241201001"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ];
|
|
|
+
|
|
|
+ // 显示业务交易选择提示
|
|
|
+ const selected = prompt(
|
|
|
+ "请选择业务交易类型:\n" +
|
|
|
+ "1. 读卡\n" +
|
|
|
+ "2. 患者登记\n" +
|
|
|
+ "3. 费用预结算\n" +
|
|
|
+ "4. 正式结算\n\n" +
|
|
|
+ "请输入数字 (1-4):"
|
|
|
+ );
|
|
|
+
|
|
|
+ const index = parseInt(selected) - 1;
|
|
|
+ if (index >= 0 && index < businessExamples.length) {
|
|
|
+ inputArea.value = JSON.stringify(businessExamples[index].params, null, 2);
|
|
|
+ updateStatus(`已加载业务参数 - ${businessExamples[index].name}`);
|
|
|
+ updateCurrentFunction(`业务交易 - ${businessExamples[index].name}`);
|
|
|
+ } else {
|
|
|
+ inputArea.value = JSON.stringify(defaultParams.business, null, 2);
|
|
|
+ updateStatus('已加载默认业务参数 - 读卡');
|
|
|
+ updateCurrentFunction('业务交易 - 读卡');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 加载健康检查参数
|
|
|
+ function loadHealthCheckParams() {
|
|
|
+ inputArea.value = JSON.stringify(defaultParams.health, null, 2);
|
|
|
+ updateStatus('已加载健康检查参数 - 系统状态诊断');
|
|
|
+ updateCurrentFunction('系统健康检查');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 加载统计信息参数
|
|
|
+ function loadStatsParams() {
|
|
|
+ inputArea.value = JSON.stringify(defaultParams.stats, null, 2);
|
|
|
+ updateStatus('已加载统计信息参数 - 查看系统运行数据');
|
|
|
+ updateCurrentFunction('系统统计信息');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 清空所有内容
|
|
|
+ function clearAll() {
|
|
|
+ inputArea.value = '';
|
|
|
+ outputArea.value = '';
|
|
|
+ updateStatus('已清空所有内容');
|
|
|
+ updateCurrentFunction('未选择');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 重置为默认参数
|
|
|
+ function resetToDefault() {
|
|
|
+ loadInitParams();
|
|
|
+ outputArea.value = '';
|
|
|
+ updateStatus('已重置为默认初始化参数');
|
|
|
+ // loadInitParams()中已包含updateCurrentFunction调用
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新状态信息
|
|
|
+ function updateStatus(message, isError = false) {
|
|
|
+ statusMsg.textContent = message;
|
|
|
+ statusMsg.className = isError ? 'error-msg' : 'success-msg';
|
|
|
+
|
|
|
+ // 3秒后恢复默认状态
|
|
|
+ setTimeout(() => {
|
|
|
+ statusMsg.textContent = '就绪 - 请选择功能并配置参数';
|
|
|
+ statusMsg.className = '';
|
|
|
+ }, 3000);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新当前功能显示
|
|
|
+ function updateCurrentFunction(functionName) {
|
|
|
+ const currentFunctionSpan = document.getElementById('currentFunction');
|
|
|
+ currentFunctionSpan.textContent = `当前功能:${functionName}`;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 调用接口(当前只是模拟,需要连接实际接口)
|
|
|
+ async function callWorkInjuryAPI() {
|
|
|
+ try {
|
|
|
+ const inputText = inputArea.value.trim();
|
|
|
+ if (!inputText) {
|
|
|
+ updateStatus('请先输入参数', true);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ const params = JSON.parse(inputText);
|
|
|
+ updateStatus('正在调用接口...');
|
|
|
+
|
|
|
+ const response = await fetch('http://localhost:8321/api/entry/workinjury', {
|
|
|
+ method: 'POST',
|
|
|
+ headers: {
|
|
|
+ 'Content-Type': 'application/json'
|
|
|
+ },
|
|
|
+ body: JSON.stringify(params)
|
|
|
+ });
|
|
|
+
|
|
|
+ const result = await response.json();
|
|
|
+ outputArea.value = JSON.stringify(result, null, 2);
|
|
|
+
|
|
|
+ if (result.success) {
|
|
|
+ updateStatus('接口调用成功');
|
|
|
+ } else {
|
|
|
+ updateStatus(`接口调用失败: ${result.message}`, true);
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (error) {
|
|
|
+ outputArea.value = JSON.stringify({
|
|
|
+ success: false,
|
|
|
+ error: error.message,
|
|
|
+ timestamp: new Date().toISOString()
|
|
|
+ }, null, 2);
|
|
|
+ updateStatus(`调用异常: ${error.message}`, true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 双击入参区域调用接口
|
|
|
+ inputArea.addEventListener('dblclick', callWorkInjuryAPI);
|
|
|
+
|
|
|
+ // 添加键盘快捷键支持
|
|
|
+ document.addEventListener('keydown', function(e) {
|
|
|
+ if (e.ctrlKey) {
|
|
|
+ switch(e.key) {
|
|
|
+ case '1': loadInitParams(); e.preventDefault(); break;
|
|
|
+ case '2': loadSignInParams(); e.preventDefault(); break;
|
|
|
+ case '3': loadSignOutParams(); e.preventDefault(); break;
|
|
|
+ case '4': loadBusinessParams(); e.preventDefault(); break;
|
|
|
+ case 'Enter': callWorkInjuryAPI(); e.preventDefault(); break;
|
|
|
+ case 'Delete': clearAll(); e.preventDefault(); break;
|
|
|
+ case 'r': resetToDefault(); e.preventDefault(); break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 显示参数示例
|
|
|
+ function showParamExamples() {
|
|
|
+ const examples = `
|
|
|
+📋 工伤联网接口参数示例大全
|
|
|
+
|
|
|
+🔧 1. 系统初始化
|
|
|
+{
|
|
|
+ "action": "init",
|
|
|
+ "config": {
|
|
|
+ "fixmedinsCode": "H32132200561", // 医院编号(必填)
|
|
|
+ "fixmedinsName": "宿迁沭阳铭和医院", // 医院名称(必填)
|
|
|
+ "receiverSysCode": "JSYTH", // 固定值
|
|
|
+ "interfaceVersion": "V2.1", // 固定值
|
|
|
+ "operatorType": "1", // 1-人工 2-自助
|
|
|
+ "defaultOperator": "001", // 操作员编号
|
|
|
+ "defaultOperatorName": "收费员张三" // 操作员姓名
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+👤 2. 操作员签到
|
|
|
+{
|
|
|
+ "action": "transaction",
|
|
|
+ "transactionName": "SignIn",
|
|
|
+ "operatorId": "001", // 当前操作员编号
|
|
|
+ "operatorName": "收费员张三" // 当前操作员姓名
|
|
|
+}
|
|
|
+
|
|
|
+🏥 3. 工伤患者读卡
|
|
|
+{
|
|
|
+ "action": "transaction",
|
|
|
+ "transactionName": "读卡",
|
|
|
+ "identifyMode": "1", // 1-实体卡 2-电子凭证
|
|
|
+ "operatorId": "001",
|
|
|
+ "operatorName": "收费员张三"
|
|
|
+}
|
|
|
+
|
|
|
+📝 4. 患者登记
|
|
|
+{
|
|
|
+ "action": "transaction",
|
|
|
+ "transactionName": "RegisterPatient",
|
|
|
+ "businessParams": {
|
|
|
+ "psn_no": "32010219800101001X", // 身份证号(必填)
|
|
|
+ "visit_type": "1", // 1-门诊 2-住院
|
|
|
+ "dept_code": "001", // 科室编码
|
|
|
+ "dept_name": "骨科", // 科室名称
|
|
|
+ "doctor_code": "DOC001", // 医生编码
|
|
|
+ "doctor_name": "张主任", // 医生姓名
|
|
|
+ "diag_code": "M79.900", // 诊断代码
|
|
|
+ "diag_name": "骨折" // 诊断名称
|
|
|
+ },
|
|
|
+ "identifyMode": "1"
|
|
|
+}
|
|
|
+
|
|
|
+💰 5. 费用预结算
|
|
|
+{
|
|
|
+ "action": "transaction",
|
|
|
+ "transactionName": "PreSettle",
|
|
|
+ "businessParams": {
|
|
|
+ "visit_no": "V20241201001", // 就诊号(来自登记结果)
|
|
|
+ "fee_details": [ // 费用明细数组
|
|
|
+ {
|
|
|
+ "fee_ocur_time": "2024-12-01 10:30:00",
|
|
|
+ "med_list_codg": "001", // 项目编码
|
|
|
+ "med_list_name": "X光检查", // 项目名称
|
|
|
+ "med_chrgitm_type": "4", // 1-药品 2-诊疗 4-检查
|
|
|
+ "fee_amt": 120.00, // 总金额
|
|
|
+ "cnt": 1, // 数量
|
|
|
+ "pric": 120.00, // 单价
|
|
|
+ "spec": "胸部X光", // 规格
|
|
|
+ "dept_code": "001", // 科室编码
|
|
|
+ "dept_name": "骨科" // 科室名称
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+💳 6. 正式结算
|
|
|
+{
|
|
|
+ "action": "transaction",
|
|
|
+ "transactionName": "Settle",
|
|
|
+ "businessParams": {
|
|
|
+ "visit_no": "V20241201001", // 就诊号
|
|
|
+ "pre_settle_id": "PS20241201001" // 预结算ID(来自预结算结果)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+📊 7. 健康检查
|
|
|
+{
|
|
|
+ "action": "health"
|
|
|
+}
|
|
|
+
|
|
|
+📈 8. 统计信息
|
|
|
+{
|
|
|
+ "action": "stats"
|
|
|
+}
|
|
|
+
|
|
|
+⚠️ 重要提示:
|
|
|
+• 患者身份证号、就诊号、预结算ID等关键参数必须使用真实有效的值
|
|
|
+• 医院编号和名称必须与江苏人社备案信息一致
|
|
|
+• 操作员信息建议使用当前登录用户的真实信息
|
|
|
+• 费用明细中的医疗目录编码需要符合当地医保目录规范
|
|
|
+ `;
|
|
|
+
|
|
|
+ alert(examples);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 页面加载时显示欢迎信息
|
|
|
+ window.onload = function() {
|
|
|
+ updateStatus('工伤联网接口测试工具已就绪');
|
|
|
+ // 默认加载初始化参数
|
|
|
+ setTimeout(() => {
|
|
|
+ loadInitParams();
|
|
|
+ }, 1000);
|
|
|
+ };
|
|
|
+ </script>
|
|
|
+</body>
|
|
|
+</html>
|
|
|
+
|