# WebsysServer **Repository Path**: wanghc123/WebsysServer ## Basic Information - **Project Name**: WebsysServer - **Description**: 医为插件管理程序,使用net开发,用于管理客户端程序,提供http服务。 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-26 - **Last Updated**: 2025-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WebsysServer # 医为客户端管理,提供HTTP服务接口来调用本地服务,在现代浏览器上通过js调用本地服务功能。 操作系统环境Win7, Win10,Win11,关闭操作系统的UAC体验更佳 依赖开发环境: 1. 开发环境Framework4.0 2. 分三个工程,分别为服务功能,保护功能,安装功能 # 使用介绍 ## 下载与更新 #### 1.下载[WebsysServerSetup.zip](//bsp.hisui.cn/static/WebsysServerSetup.zip)放到web\addins\plugin\WebsysServerSetup\目录下,最终文件路径为web\addins\plugin\WebsysServerSetup\WebsysServerSetup.zip #### 2.把下载的zip包解压出的msi文件放到web\addins\plugin\目录下,最终文件路径为web\addins\plugin\WebsysServerSetup.msi #### 3. iMedical8.4项目发送web\scripts\dhc.logon.js文件给基础平台组修改, 9.0不用修改 #### 4. 为了客户端能自动更新,需要进入demo - 头菜单 - 开发工具 - 插件管理界面找到CMgr记录并选中 - 4.1、修改版本号,最后一位增加1即可,如:当前是1.1.3.6,则修改成1.1.3.7(此版本号与msi文件版本号无关) - 4.2、DLL文件路径框内容写入WebsysServerSetup/WebsysServerSetup.zip - 4.3、点击保存 ## 客户端支持静默安装(可选) - 如果项目要求静默安装到固定目录,可以使用以下方式默认安装 - 编写bat文件,内容如下,放到msi同一层目录内,双击bat即可安装到指定目录 ```bash msiexec /i "d:\xx\WebsysServerSetup.msi" TARGETDIR="D:/Program Files\MediWay" /qb ``` 或 ```bash "d:\xx\WebsysServerSetup.msi" /qb TARGETDIR="D:/Program Files\MediWay" ``` ## 开发使用 ### 1. 在`CSP`中引用中间件环境 ```html ``` ### 2.在`组件`中引用中间件环境(基础平台已处理) ```vb d ##class(websys.AddInsTmpl).WriteInvokerJsCode() ``` ### 3. Javascripts中调用 ```js function Fun(){ if ("undefined"====typeof EnableLocalWeb || 0====EnableLocalWeb || IsIE){ //未开启使用中间件 或 老项目,IE然仍用老的方式运行 }else{ //中间件运行,此处的DoctorSheet为配置界面的调用ID DoctorSheet.showDoctorOrderSheetWindow("1","2","3","4","5"); } } ``` [详细开发说明及示例](https://hisui.cn/wp-content/uploads/2022/06/Chrome中间件相关开发.pdf) ### 常见问题处理 - 调用对象都有notReturn属性,`DoctorSheet.notReturn=0`即有返回值调用,同步调用。默认为1异步调用 - 调用客户端方法报错,检查桌面快捷方法-插件管理-右键属性-兼容性以管理员身份运行此程序是否勾选 - 在只安装了WPS的客户端,使用Excel导出或打印时报错,可以把`CmdShell.EvalJs(mycode)`修改成`CmdShell.CurrentUserEvalJs(mycode)`再测试 - 安装成功后,HTTP管理界面可用但HTTPS管理界面不可用,可手动安装证书 1. private.pfx安装---本地计算机---到【个人】中,密码为12345678 2. private.crt安装---本地计算机---到【受信任的根证书颁发机构】中 3. netsh http add sslcert ipport=0.0.0.0:21996 certhash=dd8652db5c07076d154827273642604ca8405332 appid={9e977cef-28ef-4d4f-968a-bff2514384c4} 4. netsh http add sslcert ipport=0.0.0.0:21996 certhash=b1eb8df9b91cf3080fb30f41e959def25952376a appid={9e977cef-28ef-4d4f-968a-bff2514384c4} - 不能自动下载插件包,console.log日志中提示`The requested security protocol is not supported` 或 `请求被中止:未能创建SSL/TLS安全通道`, 请检查本地客户端是否安装framework4.5或修改注册表 [查看原因与解决1](https://www.cnblogs.com/Charltsing/p/Net4TLS12.html),[查看原因与解决2](//hisui.cn/?p=332)。 - 安装时提示安装无效,检查是否被杀毒软件隔离,或被操作系统防火墙隔离 ## 更新日志 ## ### 2025-01-10 #### 版本1.4.5 - 解决调用jar包时入参中包含dll字符时提示`处理请求异常:未将对象引用设置到对象的实例`问题 - 去除addins.port.exe文件,windows防火墙误以软件为病毒 #### 版本1.4.4 - 医为客户端服务只允许本机访问 ### 2024-08-28 #### 版本1.4.3 - 支持国际化 - - 在英文操作系统显示英文 - - 在中文操作系统显示中文 #### 版本1.4.1 - 解决弹出form置顶问题 ```js // xx是任意的调用DLL插件的对象 xx.clear(); xx.notReturn = 0; xx.focusLazyTime = 1500; /*延迟多长时间focus窗口。没有此行代码时默认:1000毫秒*/ xx.focusWindowName = "串码输入框"; /*使用窗口标题定位,例:串码输入框*/ // xx.focusClassName = "#32770 (对话框)"; /*使用类名定位,例:微信窗口WeChatMainWndForPC*/ xx.ReadPatCardNo(); /*具体方法*/ ``` ### 2024-08-14 #### 版本1.3.9 - 解决dll内存冲突,实现调用exe程序且拿到返回值 [4788656] ```javascript // 所有插件管理界面的调用ID都用cmd方法 DomId.clear() DomId.notReturn = 1 DomId.cmd("mytest.exe arg1 arg2",function(rtn){ // rtn //JSON返回值 }) ``` ### 2024-07-27 #### 版本1.3.8 - 读mispos失败问题 [4805120] ### 2024-07-08 #### 版本1.3.7 - 去除停止/启动菜单 [4748462] ### 2024-06-20 #### 版本1.3.6 - 安装exe安装时写入监听权限 [4681909] ### 2024-06-06 #### 版本1.3.5 - 获取客户端信息方法修改成获取当前使用的`IP`,`MacAddr` ### 2024-05-15 #### 版本1.3.4 - :bug: 调用jar文件时只返回一行结果问题处理,修改成:返回值多行 - 支持指定某版java来运行jar包 [4572996] ```js helloTestObj.clear(); helloTestObj.cmd('"C:\\Program Files\\Java\\jre-1.8\\bin\\java.exe" -jar HelloTest.jar arg1 arg2',function(rtn){ console.log(rtn); //{msg:"success",rtn:"第0个入参myArg1,第1个入参myArg2,~.~Hello Addins !",status:200} }); ``` #### 版本1.3.3 - 修改CurrentUserEvalJs方法,在非管理员权限下运行时,也可以运行 [4567511] - 解决:当前操作系统为`非管理员`,运行中间件后,在仅安装WPS的电脑上导出excel问题 [4567511] ### 2024-04-30 #### 版本1.3.2 - :sparkles: 增加调用jar包中main方法功能 1. 编写java代码,并有main方法 ```java package com.imediway.his; public class HelloTest { public static void main(String[] args) { for (int i=0;i 192 ``` - 增加异步focus窗口功能,可以解决线程弹出窗口不置顶问题 - - 增加*focusWindowName*,*focusClassName*,*focusLazyTime*三个配置项解决focus窗口问题 调用示例代码: ```js trakWebEdit3.clear(); /*清除上次调用数据*/ trakWebEdit3.notReturn = 1; // trakWebEdit3.focusLazyTime = 1000; /*延迟多长时间focus窗口。没有此行代码时默认:1000毫秒*/ // trakWebEdit3.focusWindowName = "lpWindowName"; /*使用窗口标题定位*/ trakWebEdit3.focusClassName = "lpClassName"; /*使用类名定位,例:微信窗口WeChatMainWndForPC*/ trakWebEdit3.ShowLayout("1^1^^1","54429","","cn_iptcp:127.0.0.1[1972]:DHC-APP",function(rtn){}); /*注:ShowLayout方法配置时不勾【调用清除】*/ ``` #### 2021-06-22 #### 版本1.0.32 - 提供获得扩展屏方法 :sparkles: - 提供移动窗口方法 :sparkles: - 去除"保护程序已经在运行"提示,去除"监听程序已经在运行"提示(河北中石油中心) #### 2021-04-24 #### 版本1.0.31 - 默认安装exe,报无效安装程序问题。修改成使用cmd运行 - 关于修改 - 修改说明css - 优化升级步骤 #### 2021-04-09 #### 版本1.0.30 + 为解决某些电脑调用WPS时报Automation不能创建错误,提供CurrentUserEvalJs方法(九江中医,北京积水潭) #### 2021-04-07 #### 版本1.0.29 + CmdShell.EvalJs降低安全且设定在当前窗口弹出的界面 :sparkles: #### 2021-02-21 #### 版本1.0.0.28 + 增加mime管理 :sparkles: + 支持静态文件浏览 :sparkles: + 响应状态码支持`404`,`500` :bug: #### 2021-02-07 #### 版本1.0.0.27 + 中间件保护程序与医保客户端冲突问题处理 ### 2019-06-16 ### #### 版本1.0.0.0 #### * http协议下POST请求本地服务 * 自动下载配置的文件 * 自动安装exe,msi * 自动注册ocx,dll * 反射调用本地程序及cmd