feat(osi): 体检最近一次查询打通(T-301)
- osi.LastHealthCheck(JKTJLSJL00002 /auto/jktjlscx/query) - contract.HealthCheckSummary 只强类型化定位字段,完整内容走 Result.Raw - codes.go 登记 JKTJLSJL00002 + JKTJLIST00002 路由 - 单测:路径/解码/Raw 保留/idcard 小写映射/单键校验(脱敏假数据) - 实测:单查 JKTJ00002 平台未部署;data 为单对象;身份证字段小写 idcard Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+34
@@ -0,0 +1,34 @@
|
||||
package osi
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"chis_osi/contract"
|
||||
)
|
||||
|
||||
type FindHealthCheckQuery struct {
|
||||
IDCard string
|
||||
PHRID string
|
||||
EMPIID string
|
||||
}
|
||||
|
||||
// LastHealthCheck 查询某人最近一次体检(JKTJLSJL00002 /auto/jktjlscx/query)。
|
||||
// data 为单个体检对象(非数组);summary 只取定位字段,完整内容见返回的 Result.Raw。
|
||||
func (c *Client) LastHealthCheck(ctx context.Context, query FindHealthCheckQuery) (contract.HealthCheckSummary, Result, error) {
|
||||
baseInfo, err := query.baseInfo()
|
||||
if err != nil {
|
||||
return contract.HealthCheckSummary{}, Result{}, err
|
||||
}
|
||||
var summary contract.HealthCheckSummary
|
||||
result, err := c.Call(ctx, ServiceIDJKTJLast, baseInfo, &summary)
|
||||
return summary, result, err
|
||||
}
|
||||
|
||||
func (q FindHealthCheckQuery) baseInfo() (map[string]string, error) {
|
||||
fields := []queryField{
|
||||
{name: "idCard", value: q.IDCard},
|
||||
{name: "empiId", value: q.EMPIID},
|
||||
{name: "phrid", value: q.PHRID},
|
||||
}
|
||||
return singleBaseInfo("last health check", fields)
|
||||
}
|
||||
Reference in New Issue
Block a user