JSLT日常

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"
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值