Files
chis_osi/server.go
T
ilaandClaude Opus 4.8 f3c5e1bf8d feat(osi): 某人全部体检查询 JKTJ00002(T-306)
- osi.QueryHealthChecks(/auto/jktj/query,返回全部体检数组)
- contract.HealthCheckRecordSummary:驼峰 idCard(≠最近一次小写 idcard)、checkId 可空
- HTTP 端点 GET /api/health-check/all
- 单测含 null checkId 场景;实测端点已部署

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 22:14:39 +08:00

35 lines
1.1 KiB
Go

package main
import (
"fmt"
"net/http"
"chis_osi/config"
"chis_osi/handler"
)
// runServer 启动 server 模式 HTTP 服务,暴露健康档案查询端点。
func runServer(cfg config.Config, addr string) error {
client, err := buildOSIClient(cfg)
if err != nil {
return fmt.Errorf("build osi client: %w", err)
}
hr := handler.NewHealthRecordHandler(client)
hc := handler.NewHealthCheckHandler(client)
mux := http.NewServeMux()
mux.HandleFunc("/api/health-record/find", hr.Find)
mux.HandleFunc("/api/health-check/last", hc.Last)
mux.HandleFunc("/api/health-check/all", hc.All)
mux.HandleFunc("/api/health-check/list", hc.List)
fmt.Printf("chis_osi server listening on %s\n", addr)
fmt.Printf(" GET http://%s/api/health-record/find?idCard=<身份证>\n", addr)
fmt.Printf(" GET http://%s/api/health-check/last?idCard=<身份证>\n", addr)
fmt.Printf(" GET http://%s/api/health-check/all?idCard=<身份证>\n", addr)
fmt.Printf(" GET http://%s/api/health-check/list?checkYear=<年度>&idCard=<身份证>\n", addr)
server := &http.Server{Addr: addr, Handler: mux}
return server.ListenAndServe()
}