HISUI
Cache常用方法列表
2022年04月11日 15时30分

Cache常用方法列表

1.URL编码功能

w ##class(%CSP.Page).EscapeURL("公共方法fun=:")
//%3F%3F%3F%3Ffun%3D%3A

%CSP.Page类中EscapeURL在2010库中只有一个入参,但在2016库中有二个入参,扩展了编码格式入参。
在javascripts语言中也有类型功能

encodeURIComponent('公共方法fun=:')
//%E5%85%AC%E5%85%B1%E6%96%B9%E6%B3%95fun%3D%3A

但js得到的结果与当前iMedical中运行的结果不完全相同,是因为js语言与我们安装的Cache默认的编码不一样。可以使用以下类方法实现相同效果

w ##class(ext.util.String).EscapeURL("公共方法fun=:","UTF8")
// %E5%85%AC%E5%85%B1%E6%96%B9%E6%B3%95fun%3D%3A
// 实际是复制了2016库的实现,这样保证兼容性
// 打印结算凭证,打印出来的二维码扫码不能看电子发票(河南电子票据查验平台)

2.中文得到首拼

w ##class(ext.util.String).ToChineseSpell("myname-张三")
// 返回 MYNAME-ZS
w ##class(ext.util.String).ToChineseSpell("萹蓄配方颗粒-单字萹")
// 返回 BXPFKL-DZP
// Set ^CT.BSP.ChineseSpell("萹蓄")="BX"
// 多音字通过这置特殊Global可以改变首拼,上例中‘萹蓄’得到BX,而‘萹’得到P

3.中文得到五笔首码

w ##class(ext.util.String).ToWubiSpell("myname-张三")
// 返回 MYNAME-XD

4. 繁简互转

w ##class(ext.util.String).ToTraditionalCh("东华,東華")
// 返回 東華,東華
w ##class(ext.util.String).ToSimplifiedCh("科技,科技")
// 返回 科技,科技

5.在类中获得访问的客户端IP与MAC

// 此方法不可在terminal调试,依赖会话session
W ##class(User.DHCClientLogin).GetInfo()
// 返回 IP地址^会话ID^在线状态^计算机名^计算机MAC

6. Base64转文件且上传到FTP服务器

// 如:要把PDF报告按日期分类存放到目录下
Set Base64Stream = "" //base64字符 或 base64字符流
Set DateDir = $zd(+$H,3)
Set ReportId = "123ABC123RE"
Set FileName = ReportId_".pdf"
Set FtpFilePath = "ftp://ftpuser:ftppassword@ip:port/业务类型目录/"_DateDir_"/"_FileName
Set rtn = ##class(ext.util.String).Base64ToFtp(Base64Stream,FtpFilePath)
If rtn>0{
 quit "生成文件成功"
}else{
 quit rtn
}

7. 获得用户登录日志

/// 返回值:上午第一次登录时间^登录科室Id^登录科室^下午第一次登录时间^登录科室Id^登录科室
/// 入参1: 6:00后的第一次登录,12:00后的第一次登录
/// 入参2:用户ID
/// 获得某人某天 第一次登录时间
w ##class(web.DHCSSUserLogonLog).GetFirstTime("2018-6-11",1)

8. 导出组件

/// 导出组件为xml文件
/// 入参1:组件名称
/// 入参2:服务器某目录
d ##class(web.Util.UtilService).GetExportComponents(componentName,dir)
///如: d ##class(web.Util.UtilService).GetExportComponents("websys.System","/usr/share/component/")
/// 导出可拖入studio的xml文件(8.3新增加功能)
/// 入参1:组件名称
/// 入参2:服务器某目录
d ##class(BSP.CMP.UTIL.Installer).Export(componentName,dir)
/// 如:d ##class(BSP.CMP.UTIL.Installer).Export("websys.System","/usr/share/component/")

9. 导入组件

/// 导入组件为xml文件
/// 入参1:XML文件全路径
d ##class(web.Util.UtilService).PutComponent(fileFullName)
/// 如:d ##class(web.Util.UtilService).PutComponent("/usr/share/component/websys.System.xml")

10. 会话

// 写数据到session中
Do ##Class(BSP.SYS.SRV.Session).SetSessionData("LOGON.DOCUNITID","医疗单元ID")
// 1. 调用后台接口成功写入Session后
// 2. 再调用下websys_getMenuWin().session["LOGON.DOCUNITID"]="医疗单元ID" ; // 补写到前台头菜单全局session上
// 获得当前会话信息---
Set Rtn = ##Class(BSP.SYS.SRV.Session).GetSessionStr()
// 返回值:userId^groupId^ctlocId^hospId^wardId^langId^loginId^docunitid信息
// 前端全局方法:websys_getSessionStr()得到前端会话信息串(返回值结构同上),websys_getSessionObj()返回前端session对象

11.获得时间戳

/// 得到当前时间戳,距(格林尼治时间1970-01-01 0:0:0)秒数
Set nowTimeStamp = ##class(BSP.SYS.UTIL.String).NowTimeStamp()
///返回值:1669691065
上一篇: 下一篇:

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

访问量: 379871