feat(mapping): 完成 PHIS 健康档案转换(T-212)

This commit is contained in:
ila
2026-07-16 00:53:16 +08:00
parent d385d6dd3b
commit 8a5550057c
20 changed files with 1078 additions and 124 deletions
+10 -3
View File
@@ -26,14 +26,14 @@ type PersonSignResult struct {
}
func (c *Client) CreateHealthRecord(ctx context.Context, req contract.HealthRecordCreate) (contract.HealthRecordSaveResult, Result, error) {
req.ManageInfo = c.manageInfo()
req.ManageInfo = c.manageInfoFor(req.ManageInfo.OperateUser)
var out contract.HealthRecordSaveResult
result, err := c.callUploadInfo(ctx, ServiceIDJKDACreate, req, &out)
return out, result, err
}
func (c *Client) UpdateHealthRecord(ctx context.Context, req contract.HealthRecordCreate) (contract.HealthRecordSaveResult, Result, error) {
req.ManageInfo = c.manageInfo()
req.ManageInfo = c.manageInfoFor(req.ManageInfo.OperateUser)
var out contract.HealthRecordSaveResult
result, err := c.callUploadInfo(ctx, ServiceIDJKDAUpdate, req, &out)
return out, result, err
@@ -59,9 +59,16 @@ func (c *Client) FindRqbj(ctx context.Context, query FindRqbjQuery) (PersonSignR
}
func (c *Client) manageInfo() contract.ManageInfo {
return c.manageInfoFor("")
}
func (c *Client) manageInfoFor(operateUser string) contract.ManageInfo {
if operateUser == "" {
operateUser = c.config.OperateUser
}
return contract.ManageInfo{
DSFMC: c.config.UserName,
OperateUser: c.config.OperateUser,
OperateUser: operateUser,
OperateUnit: c.operateUnit(),
}
}
+6 -1
View File
@@ -25,7 +25,8 @@ func TestCreateHealthRecordCallsJKDA00001WithUploadInfo(t *testing.T) {
client := newTestJKDAClient(t, server.URL)
resultData, result, err := client.CreateHealthRecord(context.Background(), contract.HealthRecordCreate{
BaseInfo: contract.HealthRecordBaseInfo{IDCard: "440000********1234", PersonName: "测试人员"},
BaseInfo: contract.HealthRecordBaseInfo{IDCard: "440000********1234", PersonName: "测试人员"},
ManageInfo: contract.ManageInfo{OperateUser: "doc-001"},
HealthRecord: contract.HealthRecordCreateInfo{
CheckID: "CHK2026070700000001",
IDCard: "440000********1234",
@@ -48,6 +49,10 @@ func TestCreateHealthRecordCallsJKDA00001WithUploadInfo(t *testing.T) {
t.Fatalf("serviceId = %v", seenPayload["serviceId"])
}
uploadInfo := seenPayload["uploadinfo"].(map[string]any)
manageInfo := uploadInfo["manageInfo"].(map[string]any)
if manageInfo["operateUser"] != "doc-001" || manageInfo["DSFMC"] != "dyytgw" || manageInfo["operateUnit"] != "12441625456962881G" {
t.Fatalf("manageInfo = %#v", manageInfo)
}
healthRecord := uploadInfo["healthRecord"].(map[string]any)
if healthRecord["checkId"] != "CHK2026070700000001" || healthRecord["manaUnitId"] != "123456789" {
t.Fatalf("healthRecord = %#v", healthRecord)