feat(osi): 实现 JKDA 档案 Create/Update 与创建请求契约(T-206)

- contract/jkda.go 补创建请求结构体(healthRecord + manageInfo + 既往史节点)
- osi/jkda.go 新增 CreateHealthRecord/UpdateHealthRecord
- osi/codes.go 登记 JKDA00001 create / JKDA00003 update serviceId 与路径
- mapping 映射创建路径(真实字典快照反查主数据)
- 代码与单测完成;真实 create 待安全测试档案与写入授权(见 tasks.md T-206 BLOCKED)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ila
2026-07-07 23:11:17 +08:00
co-authored by Claude Opus 4.8
parent 12346c9923
commit f95a779daa
8 changed files with 253 additions and 9 deletions
+20
View File
@@ -2,6 +2,26 @@ package mapping
import "testing"
func TestBuildHealthRecordCreateUsesMappedFieldsAndCheckID(t *testing.T) {
mapped, errs := MapHealthRecord(validPHISHealthRecord(), MapContext{Dicts: DefaultDictSnapshot()})
if len(errs) != 0 {
t.Fatalf("errors = %#v", errs)
}
create := BuildHealthRecordCreate(mapped)
if create.HealthRecord.CheckID != mapped.CheckID {
t.Fatalf("checkId = %q, want %q", create.HealthRecord.CheckID, mapped.CheckID)
}
if create.HealthRecord.IDCard != mapped.IDCard || create.HealthRecord.PersonName != mapped.PersonName {
t.Fatalf("healthRecord demographics = %#v", create.HealthRecord)
}
if create.HealthRecord.RegionCode != mapped.RegionCode || create.HealthRecord.ManaDoctorID != mapped.ManaDoctorID || create.HealthRecord.ManaUnitID != mapped.ManaUnitID || create.HealthRecord.CreateUser != mapped.ManaDoctorID || create.HealthRecord.CreateUnit != mapped.ManaUnitID {
t.Fatalf("management fields = %#v", create.HealthRecord)
}
if create.BaseInfo.IDCard != mapped.IDCard || create.BaseInfo.PersonName != mapped.PersonName {
t.Fatalf("baseInfo = %#v", create.BaseInfo)
}
}
func TestMapHealthRecordMapsDirectFieldsDictsAndCheckID(t *testing.T) {
src := validPHISHealthRecord()
got, errs := MapHealthRecord(src, MapContext{Dicts: DefaultDictSnapshot()})