JSLT
常用方法
包含 contains(条件,value)
长度 size(value)
0-1之前的随机数 random()
转为String string(value)
分割 split(value, regexp)
格式化json from-json(value, fallback?)
json转义 to-json(value)
替换 replace(value, regexp, out)
当前时间 时间戳 round(now())
时间格式化 parse-time(time, format, fallback?)
时间戳格式化 format-time(timestamp, format, timezone?)
时间相关
当前时间
format-time(round(now())+28800, "yyyy-MM-dd HH:mm:ss")
年月日
入参
{
"data": "20180530114637"
}
JSLT
{
"data": format-time(parse-time(.data, "yyyyMMddHHmmss") ,"yyyy-MM-dd HH:mm:ss")
}
出参
{
"data": "2018-05-30 11:46:37"
}
数组/集合
循环取值(仅限集合中有且只有一个对象)
入参
{
"data":
[
{
"orgCode": "123456",
"orgName": "测试",
"patientId": "45678",
"patientName": "测试"
}
]
}
JSLT
let data = [for(.data) .]
let demoData = $data[0]
{
"demo": {
"hosId": $demoData .orgCode,
"hosName": $demoData .orgName,
"patId": $demoData .patientId,
"patName": $demoData .patientName
}
}
出参
{
"demo": {
"hosId": "123456",
"hosName": "*****",
"patId": "45678",
"patName": "XXXX"
}
}
不同集合取值
入参
{
"input": {
"apply_info": {
"apply_item": [
{
"order_id": "939024",
"order_content": "5%葡萄糖注射液(单管软袋) 100ml/袋",
"fitem_id": "82819"
},
{
"order_id": "939026",
"order_content": "奥硝唑氯化钠注射液 100ml:0.5g/瓶",
"fitem_id": "83402"
}
]
},
"fee_info": [
{
"fitem_id": "82819",
"fitem_count": 2
},
{
"fitem_id": "83402",
"fitem_count": 3
}
]
}
}
JSLT
let base = .input.apply_info
let detail = .input
{
"data": [for($base.apply_item)
let fitem_id = .fitem_id
let ss = [for($detail.fee_info) .fitem_count if($fitem_id == .fitem_id)]
{
"order_id": .order_id,
"order_content": .order_content,
"fitem_id ": $fitem_id,
"fitem_count": $ss
}
]
}
出参
{
"data": [
{
"order_id": "939024",
"order_content": "5%葡萄糖注射液(单管软袋) 100ml/袋",
"fitem_id ": "82819",
"fitem_count": [
2
]
},
{
"order_id": "939026",
"order_content": "奥硝唑氯化钠注射液 100ml:0.5g/瓶",
"fitem_id ": "83402",
"fitem_count": [
3
]
}
]
}
不同集合判断
入参
{
"_request_": {
"personInfoId": "0007156157",
"serialNo": "223056839001",
"basicActiveId": [
"0007156157-223056839001-0-20",
"0007156157-223056839001-2-6-0000"
]
},
"returnContents": {
"returnContent": [
{
"basic_active_id": "0007156157-223056839001-0-20",
"serial_no": "223056839001",
"person_info_id": "0007156157",
"list_code": "99",
"list_name": "结构化护理记录"
},
{
"basic_active_id": "0007156157-223056839001-2-6-0000",
"org_code": "45760179-7",
"org_name": "新疆维吾尔自治区人民医院",
"serial_no": "223056839001",
"person_info_id": "0007156157",
"list_code": "99",
"list_name": "特殊护理巡视观察单"
},
{
"basic_active_id": "5B2FEEDB-8B5C-4643-99E4-FECFDE1FC8EC",
"org_code": "45760179-7",
"org_name": "新疆维吾尔自治区人民医院",
"serial_no": "223056839001",
"person_info_id": "0007156157",
"list_code": "6",
"list_name": "结构化会诊记录单"
}
]
}
}
JSLT
let req = ._request_
{
"code": "200",
"message": "查询成功",
"data": [
for (.returnContents.returnContent)
let basicActiveId = .basic_active_id
let reqBasicActiveId = [
for ($req.basicActiveId) . if($basicActiveId == .)
]
{
"basicActiveId": $basicActiveId,
"orgCode": $reqBasicActiveId,
"orgName": "新疆自治区人民医院",
"serialNo": .serial_no,
"personInfoId": .person_info_id,
"listCode": .list_code,
"listName": .list_name,
"listDircSeq": .list_dirc_seq,
"listDircName": .list_dirc_name,
"writeDocCode": .write_doc_code,
"writeDocName": .write_doc_name,
"writeDatetime": .write_datetime,
"listContent": .list_content,
"createDatetime": .create_datetime,
"updateDatetime": .update_datetime
}
if ($reqBasicActiveId[0] == $basicActiveId)
]
}
出参
{
"code": "200",
"message": "查询成功",
"data": [
{
"basicActiveId": "0007156157-223056839001-0-20",
"orgCode": [
"0007156157-223056839001-0-20"
],
"orgName": "新疆自治区人民医院",
"serialNo": "223056839001",
"personInfoId": "0007156157",
"listCode": "99",
"listName": "结构化护理记录"
},
{
"basicActiveId": "0007156157-223056839001-2-6-0000",
"orgCode": [
"0007156157-223056839001-2-6-0000"
],
"orgName": "新疆自治区人民医院",
"serialNo": "223056839001",
"personInfoId": "0007156157",
"listCode": "99",
"listName": "特殊护理巡视观察单"
}
]
}
字符串
判断JSON-value中是否包含某个字符串(字符串具备分割条件)
入参
{
"menstrualHistory": "Value1=初潮年龄 15岁,Value2=7天,Value4=23岁,Value3=38"
}
(index-of(split(split(split(.menstrualHistory,“,”),“=”),“,”),"\“Value4"”)+ 1) --5
{
“name”: [
“[”[\“Value1"”,
““初潮年龄 15岁\””,
"\“Value2"”,
““7天\””,
"\“Value4"”,
““23岁\””,
“\“Value3"”,
““38\”]”]”
]
}
JSLT
多次切割,获取 Value4 的数组下标,加1可得到 Value4 后的字符,对字符判断是否含有岁即可;
{
"menstrualHistory": if(contains("Value1=" , .menstrualHistory) and
contains("Value2=" , .menstrualHistory) and
contains("Value3=" , .menstrualHistory) and
contains("Value4=" , .menstrualHistory) and
contains("岁",split(split(split(.menstrualHistory,","),"="),",")[(index-of(split(split(split(.menstrualHistory,","),"="),","),"\\\"Value4\"")+ 1)])
)
replace(replace(replace(replace(.menstrualHistory, "Value1=", ""), "Value2=", "月经周期 "), "Value3=" ,"经期 "), "Value4=", "绝经日期 ")
else if(
contains("Value1=" , .menstrualHistory) and
contains("Value2=" , .menstrualHistory) and
contains("Value3=" , .menstrualHistory) and
contains("Value4=" , .menstrualHistory) and
not(contains("岁",split(split(split(.menstrualHistory,","),"="),",")[(index-of(split(split(split(.menstrualHistory,","),"="),","),"\\\"Value4\"")+ 1)]))
)
replace(replace(replace(replace(.menstrualHistory, "Value1=", ""), "Value2=", "月经周期 "), "Value3=" ,"经期 "), "Value4=", "末次月经 ")
else .menstrualHistory
}
出参
{
"menstrualHistory": "初潮年龄 15岁,月经周期 7天,绝经日期 23岁,经期 38"
}