LIJU hace 4 meses
padre
commit
d3e7250ca9

BIN
.vs/ThCardReader/CopilotIndices/17.14.786.1071/CodeChunks.db


BIN
.vs/ThCardReader/CopilotIndices/17.14.786.1071/SemanticSymbols.db


BIN
.vs/ThCardReader/FileContentIndex/5be398a7-b36a-47a9-be4e-59595fd0ccff.vsidx


BIN
.vs/ThCardReader/FileContentIndex/9b2f1db5-790e-4c40-86c5-13052409ba4b.vsidx


BIN
.vs/ThCardReader/FileContentIndex/ac370f9f-b8f0-43a4-b222-c770d6f703fd.vsidx


BIN
.vs/ThCardReader/v17/.suo


+ 6 - 6
.vs/ThCardReader/v17/DocumentLayout.backup.json

@@ -34,12 +34,8 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 1,
+          "SelectedChildIndex": 0,
           "Children": [
-            {
-              "$type": "Bookmark",
-              "Name": "ST:0:0:{56df62a4-05a3-4e5b-aa1a-99371ccfb997}"
-            },
             {
               "$type": "Document",
               "DocumentIndex": 0,
@@ -48,7 +44,7 @@
               "RelativeDocumentMoniker": "ThCardReader\\MainForm.Designer.cs",
               "ToolTip": "E:\\huaihaiProject\\ThCardReader\\mhCardReader\\ThCardReader\\MainForm.Designer.cs",
               "RelativeToolTip": "ThCardReader\\MainForm.Designer.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAIAAAAaAAAAAAAAAA==",
+              "ViewState": "AgIAAAMAAAAAAAAAAAAAAAsAAAAWAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-06-27T09:53:42.838Z",
               "EditorCaption": ""
@@ -97,6 +93,10 @@
               "WhenOpened": "2025-06-23T01:02:05.881Z",
               "EditorCaption": " [\u53EA\u8BFB]"
             },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{56df62a4-05a3-4e5b-aa1a-99371ccfb997}"
+            },
             {
               "$type": "Document",
               "DocumentIndex": 1,

+ 1 - 1
.vs/ThCardReader/v17/DocumentLayout.json

@@ -48,7 +48,7 @@
               "RelativeDocumentMoniker": "ThCardReader\\MainForm.Designer.cs",
               "ToolTip": "E:\\huaihaiProject\\ThCardReader\\mhCardReader\\ThCardReader\\MainForm.Designer.cs",
               "RelativeToolTip": "ThCardReader\\MainForm.Designer.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAIAAAAaAAAAAAAAAA==",
+              "ViewState": "AgIAAAMAAAAAAAAAAAAAAAsAAAAWAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-06-27T09:53:42.838Z",
               "EditorCaption": ""

+ 296 - 0
ThCardReader/EntryController.cs

@@ -526,5 +526,301 @@ namespace ThCardReader
 
             return result;
         }
+
+        /// <summary>
+        /// 江苏工伤联网结算接口 - POST方式
+        /// POST /api/entry/workinjury
+        /// </summary>
+        [HttpPost]
+        [Route("api/entry/workinjury")]
+        public JObject PostWorkInjury([FromBody] JObject request)
+        {
+            JObject result = new JObject();
+
+            try
+            {
+                // 检查请求体
+                if (request == null)
+                {
+                    result.Add("success", false);
+                    result.Add("code", 1001);
+                    result.Add("message", "请求体不能为空");
+                    result.Add("device", "江苏工伤联网接口");
+                    return result;
+                }
+
+                // 获取操作类型
+                string action = request["action"]?.ToString()?.ToLower() ?? "";
+                
+                if (string.IsNullOrEmpty(action))
+                {
+                    result.Add("success", false);
+                    result.Add("code", 1002);
+                    result.Add("message", "action参数不能为空");
+                    result.Add("device", "江苏工伤联网接口");
+                    return result;
+                }
+
+                // 根据操作类型处理不同的请求
+                switch (action)
+                {
+                    case "init":
+                        result = HandleWorkInjuryInit(request);
+                        break;
+
+                    case "transaction":
+                        result = HandleWorkInjuryTransaction(request);
+                        break;
+
+                    case "health":
+                        result = JiangSuWorkInjuryBusiness.HealthCheck();
+                        break;
+
+                    case "stats":
+                        result = JiangSuWorkInjuryBusiness.GetTransactionStatistics();
+                        break;
+
+                    case "signin_status":
+                        result = JiangSuWorkInjuryBusiness.GetSignInStatus();
+                        break;
+
+                    case "batch_upload":
+                        result = HandleWorkInjuryBatchUpload(request);
+                        break;
+
+                    case "complete_process":
+                        result = HandleWorkInjuryCompleteProcess(request);
+                        break;
+
+                    case "retry":
+                        result = HandleWorkInjuryRetry(request);
+                        break;
+
+                    case "reverse":
+                        result = HandleWorkInjuryReverse(request);
+                        break;
+
+                    default:
+                        result.Add("success", false);
+                        result.Add("code", 1003);
+                        result.Add("message", $"不支持的操作类型: {action}");
+                        result.Add("device", "江苏工伤联网接口");
+                        result.Add("supportedActions", "init, transaction, health, stats, signin_status, batch_upload, complete_process, retry, reverse");
+                        break;
+                }
+            }
+            catch (System.Exception ex)
+            {
+                result.Add("success", false);
+                result.Add("code", 1000);
+                result.Add("message", $"工伤联网接口处理异常: {ex.Message}");
+                result.Add("device", "江苏工伤联网接口");
+                result.Add("exception", ex.GetType().Name);
+            }
+
+            return result;
+        }
+
+        /// <summary>
+        /// 处理工伤联网初始化请求
+        /// </summary>
+        private JObject HandleWorkInjuryInit(JObject request)
+        {
+            try
+            {
+                var configObj = request["config"];
+                if (configObj != null)
+                {
+                    // 使用自定义配置
+                    var config = new JiangSuWorkInjuryBusiness.WorkInjuryConfig
+                    {
+                        FixmedinsCode = configObj["fixmedinsCode"]?.ToString() ?? "H00001",
+                        FixmedinsName = configObj["fixmedinsName"]?.ToString() ?? "第一人民医院",
+                        ReceiverSysCode = configObj["receiverSysCode"]?.ToString() ?? "JSYTH",
+                        InterfaceVersion = configObj["interfaceVersion"]?.ToString() ?? "V2.1",
+                        OperatorType = configObj["operatorType"]?.ToString() ?? "1",
+                        DefaultOperator = configObj["defaultOperator"]?.ToString() ?? "001",
+                        DefaultOperatorName = configObj["defaultOperatorName"]?.ToString() ?? "系统管理员",
+                        LogPath = configObj["logPath"]?.ToString() ?? "logs/workinjury/"
+                    };
+                    return JiangSuWorkInjuryBusiness.Initialize(config);
+                }
+                else
+                {
+                    // 使用默认配置
+                    return JiangSuWorkInjuryBusiness.Initialize();
+                }
+            }
+            catch (System.Exception ex)
+            {
+                var result = new JObject();
+                result.Add("success", false);
+                result.Add("code", 1004);
+                result.Add("message", $"工伤联网初始化处理异常: {ex.Message}");
+                result.Add("device", "江苏工伤联网接口");
+                return result;
+            }
+        }
+
+        /// <summary>
+        /// 处理工伤联网交易请求
+        /// </summary>
+        private JObject HandleWorkInjuryTransaction(JObject request)
+        {
+            try
+            {
+                string transactionName = request["transactionName"]?.ToString() ?? "";
+                if (string.IsNullOrEmpty(transactionName))
+                {
+                    var result = new JObject();
+                    result.Add("success", false);
+                    result.Add("code", 1005);
+                    result.Add("message", "transactionName参数不能为空");
+                    result.Add("device", "江苏工伤联网接口");
+                    return result;
+                }
+
+                object businessParams = request["businessParams"]?.ToObject<object>();
+                string identifyMode = request["identifyMode"]?.ToString() ?? "1";
+                string qrCodeInfo = request["qrCodeInfo"]?.ToString() ?? "";
+                string operatorId = request["operatorId"]?.ToString() ?? "";
+                string operatorName = request["operatorName"]?.ToString() ?? "";
+
+                return JiangSuWorkInjuryBusiness.ProcessWorkInjuryTransaction(
+                    transactionName, businessParams, identifyMode, qrCodeInfo, operatorId, operatorName);
+            }
+            catch (System.Exception ex)
+            {
+                var result = new JObject();
+                result.Add("success", false);
+                result.Add("code", 1006);
+                result.Add("message", $"工伤联网交易处理异常: {ex.Message}");
+                result.Add("device", "江苏工伤联网接口");
+                return result;
+            }
+        }
+
+        /// <summary>
+        /// 处理工伤联网批量上传请求
+        /// </summary>
+        private JObject HandleWorkInjuryBatchUpload(JObject request)
+        {
+            try
+            {
+                var prescriptionsArray = request["prescriptions"]?.ToObject<object[]>();
+                if (prescriptionsArray == null || prescriptionsArray.Length == 0)
+                {
+                    var result = new JObject();
+                    result.Add("success", false);
+                    result.Add("code", 1007);
+                    result.Add("message", "prescriptions参数不能为空");
+                    result.Add("device", "江苏工伤联网接口");
+                    return result;
+                }
+
+                string patientId = request["patientId"]?.ToString() ?? "";
+                string visitNo = request["visitNo"]?.ToString() ?? "";
+
+                return JiangSuWorkInjuryBusiness.BatchUploadPrescriptions(prescriptionsArray, patientId, visitNo);
+            }
+            catch (System.Exception ex)
+            {
+                var result = new JObject();
+                result.Add("success", false);
+                result.Add("code", 1008);
+                result.Add("message", $"工伤联网批量上传处理异常: {ex.Message}");
+                result.Add("device", "江苏工伤联网接口");
+                return result;
+            }
+        }
+
+        /// <summary>
+        /// 处理工伤联网完整流程请求
+        /// </summary>
+        private JObject HandleWorkInjuryCompleteProcess(JObject request)
+        {
+            try
+            {
+                object patientInfo = request["patientInfo"]?.ToObject<object>();
+                object[] feeDetails = request["feeDetails"]?.ToObject<object[]>();
+
+                return JiangSuWorkInjuryBusiness.CompleteWorkInjuryProcess(patientInfo, feeDetails);
+            }
+            catch (System.Exception ex)
+            {
+                var result = new JObject();
+                result.Add("success", false);
+                result.Add("code", 1009);
+                result.Add("message", $"工伤联网完整流程处理异常: {ex.Message}");
+                result.Add("device", "江苏工伤联网接口");
+                return result;
+            }
+        }
+
+        /// <summary>
+        /// 处理工伤联网智能重试请求
+        /// </summary>
+        private JObject HandleWorkInjuryRetry(JObject request)
+        {
+            try
+            {
+                string transactionName = request["transactionName"]?.ToString() ?? "";
+                if (string.IsNullOrEmpty(transactionName))
+                {
+                    var result = new JObject();
+                    result.Add("success", false);
+                    result.Add("code", 1010);
+                    result.Add("message", "transactionName参数不能为空");
+                    result.Add("device", "江苏工伤联网接口");
+                    return result;
+                }
+
+                object businessParams = request["businessParams"]?.ToObject<object>();
+                int maxRetries = request["maxRetries"]?.ToObject<int>() ?? 3;
+                int baseDelayMs = request["baseDelayMs"]?.ToObject<int>() ?? 1000;
+
+                return JiangSuWorkInjuryBusiness.SmartRetryTransaction(transactionName, businessParams, maxRetries, baseDelayMs);
+            }
+            catch (System.Exception ex)
+            {
+                var result = new JObject();
+                result.Add("success", false);
+                result.Add("code", 1011);
+                result.Add("message", $"工伤联网智能重试处理异常: {ex.Message}");
+                result.Add("device", "江苏工伤联网接口");
+                return result;
+            }
+        }
+
+        /// <summary>
+        /// 处理工伤联网冲正请求
+        /// </summary>
+        private JObject HandleWorkInjuryReverse(JObject request)
+        {
+            try
+            {
+                string originalMessageId = request["originalMessageId"]?.ToString() ?? "";
+                if (string.IsNullOrEmpty(originalMessageId))
+                {
+                    var result = new JObject();
+                    result.Add("success", false);
+                    result.Add("code", 1012);
+                    result.Add("message", "originalMessageId参数不能为空");
+                    result.Add("device", "江苏工伤联网接口");
+                    return result;
+                }
+
+                return JiangSuWorkInjuryBusiness.ReverseTransactionByRecord(originalMessageId);
+            }
+            catch (System.Exception ex)
+            {
+                var result = new JObject();
+                result.Add("success", false);
+                result.Add("code", 1013);
+                result.Add("message", $"工伤联网冲正处理异常: {ex.Message}");
+                result.Add("device", "江苏工伤联网接口");
+                return result;
+            }
+        }
     }
 }

+ 1 - 0
ThCardReader/ThCardReader.csproj

@@ -132,6 +132,7 @@
     <Compile Include="HuaShiIdCardBusiness.cs" />
     <Compile Include="JiangSuController.cs" />
     <Compile Include="JiangSuSocialCardBusiness.cs" />
+    <Compile Include="JiangSuWorkInjuryBusiness.cs" />
     <Compile Include="MainForm.cs">
       <SubType>Form</SubType>
     </Compile>

BIN
ThCardReader/bin/x86/Release/ThCardReader.exe


BIN
ThCardReader/bin/x86/Release/ThCardReader.pdb


BIN
ThCardReader/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache


BIN
ThCardReader/obj/x86/Release/ThCardReader.csproj.AssemblyReference.cache


+ 1 - 1
ThCardReader/obj/x86/Release/ThCardReader.csproj.CoreCompileInputs.cache

@@ -1 +1 @@
-8d2a9c8841cadf63f7e45db960dd26b327ecba4cdfc5cf196ad46c7d4f46781c
+8de3cd729ce01a5c629042a6b6543c1c2aeedd10b606e8ec75e5fdbe28dc7423

+ 33 - 0
ThCardReader/obj/x86/Release/ThCardReader.csproj.FileListAbsolute.txt

@@ -31,3 +31,36 @@ E:\huaihaiProject\readCard\ThCardReader\ThCardReader\obj\x86\Release\ThCardRe.96
 E:\huaihaiProject\readCard\ThCardReader\ThCardReader\obj\x86\Release\ThCardReader.exe
 E:\huaihaiProject\readCard\ThCardReader\ThCardReader\obj\x86\Release\ThCardReader.pdb
 E:\huaihaiProject\readCard\ThCardReader\ThCardReader\obj\x86\Release\ThCardReader.exe.config
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.csproj.AssemblyReference.cache
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.exe.config
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.MainForm.resources
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.Properties.Resources.resources
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.UpdateForm.resources
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.csproj.GenerateResource.cache
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.csproj.CoreCompileInputs.cache
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.exe
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardReader.pdb
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\ThCardReader.exe.config
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\ThCardReader.exe
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\ThCardReader.pdb
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\Microsoft.Owin.Cors.dll
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\Microsoft.Owin.dll
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\Microsoft.Owin.Host.HttpListener.dll
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\Microsoft.Owin.Host.SystemWeb.dll
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\Microsoft.Owin.Hosting.dll
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\Newtonsoft.Json.dll
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\Owin.dll
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\System.Net.Http.Formatting.dll
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\System.Web.Cors.dll
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\System.Web.Http.dll
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\System.Web.Http.Owin.dll
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\Microsoft.Owin.xml
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\Microsoft.Owin.Cors.xml
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\Microsoft.Owin.Host.HttpListener.xml
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\Microsoft.Owin.Host.SystemWeb.xml
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\Microsoft.Owin.Hosting.xml
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\Newtonsoft.Json.xml
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\System.Net.Http.Formatting.xml
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\System.Web.Http.xml
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\bin\x86\Release\System.Web.Http.Owin.xml
+E:\huaihaiProject\ThCardReader\mhCardReader\ThCardReader\obj\x86\Release\ThCardRe.969156AA.Up2Date

BIN
ThCardReader/obj/x86/Release/ThCardReader.exe


BIN
ThCardReader/obj/x86/Release/ThCardReader.pdb


+ 683 - 0
江苏工伤联网HTTP接口使用示例.md

@@ -0,0 +1,683 @@
+# 江苏工伤联网结算HTTP接口使用示例
+
+## 接口概述
+
+江苏工伤联网结算采用HTTP POST方式提供服务,通过统一的接口地址处理所有工伤相关业务。
+
+**接口地址**: `POST http://localhost:8321/api/entry/workinjury`
+
+**请求头**:
+```
+Content-Type: application/json
+```
+
+## 接口功能列表
+
+| 功能 | action值 | 说明 |
+|------|----------|------|
+| 系统初始化 | init | 初始化工伤联网系统 |
+| 业务交易 | transaction | 处理各种工伤业务交易 |
+| 健康检查 | health | 检查系统健康状态 |
+| 获取统计 | stats | 获取系统运行统计 |
+| 签到状态 | signin_status | 查询当前签到状态 |
+| 批量上传 | batch_upload | 批量上传处方明细 |
+| 完整流程 | complete_process | 一键完成就医流程 |
+| 智能重试 | retry | 智能重试失败的交易 |
+| 交易冲正 | reverse | 冲正指定交易 |
+
+## 基础功能示例
+
+### 1. 系统初始化
+
+#### 使用默认配置初始化
+```json
+POST http://localhost:8321/api/entry/workinjury
+
+{
+  "action": "init"
+}
+```
+
+#### 使用自定义配置初始化
+```json
+POST http://localhost:8321/api/entry/workinjury
+
+{
+  "action": "init",
+  "config": {
+    "fixmedinsCode": "H32132200561",
+    "fixmedinsName": "宿迁沭阳铭和医院",
+    "receiverSysCode": "JSYTH",
+    "interfaceVersion": "V2.1",
+    "operatorType": "1",
+    "defaultOperator": "001",
+    "defaultOperatorName": "系统管理员",
+    "logPath": "logs/workinjury/"
+  }
+}
+```
+
+**响应示例**:
+```json
+{
+  "success": true,
+  "code": 200,
+  "message": "江苏工伤联网系统初始化成功",
+  "device": "江苏工伤联网接口",
+  "timestamp": "2024-12-01 10:30:00",
+  "version": "V2.1"
+}
+```
+
+### 2. 系统健康检查
+
+```json
+POST http://localhost:8321/api/entry/workinjury
+
+{
+  "action": "health"
+}
+```
+
+**响应示例**:
+```json
+{
+  "success": true,
+  "code": 200,
+  "message": "系统健康状态良好",
+  "data": {
+    "overallHealth": true,
+    "timestamp": "2024-12-01 10:35:00",
+    "checks": {
+      "dllStatus": {
+        "success": true,
+        "message": "JSSiInterface.dll文件检查通过"
+      },
+      "initStatus": {
+        "initialized": true,
+        "hasConfig": true
+      },
+      "signInStatus": {
+        "signedIn": true,
+        "signNo": "20241201001",
+        "signInTime": "2024-12-01 09:00:00"
+      }
+    }
+  }
+}
+```
+
+## 业务交易示例
+
+### 1. 基础交易调用
+
+#### 签到
+```json
+POST http://localhost:8321/api/entry/workinjury
+
+{
+  "action": "transaction",
+  "transactionName": "签到"
+}
+```
+
+#### 读卡
+```json
+POST http://localhost:8321/api/entry/workinjury
+
+{
+  "action": "transaction",
+  "transactionName": "读卡",
+  "identifyMode": "1"
+}
+```
+
+#### 患者登记
+```json
+POST http://localhost:8321/api/entry/workinjury
+
+{
+  "action": "transaction",
+  "transactionName": "RegisterPatient",
+  "businessParams": {
+    "psn_no": "32010219800101001X",
+    "visit_type": "1",
+    "dept_code": "001",
+    "dept_name": "骨科",
+    "doctor_code": "DOC001",
+    "doctor_name": "张主任"
+  },
+  "identifyMode": "1",
+  "operatorId": "001",
+  "operatorName": "收费员"
+}
+```
+
+#### 费用预结算
+```json
+POST http://localhost:8321/api/entry/workinjury
+
+{
+  "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": "拍片费",
+        "fee_amt": 120.00,
+        "cnt": 1
+      },
+      {
+        "fee_ocur_time": "2024-12-01 10:35:00",
+        "med_list_codg": "002", 
+        "med_list_name": "诊疗费",
+        "fee_amt": 15.00,
+        "cnt": 1
+      }
+    ]
+  }
+}
+```
+
+#### 费用结算
+```json
+POST http://localhost:8321/api/entry/workinjury
+
+{
+  "action": "transaction",
+  "transactionName": "Settle",
+  "businessParams": {
+    "visit_no": "V20241201001",
+    "pre_settle_id": "PS20241201001"
+  }
+}
+```
+
+### 2. 使用交易编号调用
+
+```json
+POST http://localhost:8321/api/entry/workinjury
+
+{
+  "action": "transaction",
+  "transactionName": "9001"
+}
+```
+
+### 3. 电子凭证交易
+
+```json
+POST http://localhost:8321/api/entry/workinjury
+
+{
+  "action": "transaction",
+  "transactionName": "ReadCard",
+  "identifyMode": "2",
+  "qrCodeInfo": "QRCODE_DATA_HERE"
+}
+```
+
+## 高级功能示例
+
+### 1. 批量上传处方明细
+
+```json
+POST http://localhost:8321/api/entry/workinjury
+
+{
+  "action": "batch_upload",
+  "patientId": "P123456",
+  "visitNo": "V20241201001",
+  "prescriptions": [
+    {
+      "med_list_codg": "MED001",
+      "med_list_name": "阿司匹林",
+      "cnt": 2,
+      "pric": 25.50
+    },
+    {
+      "med_list_codg": "MED002",
+      "med_list_name": "布洛芬",
+      "cnt": 1,
+      "pric": 18.80
+    }
+  ]
+}
+```
+
+### 2. 完整就医流程
+
+```json
+POST http://localhost:8321/api/entry/workinjury
+
+{
+  "action": "complete_process",
+  "patientInfo": {
+    "visit_type": "1",
+    "dept_code": "001",
+    "dept_name": "骨科",
+    "doctor_code": "DOC001",
+    "doctor_name": "张主任"
+  },
+  "feeDetails": [
+    {
+      "fee_ocur_time": "2024-12-01 10:30:00",
+      "med_list_codg": "001",
+      "med_list_name": "拍片费",
+      "fee_amt": 120.00,
+      "cnt": 1
+    }
+  ]
+}
+```
+
+**响应示例**:
+```json
+{
+  "success": true,
+  "code": 200,
+  "message": "工伤就医流程完成",
+  "processSteps": [
+    {
+      "step": 1,
+      "name": "读卡",
+      "success": true,
+      "message": "读卡成功",
+      "data": {
+        "psn_no": "32010219800101001X",
+        "psn_name": "张三"
+      }
+    },
+    {
+      "step": 2,
+      "name": "登记",
+      "success": true,
+      "message": "登记成功",
+      "data": {
+        "visit_no": "V20241201001"
+      }
+    },
+    {
+      "step": 3,
+      "name": "预结算",
+      "success": true,
+      "message": "预结算成功",
+      "data": {
+        "pre_settle_id": "PS20241201001"
+      }
+    },
+    {
+      "step": 4,
+      "name": "结算",
+      "success": true,
+      "message": "结算成功",
+      "data": {
+        "settle_id": "S20241201001",
+        "total_amt": 135.00,
+        "fund_amt": 108.00,
+        "self_amt": 27.00
+      }
+    }
+  ]
+}
+```
+
+### 3. 智能重试
+
+```json
+POST http://localhost:8321/api/entry/workinjury
+
+{
+  "action": "retry",
+  "transactionName": "PreSettle",
+  "businessParams": {
+    "visit_no": "V20241201001",
+    "fee_details": [...]
+  },
+  "maxRetries": 3,
+  "baseDelayMs": 1000
+}
+```
+
+### 4. 交易冲正
+
+```json
+POST http://localhost:8321/api/entry/workinjury
+
+{
+  "action": "reverse",
+  "originalMessageId": "H0000120241201103000010001"
+}
+```
+
+## 状态查询示例
+
+### 1. 获取签到状态
+
+```json
+POST http://localhost:8321/api/entry/workinjury
+
+{
+  "action": "signin_status"
+}
+```
+
+**响应示例**:
+```json
+{
+  "success": true,
+  "code": 200,
+  "message": "签到状态获取成功",
+  "data": {
+    "signedIn": true,
+    "signNo": "20241201001",
+    "signInTime": "2024-12-01 09:00:00",
+    "signInOperator": "001",
+    "sessionDuration": "93分钟"
+  }
+}
+```
+
+### 2. 获取系统统计
+
+```json
+POST http://localhost:8321/api/entry/workinjury
+
+{
+  "action": "stats"
+}
+```
+
+**响应示例**:
+```json
+{
+  "success": true,
+  "code": 200,
+  "message": "统计信息获取成功",
+  "data": {
+    "currentTime": "2024-12-01 10:33:00",
+    "systemStatus": {
+      "initialized": true,
+      "signedIn": true,
+      "signInTime": "2024-12-01 09:00:00",
+      "currentSignNo": "20241201001",
+      "signInOperator": "001"
+    },
+    "transactionRecords": {
+      "totalCount": 15,
+      "oldestRecord": "2024-12-01 09:05:00",
+      "newestRecord": "2024-12-01 10:30:00"
+    },
+    "configuration": {
+      "fixmedinsCode": "H32132200561",
+      "fixmedinsName": "宿迁沭阳铭和医院",
+      "interfaceVersion": "V2.1",
+      "logPath": "logs/workinjury/"
+    }
+  }
+}
+```
+
+## 错误处理
+
+### 错误响应格式
+
+```json
+{
+  "success": false,
+  "code": 1005,
+  "message": "transactionName参数不能为空",
+  "device": "江苏工伤联网接口"
+}
+```
+
+### 错误码说明
+
+| 错误码范围 | 说明 |
+|------------|------|
+| 1000-1099 | 系统级错误 |
+| 2000-2999 | DLL调用错误 |
+| 3000-3999 | 业务处理错误 |
+
+### 常见错误处理
+
+#### 1. 参数错误
+```json
+{
+  "success": false,
+  "code": 1002,
+  "message": "action参数不能为空",
+  "device": "江苏工伤联网接口"
+}
+```
+
+#### 2. 业务错误
+```json
+{
+  "success": false,
+  "code": 3001,
+  "message": "人员未参保工伤保险",
+  "transactionCode": "1101",
+  "businessErrorCode": "1001",
+  "businessErrorMsg": "人员未参保工伤保险"
+}
+```
+
+## 前端调用示例
+
+### JavaScript/Ajax调用
+
+```javascript
+// 初始化工伤系统
+function initWorkInjury() {
+    $.ajax({
+        url: 'http://localhost:8321/api/entry/workinjury',
+        type: 'POST',
+        contentType: 'application/json',
+        data: JSON.stringify({
+            "action": "init",
+            "config": {
+                "fixmedinsCode": "H32132200561",
+                "fixmedinsName": "宿迁沭阳铭和医院"
+            }
+        }),
+        success: function(result) {
+            if (result.success) {
+                console.log('工伤系统初始化成功');
+            } else {
+                console.error('初始化失败:', result.message);
+            }
+        },
+        error: function(xhr, status, error) {
+            console.error('请求失败:', error);
+        }
+    });
+}
+
+// 工伤患者读卡
+function readWorkInjuryCard() {
+    $.ajax({
+        url: 'http://localhost:8321/api/entry/workinjury',
+        type: 'POST',
+        contentType: 'application/json',
+        data: JSON.stringify({
+            "action": "transaction",
+            "transactionName": "读卡",
+            "identifyMode": "1"
+        }),
+        success: function(result) {
+            if (result.success) {
+                var cardData = result.data;
+                console.log('读卡成功,患者:', cardData.psn_name);
+                // 处理读卡结果...
+            } else {
+                console.error('读卡失败:', result.message);
+            }
+        }
+    });
+}
+
+// 工伤患者结算
+function settleWorkInjury(visitNo, feeDetails) {
+    // 先预结算
+    $.ajax({
+        url: 'http://localhost:8321/api/entry/workinjury',
+        type: 'POST',
+        contentType: 'application/json',
+        data: JSON.stringify({
+            "action": "transaction",
+            "transactionName": "PreSettle",
+            "businessParams": {
+                "visit_no": visitNo,
+                "fee_details": feeDetails
+            }
+        }),
+        success: function(preResult) {
+            if (preResult.success) {
+                // 预结算成功,进行正式结算
+                $.ajax({
+                    url: 'http://localhost:8321/api/entry/workinjury',
+                    type: 'POST',
+                    contentType: 'application/json',
+                    data: JSON.stringify({
+                        "action": "transaction",
+                        "transactionName": "Settle",
+                        "businessParams": {
+                            "visit_no": visitNo,
+                            "pre_settle_id": preResult.data.pre_settle_id
+                        }
+                    }),
+                    success: function(settleResult) {
+                        if (settleResult.success) {
+                            console.log('结算成功');
+                            // 处理结算结果...
+                        } else {
+                            console.error('结算失败:', settleResult.message);
+                        }
+                    }
+                });
+            } else {
+                console.error('预结算失败:', preResult.message);
+            }
+        }
+    });
+}
+```
+
+### C# HttpClient调用
+
+```csharp
+using System;
+using System.Net.Http;
+using System.Text;
+using System.Threading.Tasks;
+using Newtonsoft.Json;
+
+public class WorkInjuryHttpClient
+{
+    private readonly HttpClient _httpClient;
+    private readonly string _baseUrl = "http://localhost:8321/api/entry/workinjury";
+
+    public WorkInjuryHttpClient()
+    {
+        _httpClient = new HttpClient();
+    }
+
+    // 初始化工伤系统
+    public async Task<dynamic> InitializeAsync()
+    {
+        var request = new
+        {
+            action = "init"
+        };
+
+        var json = JsonConvert.SerializeObject(request);
+        var content = new StringContent(json, Encoding.UTF8, "application/json");
+
+        var response = await _httpClient.PostAsync(_baseUrl, content);
+        var responseJson = await response.Content.ReadAsStringAsync();
+        
+        return JsonConvert.DeserializeObject(responseJson);
+    }
+
+    // 工伤交易
+    public async Task<dynamic> ProcessTransactionAsync(string transactionName, object businessParams = null)
+    {
+        var request = new
+        {
+            action = "transaction",
+            transactionName = transactionName,
+            businessParams = businessParams
+        };
+
+        var json = JsonConvert.SerializeObject(request);
+        var content = new StringContent(json, Encoding.UTF8, "application/json");
+
+        var response = await _httpClient.PostAsync(_baseUrl, content);
+        var responseJson = await response.Content.ReadAsStringAsync();
+        
+        return JsonConvert.DeserializeObject(responseJson);
+    }
+
+    // 完整就医流程
+    public async Task<dynamic> CompleteProcessAsync(object patientInfo, object[] feeDetails)
+    {
+        var request = new
+        {
+            action = "complete_process",
+            patientInfo = patientInfo,
+            feeDetails = feeDetails
+        };
+
+        var json = JsonConvert.SerializeObject(request);
+        var content = new StringContent(json, Encoding.UTF8, "application/json");
+
+        var response = await _httpClient.PostAsync(_baseUrl, content);
+        var responseJson = await response.Content.ReadAsStringAsync();
+        
+        return JsonConvert.DeserializeObject(responseJson);
+    }
+}
+
+// 使用示例
+class Program
+{
+    static async Task Main(string[] args)
+    {
+        var client = new WorkInjuryHttpClient();
+
+        // 初始化
+        var initResult = await client.InitializeAsync();
+        Console.WriteLine($"初始化结果: {initResult.success}");
+
+        // 读卡
+        var readCardResult = await client.ProcessTransactionAsync("读卡");
+        Console.WriteLine($"读卡结果: {readCardResult.success}");
+
+        // 登记
+        var registerParams = new
+        {
+            visit_type = "1",
+            dept_code = "001",
+            dept_name = "骨科"
+        };
+        var registerResult = await client.ProcessTransactionAsync("RegisterPatient", registerParams);
+        Console.WriteLine($"登记结果: {registerResult.success}");
+    }
+}
+```
+
+## 总结
+
+江苏工伤联网结算HTTP接口提供了:
+
+1. **统一接口**: 所有功能通过一个POST接口访问
+2. **简单易用**: JSON格式请求,清晰的参数结构
+3. **功能完整**: 支持所有工伤业务交易类型
+4. **错误处理**: 完善的错误码和错误信息
+5. **灵活调用**: 支持各种编程语言和前端框架
+
+通过 `action` 参数区分不同操作,通过 `transactionName` 参数处理17种工伤交易类型,大大简化了接口集成复杂度。