structs.go 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794
  1. package sdk
  2. import "time"
  3. type ClientConfig struct {
  4. ApiDomain string // API域名
  5. AppDebug bool // 是否开启调试模式
  6. AlgorApiDomain string // Algor API域名
  7. }
  8. type BaseResponse[T any] struct {
  9. Code int `json:"code"`
  10. Data T `json:"data"`
  11. Message string `json:"message"`
  12. Success bool `json:"success"`
  13. }
  14. type ListResponse[T any] struct {
  15. List []T `json:"list"`
  16. }
  17. type PaginateResponse[T any] struct {
  18. List []T `json:"list"`
  19. Total int64 `json:"total"`
  20. }
  21. type PaginateTotalSumResponse[T any] struct {
  22. List []T `json:"list"`
  23. Total int64 `json:"total"`
  24. TotalSum int64 `json:"totalSum"`
  25. }
  26. type DetailResponse[T any] struct {
  27. Detail T `json:"detail"`
  28. }
  29. type FormFieldsResponse[T any] struct {
  30. FormFields T `json:"formFields"`
  31. }
  32. type Tag struct {
  33. ID string `json:"id" form:"id" binding:"omitempty"`
  34. Name string `json:"name" form:"name" binding:"required,max=20"`
  35. VisibleConfig *TagVisibleConfig `json:"visibleConfig" form:"visibleConfig" binding:"omitempty,required_if=Type 2"`
  36. Type int `json:"type" form:"type" binding:"required"`
  37. CategoryId string `json:"categoryId" form:"categoryId" binding:"required"`
  38. Category *TagCategory `json:"tagCategory" form:"-" binding:"-"`
  39. CreatedAt string `json:"createdAt" form:"-" binding:"-"`
  40. UpdatedAt string `json:"updatedAt" form:"-" binding:"-"`
  41. }
  42. type TagVisibleConfig struct {
  43. Gender int `json:"gender" form:"gender" binding:"omitempty,oneof=0 1 2"` // 性别,0:全部,1:男,2:女
  44. StartAge int64 `json:"startAge" form:"startAge" binding:"omitempty,number,gte=0"`
  45. StartMonth int64 `json:"startMonth" form:"startMonth" binding:"omitempty,number,gte=0"`
  46. StartDay int64 `json:"startDay" form:"startDay" binding:"omitempty,number,gte=0"`
  47. EndAge int64 `json:"endAge" form:"endAge" binding:"omitempty,number,gte=0"`
  48. EndMonth int64 `json:"endMonth" form:"endMonth" binding:"omitempty,number,gte=0"`
  49. EndDay int64 `json:"endDay" form:"endDay" binding:"omitempty,number,gte=0"`
  50. AgeType int64 `json:"ageType" form:"ageType" binding:"required,oneof=1 2 3"`
  51. }
  52. type Mechanism struct {
  53. ID string `json:"id" form:"-" binding:"-"`
  54. Account string `json:"account" form:"account" binding:"required_unless=ID 0,omitempty,alphanum,min=4,max=20"`
  55. Nickname string `json:"nickname" form:"nickname" binding:"required"`
  56. Status int `json:"status" form:"status" binding:"omitempty,oneof=1 2"`
  57. Permissions []string `json:"permissions" form:"-" binding:"-"`
  58. Remark string `json:"remark" form:"remark" binding:"omitempty,max=255"`
  59. DefaultWebTemplateId string `json:"defaultWebTemplateId" form:"defaultWebTemplateId" binding:"required"`
  60. RawId int64 `json:"rawId" form:"-" binding:"-"`
  61. AppKey string `json:"appKey" form:"-" binding:"-"`
  62. AppSecret string `json:"appSecret" form:"-" binding:"-"`
  63. IpWhiteList string `json:"ipWhiteList" form:"-" binding:"-"`
  64. CallbackUrlList string `json:"callbackUrlList" form:"-" binding:"-"`
  65. MemberCanRegist bool `json:"memberCanRegist" form:"memberCanRegist" binding:"omitempty"`
  66. Logo string `json:"logo" form:"logo" binding:"omitempty"`
  67. SmsSignName string `json:"smsSignName" form:"smsSignName" binding:"omitempty"`
  68. SmsTemplateCode string `json:"smsTemplateCode" form:"smsTemplateCode" binding:"omitempty"`
  69. }
  70. type Form struct {
  71. ID string `json:"id" form:"id" binding:"omitempty"` // 编号
  72. Name string `json:"name" form:"name" binding:"required"` // 名称
  73. Icon string `json:"icon" form:"icon" binding:"omitempty,url"` // 图标
  74. TagIds []string `json:"tagIds" form:"tagIds" binding:"omitempty"` // 标签ID列表
  75. Tags []*Tag `json:"tags" form:"tags" binding:"omitempty"` // 标签
  76. Remark string `json:"remark" form:"remark" binding:"omitempty"` // 备注
  77. Fields []*FormField `json:"fields" form:"-" binding:"-"` // 字段列表
  78. CreatedAt string `json:"createdAt" form:"-" binding:"-"` // 创建时间
  79. UpdatedAt string `json:"updatedAt" form:"-" binding:"-"` // 更新时间
  80. }
  81. type FormField struct {
  82. ID int64 `json:"id" form:"id" binding:"omitempty"` // 编号
  83. FormId string `json:"formId" form:"formId" binding:"required"` // 表单编号
  84. Name string `json:"name" form:"name" binding:"omitempty,required_if=Type 1"` // 名称
  85. Type int `json:"type" form:"type" binding:"required"` // 类型
  86. ExtraId string `json:"extraId" form:"extraId" binding:"omitempty,required_without=Type 1"` // 数据ID
  87. Extra any `json:"extra" form:"-" binding:"-"` // 数据
  88. TagIds []string `json:"tagIds" form:"tagIds" binding:"omitempty"` // 标签ID列表
  89. Tags []*Tag `json:"tags" form:"tags" binding:"omitempty"` // 标签
  90. Remark string `json:"remark" form:"remark" binding:"omitempty"` // 备注
  91. ParentId int64 `json:"parentId" form:"parentId" binding:"omitempty"` // 父级编号
  92. Parent *FormField `json:"parent" form:"-" binding:"-"` // 父级
  93. Fields []*FormField `json:"fields" form:"-" binding:"-"` // 子级列表
  94. CheckItemId string `json:"checkItemId" form:"checkItemId" binding:"omitempty"` // 检查项ID
  95. CreatedAt string `json:"createdAt" form:"-" binding:"-"` // 创建时间
  96. UpdatedAt string `json:"updatedAt" form:"-" binding:"-"` // 更新时间
  97. }
  98. type FormCustomField struct {
  99. Type int `json:"type" binding:"required"`
  100. Key string `json:"key" binding:"required"`
  101. }
  102. // 知识图谱节点
  103. type GraphNode struct {
  104. ID string `json:"id"`
  105. Labels []string `json:"labels"`
  106. Properties struct {
  107. CreatedAt float64 `json:"createdAt"`
  108. Aliases []string `json:"aliases"`
  109. Name string `json:"name"`
  110. UUID string `json:"uuid"`
  111. Tags []string `json:"tags"`
  112. Props string `json:"props"`
  113. Neo4JImportId string `json:"neo4jImportId"`
  114. } `json:"properties"`
  115. }
  116. const (
  117. IndicatorQuestionSubjectPrefix = "b8fbfa26.indicator" // 指标题目前缀
  118. IndicatorValueFlag = "value" // 检查结果
  119. IndicatorRangeFlag = "range" // 范围
  120. IndicatorUnitFlag = "unit" // 单位
  121. IndicatorTimeFlag = "time" // 检查时间
  122. IndicatorCheckItemIdFlag = "checkItemId" // 检查项目ID
  123. )
  124. const (
  125. QuestionSubjectTypeRadio = 1 // 单选题
  126. QuestionSubjectTypeCheckbox = 2 // 多选题
  127. QuestionSubjectTypeInput = 3 // 单行文本题
  128. QuestionSubjectTypeMatrixCheckbox = 4 // 矩阵多选题
  129. QuestionSubjectTypeDate = 5 // 日期选择题
  130. QuestionSubjectTypeGroup = 6 // 组合题
  131. QuestionSubjectTypeInputFlag = "input" // 单行文本题
  132. QuestionSubjectTypeRadioFlag = "radio" // 单选题
  133. QuestionSubjectTypeCheckboxFlag = "checkbox" // 多选题
  134. QuestionSubjectTypeMatrixCheckboxFlag = "matrix_checkbox" // 矩阵多选题
  135. QuestionSubjectTypeDateFlag = "date" // 日期选择题
  136. QuestionSubjectTypeGroupFlag = "group" // 组合题
  137. )
  138. // 问题库
  139. type QuestionnaireSubject struct {
  140. ID int64 `json:"id" form:"id"`
  141. SN string `json:"sn" form:"sn"`
  142. Type int `json:"type" form:"type"`
  143. Title string `json:"title" form:"title"`
  144. Validator string `json:"validator" form:"validator"`
  145. Remark string `json:"remark" form:"remark"`
  146. Mark string `json:"mark" form:"mark"`
  147. CreatedAt string `json:"createdAt" form:"-"`
  148. SelectValues []*QuestionnaireSubjectSelectValue `json:"selectValues" form:"-"`
  149. }
  150. type QuestionnaireSubjectSelectValue struct {
  151. Label string `json:"label" form:"label"`
  152. Value string `json:"value" form:"value"`
  153. }
  154. // 问题模板
  155. type QuestionnaireTemplate struct {
  156. ID int64 `json:"id" form:"id"`
  157. SN string `json:"sn" form:"sn"`
  158. Title string `json:"title" form:"title"`
  159. Peg string `json:"peg" form:"peg"`
  160. SubjectTotal int `json:"subjectTotal" form:"-"` // 关联的题目数
  161. SubjectIds []string `json:"subjectIds" form:"-"` // 关联的题目ID列表
  162. Subjects []*QuestionnaireSubject `json:"subjects" form:"-"` // 关联的题目列表
  163. CreatedAt string `json:"createdAt" form:"-"`
  164. }
  165. type Province struct {
  166. ID string `json:"id" binding:"required"`
  167. Name string `json:"name" binding:"required"`
  168. Citys []*City `json:"citys" binding:"-"`
  169. }
  170. type City struct {
  171. ID string `json:"id" binding:"required"`
  172. Name string `json:"name" binding:"required"`
  173. ProvinceId string `json:"provinceId" binding:"required"`
  174. Countys []*County `json:"countys" binding:"-"`
  175. }
  176. type County struct {
  177. ID string `json:"id" binding:"required"`
  178. Name string `json:"name" binding:"required"`
  179. CityId string `json:"cityId" binding:"required"`
  180. }
  181. type Archives struct {
  182. ID string `json:"id" form:"id" binding:"omitempty"`
  183. Name string `json:"name" form:"name" binding:"required_without=ID,omitempty"`
  184. Avatar string `json:"avatar" form:"avatar" binding:"omitempty"`
  185. Gender int `json:"gender" form:"gender" binding:"required_without=ID,omitempty"`
  186. Birthday string `json:"birthday" form:"birthday" binding:"required_without=ID,omitempty"`
  187. RegisterAddress string `json:"registerAddress" form:"registerAddress" binding:"omitempty"`
  188. EmergencyContactName string `json:"emergencyContactName" form:"emergencyContactName" binding:"omitempty"`
  189. EmergencyContactPhone string `json:"emergencyContactPhone" form:"emergencyContactPhone" binding:"omitempty"`
  190. Address string `json:"address" form:"address" binding:"omitempty"`
  191. Province string `json:"province" form:"province" binding:"omitempty"`
  192. ProvinceText string `json:"provinceText" form:"-" binding:"-"`
  193. City string `json:"city" form:"city" binding:"omitempty"`
  194. CityText string `json:"cityText" form:"-" binding:"-"`
  195. Area string `json:"area" form:"area" binding:"omitempty"`
  196. AreaText string `json:"areaText" form:"-" binding:"-"`
  197. SubDistrict string `json:"subDistrict" form:"subDistrict" binding:"omitempty"`
  198. Community string `json:"community" form:"community" binding:"omitempty"`
  199. Village string `json:"village" form:"village" binding:"omitempty"`
  200. Building string `json:"building" form:"building" binding:"omitempty"`
  201. HouseNumber string `json:"houseNumber" form:"houseNumber" binding:"omitempty"`
  202. MainArchivesId string `json:"mainArchivesId" form:"mainArchivesId" binding:"omitempty"` // 主档案编号
  203. ArchivesRelation int `json:"archivesRelation" form:"archivesRelation" binding:"omitempty"`
  204. ArchivesRelationText string `json:"archivesRelationText" form:"-" binding:"-"`
  205. CreatedAt string `json:"createdAt" form:"-" binding:"-"`
  206. UpdatedAt string `json:"updatedAt" form:"-" binding:"-"`
  207. DepartmentId int64 `json:"departmentId" form:"departmentId" binding:"omitempty"`
  208. DepartmentName string `json:"departmentName" form:"departmentName" binding:"omitempty"`
  209. ParentDepartmentName string `json:"parentDepartmentName" form:"parentDepartmentName" binding:"omitempty"`
  210. AssociatArchives []*Archives `json:"associatArchives" form:"-" binding:"-"`
  211. Tags []*Tag `json:"tags" form:"-" binding:"-"`
  212. Accounts []*Account `json:"accounts" form:"accounts" binding:"required_without=ID,dive"`
  213. IsCompletePassword bool `json:"isCompletePassword" form:"-" binding:"-"`
  214. IsCompleteInfo bool `json:"isCompleteInfo" form:"-" binding:"-"`
  215. MedicalReportConfirmTotal *MedicalReportCharts `json:"medicalReportConfirmTotal" form:"-" binding:"-"` // 已确认的报告数量
  216. CreateMechanismId string `json:"createMechanismId" form:"createMechanismId" binding:"omitempty"` // 注册档案机构ID
  217. HasArchivesReport bool `json:"hasArchivesReport" form:"hasArchivesReport" binding:"omitempty"` // 是否有档案报告
  218. ArchivesChannels []*ArchivesChannelInfo `json:"archivesChannels" form:"archivesChannels" binding:"omitempty"`
  219. }
  220. type ArchivesAttachForm struct {
  221. ChannelId int64 `json:"channelId" form:"channelId" binding:"omitempty"`
  222. // DepartmentName string `json:"departmentName" form:"departmentName" binding:"omitempty"`
  223. // ParentDepartmentName string `json:"parentDepartmentName" form:"parentDepartmentName" binding:"omitempty"`
  224. }
  225. type ArchivesChannelInfo struct {
  226. ID int64 `json:"id" form:"id" binding:"omitempty"`
  227. Name string `json:"name" form:"name" binding:"omitempty"`
  228. DepartmentId int64 `json:"departmentId" form:"departmentId" binding:"omitempty"`
  229. DepartmentName string `json:"departmentName" form:"departmentName" binding:"omitempty"`
  230. CreatedAt string `json:"createdAt" form:"-" binding:"-"`
  231. }
  232. type Account struct {
  233. Account string `json:"account" form:"account" binding:"required"`
  234. Type int `json:"type" form:"type" binding:"required"`
  235. Code string `json:"code" form:"code" binding:"omitempty"`
  236. IsValid bool `json:"isValid" form:"-" binding:"-"`
  237. CreatedAt string `json:"createdAt" form:"-" binding:"-"`
  238. UpdatedAt string `json:"updatedAt" form:"-" binding:"-"`
  239. }
  240. type ArchivesMedicalData struct {
  241. LastUpdatedAt string `json:"lastUpdatedAt"` // 最后更新时间
  242. Indicators map[string][]*Indicator `json:"indicators"` // 指标数据
  243. ArchivesValues map[string][]*ArchivesValues `json:"archivesValues"` // 档案数据(问卷答案)
  244. }
  245. type ArchivesValues struct {
  246. ExtraType int `json:"extraType"` // 数据类型
  247. UpdatedAt string `json:"updatedAt"`
  248. ReturnAnswer *SurveyAnswer `json:"returnAnswer"`
  249. Answer *SurveyAnswer `json:"answer"` // 请求时要传这个
  250. }
  251. type ArchivesPaginateQuery struct {
  252. Page int `json:"page" form:"page" binding:"omitempty"`
  253. PageSize int `json:"pageSize" form:"pageSize" binding:"omitempty"`
  254. Name string `json:"name" form:"name" binding:"omitempty"`
  255. Gender int `json:"gender" form:"gender" binding:"omitempty"`
  256. ArchivesId string `json:"archivesId" form:"archivesId" binding:"omitempty"`
  257. Phone string `json:"phone" form:"phone" binding:"omitempty"`
  258. IdCard string `json:"idCard" form:"idCard" binding:"omitempty"`
  259. Account string `json:"account" form:"account" binding:"omitempty"`
  260. RegistMechanismId string `json:"registMechanismId" form:"registMechanismId" binding:"omitempty"`
  261. ProvinceId string `json:"provinceId" form:"provinceId" binding:"omitempty"`
  262. CityId string `json:"cityId" form:"cityId" binding:"omitempty"`
  263. AreaId string `json:"areaId" form:"areaId" binding:"omitempty"`
  264. SubDistrict string `json:"subDistrict" form:"subDistrict" binding:"omitempty"`
  265. Community string `json:"community" form:"community" binding:"omitempty"`
  266. SubDistricts []string `json:"subDistricts" form:"subDistricts" binding:"omitempty"`
  267. Communities []string `json:"communities" form:"communities" binding:"omitempty"`
  268. TagIds []string `json:"tagIds[]" form:"tagIds[]" binding:"omitempty"`
  269. TagIdList []string `json:"tagIdList" form:"tagIdList" binding:"omitempty"`
  270. Keyword string `json:"keyword" form:"keyword" binding:"omitempty"` // 聚合搜索
  271. CreatedStartDate string `json:"createdStartDate" form:"createdStartDate" binding:"omitempty"` // 建档开始时间
  272. CreatedEndDate string `json:"createdEndDate" form:"createdEndDate" binding:"omitempty"` // 建档结束时间
  273. NeedSubArchives int64 `json:"needSubArchives" form:"needSubArchives" binding:"omitempty"` // 是否需要子档案
  274. InDepartment int64 `json:"inDepartment" form:"inDepartment" binding:"omitempty"` // 是否在部门中
  275. DepartmentId int64 `json:"departmentId" form:"departmentId" binding:"omitempty"` // 部门ID
  276. ArchivesValuesDataIds []string `json:"archivesValuesDataIds" form:"archivesValuesDataIds" binding:"omitempty"` // 档案值数据ID
  277. AgeStart int64 `json:"ageStart" form:"ageStart" binding:"omitempty"` // 年龄开始
  278. AgeEnd int64 `json:"ageEnd" form:"ageEnd" binding:"omitempty"` // 年龄结束
  279. HasArchivesReport int64 `json:"hasArchivesReport" form:"hasArchivesReport" binding:"omitempty"` // 是否有档案报告
  280. ChannelId int64 `json:"channelId" form:"channelId" binding:"omitempty"` // 渠道ID
  281. ChannelIds string `json:"channelIds" form:"channelIds" binding:"omitempty"` // 渠道ID列表
  282. }
  283. type FormAnswer struct {
  284. ExtraType int `json:"extraType" form:"extraType" binding:"required"` // 数据类型
  285. Answer *SurveyAnswer `json:"answer"`
  286. UpdatedAt string `json:"updatedAt"`
  287. ReturnAnswer map[string]any `json:"returnAnswer"`
  288. }
  289. // 指标数据
  290. type Indicator struct {
  291. Name string `json:"name"` //身体名称
  292. ID string `json:"id"` //身体ID
  293. Value string `json:"value"` //身体值
  294. Unit string `json:"unit"` //身体单位
  295. Reference string `json:"reference"` //参考范围
  296. ReferStart string `json:"referStart"` //参考范围低值
  297. ReferEnd string `json:"referEnd"` //参考范围高值
  298. ItemName string `json:"itemName"` //检查项目名称
  299. ItemID string `json:"itemId"` //检查项目ID
  300. AbnormalDatas []*AbnormalData `json:"abnormalDatas"` //异常数据
  301. Date int `json:"date"` //检查时间
  302. OriginalName string `json:"originalName"` //原始名称
  303. Mark int `json:"mark"` //标记
  304. IsAbnormal bool `json:"isAbnormal"` //是否异常
  305. IsHideInCheckData bool `json:"isHideInCheckData"` //是否在检查数据中隐藏
  306. ImportID string `json:"importId"` //导入ID
  307. ImportItemID string `json:"importItemId"` //导入项目ID
  308. }
  309. // 异常数据
  310. type AbnormalData struct {
  311. Name string `json:"name"` //异常名称
  312. ID string `json:"id"` //异常ID
  313. Value map[string]string `json:"value"` //异常值
  314. ImportID string `json:"importId"` //导入ID
  315. }
  316. // 普通答案
  317. type QuestionAnswerModel struct {
  318. Key string `json:"key"` // 答案key
  319. Value string `json:"value"` // 答案value
  320. ImportID string `json:"importId"` // 额外附加的图谱导入ID
  321. }
  322. // 单行文本题答案
  323. type QuestionInputAnswerModel struct {
  324. Key string `json:"key"` // 答案key
  325. Value []string `json:"value"` // 答案value
  326. }
  327. // 链接答案
  328. type LinkAnswerModel struct {
  329. Key string `json:"key"` // 答案key
  330. Value []LinkAnswer `json:"value"` // 答案value
  331. }
  332. type LinkAnswer struct {
  333. Url string `json:"url"` // 链接地址
  334. Name string `json:"name"` // 链接名称
  335. }
  336. // 矩阵答案
  337. type QuestionMatrixAnswerModel struct {
  338. XKey string `json:"xKey"` // X轴key
  339. XText string `json:"xText"` // X轴文本
  340. YKey string `json:"yKey"` // Y轴key
  341. YText string `json:"yText"` // Y轴文本
  342. }
  343. // 问卷答案
  344. type SurveyAnswer struct {
  345. Type string `json:"type" form:"type" binding:"required"` // 问题类型
  346. QuestionNo string `json:"questionNo" form:"questionNo" binding:"required"` // 问题编号
  347. MultipleAnswers bool `json:"multipleAnswers" form:"multipleAnswers" binding:"omitempty"` // 是否多答
  348. InputAnswers QuestionInputAnswerModel `json:"inputAnswers" form:"inputAnswers" binding:"required_if=Type input"` // 答案(单行文本题)支持多答
  349. LinkAnswers LinkAnswerModel `json:"linkAnswers" form:"linkAnswers" binding:"required_if=Type upload"` // 答案(链接题)支持多答
  350. Answer QuestionAnswerModel `json:"answer" form:"answer" binding:"-"` // 答案(单选题、时间选择题)
  351. CheckboxAnswers []QuestionAnswerModel `json:"checkboxAnswers" form:"checkboxAnswers" binding:"required_if=Type checkbox"` // 答案(多选题)
  352. MatrixAnswers []QuestionMatrixAnswerModel `json:"matrixAnswers" form:"matrixAnswers" binding:"required_if=Type matrix_checkbox"` // 答案(矩阵多选题)
  353. GroupAnswers [][]SurveyAnswer `json:"groupAnswers" form:"groupAnswers" binding:"required_if=Type group"` // 答案(组合题)支持多答
  354. }
  355. type AlgorAppAuth struct {
  356. ID int64 `json:"id" form:"id" binding:"omitempty,numeric"`
  357. AppId int64 `json:"appId" form:"appId" binding:"omitempty,numeric"`
  358. DecisionModelId int64 `json:"decisionModelId" form:"decisionModelId" binding:"required,numeric"`
  359. DecisionModel *DecisionModel `json:"decisionModel" form:"decisionModel" binding:"-"`
  360. Remark string `json:"remark" form:"remark" binding:"omitempty,min=1,max=100"`
  361. UsedTotal int `json:"usedTotal" form:"usedTotal" binding:"-"`
  362. Status int `json:"status" form:"status" binding:"oneof=1 2"`
  363. CreatedAt string `json:"createdAt" binding:"-"`
  364. }
  365. type DecisionModel struct {
  366. ID int64 `json:"id" form:"id" binding:"omitempty,number"`
  367. Name string `json:"name" form:"name" binding:"required,min=1,max=20"`
  368. SN string `json:"sn" form:"sn" binding:"required,alphanum,min=1,max=20"`
  369. CreatedAt string `json:"createdAt" form:"-" binding:"-"`
  370. }
  371. type ExecuteRequest struct {
  372. Type int `json:"type" form:"type" binding:"required"` // 处理类型,1:问卷,2:ocr
  373. SurveyData map[string]map[string]any `json:"surveyData" form:"surveyData" binding:"required_if=Type 1"` // 问卷数据
  374. OcrData *OCRDataList `json:"ocrData" form:"ocrData" binding:"required_if=Type 2"` // ocr数据
  375. MultiOcrData map[string]*OCRDataList `json:"multiOcrData" form:"multiOcrData" binding:"required_if=Type 6"` // ocr数据
  376. DecisionModelSN string `json:"decisionModelSn" form:"decisionModelSn" binding:"required"` // 决策模型编号
  377. Extra string `json:"extra" form:"extra" binding:"omitempty"` // 额外数据
  378. ArchivesData *ExecuteRequestArchivesData `json:"archivesData" form:"archivesData" binding:"required_if=Type 3"` // 档案数据
  379. ChronicDiseaseData any `json:"chronicDiseaseData" form:"chronicDiseaseData" binding:"required_if=Type 4"` // 慢病数据
  380. // ChronicDiseaseData *ChronicDiseaseRequestData `json:"chronicDiseaseData" form:"chronicDiseaseData" binding:"required_if=Type 4"` // 慢病数据
  381. }
  382. type ExecuteRequestArchivesData struct {
  383. ArchivesId string `json:"archivesId" form:"archivesId" binding:"required"`
  384. Name string `json:"name" form:"name" binding:"required"`
  385. Gender string `json:"gender" form:"gender" binding:"required"`
  386. Age int `json:"age" form:"age" binding:"required"`
  387. Indicators []*Indicator `json:"indicators" form:"indicators" binding:"omitempty"`
  388. ArchivesValues []*ArchivesValues `json:"archivesValues" form:"archivesValues" binding:"omitempty"`
  389. }
  390. type OCRDataList struct {
  391. UserName string `json:"userName"` //用户姓名
  392. UserAge int `json:"userAge"` //用户年龄
  393. UserBirthday string `json:"userBirthday"` //用户生日
  394. UserSex string `json:"userSex"` //用户性别
  395. OCRData []map[string]any `json:"ocrData"` //OCR数据
  396. SurveyData map[string]*SurveyAnswer `json:"surveyData"` // 问卷数据
  397. }
  398. type AuthMechanism struct {
  399. ID string `json:"id"` // 用户ID
  400. Account string `json:"account"` // 账号
  401. Nickname string `json:"nickname"` // 昵称
  402. LoginAt int64 `json:"loginAt"` // 当前Token派发登录时间
  403. IsMechanism bool `json:"isMechanism"` // 是否是机构
  404. FullPermission bool `json:"fullPermission"` // 是否全权限覆盖
  405. Permissions []string `json:"permissions"` // 权限KEY列表
  406. RoleIds []int64 `json:"roleIds"` // 角色ID列表
  407. Mechanism *AuthBaseMechanism `json:"mechanism"` // 机构信息
  408. }
  409. type AuthBaseMechanism struct {
  410. ID string `json:"id"` // 用户ID
  411. Account string `json:"account"` // 账号
  412. Nickname string `json:"nickname"` // 昵称
  413. RawId int64 `json:"rawId"` // 原始ID
  414. AppKey string `json:"appKey"` // appKey
  415. AppSecret string `json:"appSecret"` // appSecret
  416. IpWhiteList string `json:"ipWhiteList"` // ip白名单
  417. CallbackUrlList string `json:"callbackUrlList"` // 回调地址列表
  418. }
  419. type AuthUser struct {
  420. ID int64 `json:"id"` // 用户ID
  421. Account string `json:"account"` // 账号
  422. Nickname string `json:"nickname"` // 昵称
  423. FullPermission bool `json:"fullPermission"` // 是否全权限覆盖
  424. RoleIds []int64 `json:"roleIds"` // 角色ID列表
  425. Permissions []string `json:"permissions"` // 权限KEY列表
  426. LoginAt int64 `json:"loginAt"` // 当前Token派发登录时间
  427. }
  428. type AuthMember struct {
  429. ID string `json:"id"` // 档案编号
  430. Name string `json:"name"` // 档案姓名
  431. Gender int `json:"gender"` // 档案性别
  432. MainArchivesId string `json:"mainArchivesId"` // 主档案编号
  433. IsCompletePassword bool `json:"isFullPassword"` // 是否完善了密码
  434. IsCompleteArchivesInfo bool `json:"isCompleteArchivesInfo"` // 是否完善了档案信息
  435. LoginAt int64 `json:"loginAt"` // 当前Token派发登录时间
  436. }
  437. type PdfTemplate struct {
  438. ID int64 `json:"id"`
  439. Type int64 `json:"type"`
  440. SortRule int64 `json:"sortRule"`
  441. Name string `json:"name"`
  442. IsDefault int64 `json:"isDefault"`
  443. Config string `json:"config"`
  444. Remark string `json:"remark"`
  445. Logo string `json:"logo"`
  446. IsAttachRawPdf int64 `json:"isAttachRawPdf"`
  447. IsFilterDisease int64 `json:"isFilterDisease"` // 是否过滤疾病
  448. CreatedAt string `json:"createdAt"`
  449. }
  450. type PdfTemplateMechanism struct {
  451. ID int64 `json:"id"`
  452. MechanismId string `json:"mechanismId"`
  453. IsMember bool `json:"isMember"`
  454. TemplateId int64 `json:"templateId"`
  455. Template *PdfTemplate `json:"template"`
  456. CreatedAt string `json:"createdAt"`
  457. }
  458. type TagCategory struct {
  459. ID string `json:"id" form:"id" binding:"omitempty"`
  460. RawId int64 `json:"rawId" form:"-" binding:"-"`
  461. Name string `json:"name" form:"name" binding:"required,max=20"`
  462. Purpose string `json:"purpose" form:"purpose"`
  463. ModelSn string `json:"modelSn" form:"-" binding:"-"`
  464. ReturnFields []*TagCategoryModelReturnField `json:"returnFields" form:"-" binding:"-"`
  465. CreatedAt string `json:"createdAt" form:"-" binding:"-"`
  466. UpdatedAt string `json:"updatedAt" form:"-" binding:"-"`
  467. }
  468. type TagCategoryModelReturnField struct {
  469. Value string `json:"value" form:"value" binding:"required"` // 字段value
  470. Label string `json:"label" form:"-" binding:"-"` // 字段名称
  471. TagId string `json:"tagId" form:"tagId" binding:"required"` // 标签ID
  472. Tag *Tag `json:"tag" form:"-" binding:"-"` // 标签
  473. }
  474. type Street struct {
  475. ID string `json:"id" binding:"required"`
  476. Name string `json:"name" binding:"required"`
  477. CountyId string `json:"countyId" binding:"required"`
  478. Villages []*Villages `json:"villages" binding:"-"`
  479. }
  480. type Villages struct {
  481. ID string `json:"id" binding:"required"`
  482. Name string `json:"name" binding:"required"`
  483. StreetId string `json:"streetId" binding:"required"`
  484. }
  485. type MedicalReportCharts struct {
  486. ArchivesId string `json:"archivesId"`
  487. Archives *Archives `json:"archives"`
  488. AwaitTotal int64 `json:"awaitTotal"`
  489. ProcessTotal int64 `json:"processTotal"`
  490. SuccessTotal int64 `json:"successTotal"`
  491. DoneTotal int64 `json:"doneTotal"`
  492. ConfirmTotal int64 `json:"confirmTotal"`
  493. SuggestionStatus int64 `json:"suggestionStatus"`
  494. LastTime string `json:"lastTime"`
  495. }
  496. type MedicalDataCreateFormByOpenAPI struct {
  497. FileBase64 string `json:"fileBase64" form:"fileBase64" binding:"omitempty"` // 文件base64
  498. FileName string `json:"fileName" form:"fileName" binding:"omitempty"` // 文件名
  499. FileUrl string `json:"fileUrl" form:"fileUrl" binding:"omitempty,url"` // 文件地址
  500. FileRemark string `json:"fileRemark" form:"fileRemark" binding:"omitempty"` // 文件备注
  501. MedicalDate string `json:"medicalDate" form:"medicalDate" binding:"required"` // 体检日期
  502. MechanismId string `json:"mechanismId" form:"mechanismId" binding:"required"` // 机构ID
  503. TransferResult []map[string]any `json:"transferResult" form:"transferResult" binding:"omitempty"` // 转换结果
  504. }
  505. type MedicalDataBindArchivesFormByOpenAPI struct {
  506. ArchivesId string `json:"archivesId" form:"archivesId" binding:"required"` // 档案编号
  507. MedicalDataId string `json:"medicalDataId" form:"medicalDataId" binding:"required"` // 数据ID
  508. MechanismId string `json:"mechanismId" form:"mechanismId" binding:"required"` // 机构ID
  509. }
  510. type MedicalData struct {
  511. // ID int64 `json:"id" form:"id" binding:"omitempty,min=1"` // 数据ID
  512. SN string `json:"sn" form:"-" binding:"-"` // 批次号
  513. ArchivesId string `json:"archivesId" form:"archivesId" binding:"omitempty"` // 档案编号
  514. Type int `json:"type" form:"type" binding:"required_if=ID 0,omitempty,min=1"` // 类型
  515. Remark string `json:"remark" form:"remark" binding:"omitempty"` // 备注
  516. Files []*MedicalDataFile `json:"files" form:"files" binding:"required,dive,min=1"` // 文件列表
  517. MechanismId string `json:"mechanismId" form:"-" binding:"-"` // 机构ID
  518. Mechanism *Mechanism `json:"mechanism" form:"-" binding:"-"` // 机构
  519. FileName string `json:"fileName" form:"fileName" binding:"omitempty"` // 文件名
  520. Source int `json:"source" form:"-" binding:"-"` // 来源
  521. Status int `json:"status" form:"-" binding:"-"` // 状态
  522. IsAbandon int `json:"isAbandon" form:"-" binding:"-"` // 是否废弃
  523. ResultRawJson string `json:"resultRawJson" form:"-" binding:"-"` // 结果原始JSON
  524. TransferRawJson string `json:"transferRawJson" form:"transferRawJson" binding:"omitempty"` // 转换原始JSON
  525. Suggestion string `json:"suggestion" form:"suggestion" binding:"omitempty"` // 个性化建议
  526. PdfTransferStatus int `json:"pdfTransferStatus" form:"-" binding:"-"` // PDF转换状态
  527. PdfTransferMsg string `json:"pdfTransferMsg" form:"-" binding:"-"` // PDF转换消息
  528. PdfTransferResultUrl string `json:"pdfTransferResultUrl" form:"-" binding:"-"` // PDF转换结果地址
  529. PdfTransferStartTime string `json:"pdfTransferStartTime" form:"-" binding:"-"` // PDF转换开始时间
  530. PdfTransferEndTime string `json:"pdfTransferEndTime" form:"-" binding:"-"` // PDF转换结束时间
  531. Errors []string `json:"errors" form:"-" binding:"-"` // 错误信息
  532. Date string `json:"date" form:"date" binding:"omitempty"` // 日期
  533. PdfResultTotalStatus int `json:"pdfResultTotalStatus" form:"-" binding:"-"` // PDF转换结果总状态
  534. PdfResultTemplateTotal int64 `json:"pdfResultTemplateTotal" form:"-" binding:"-"` // PDF转换结果总数
  535. PdfResultSuccessTotal int64 `json:"pdfResultSuccessTotal" form:"-" binding:"-"` // PDF转换结果成功数
  536. PdfTemplateConfigs []*MedicalDataPdfTemplateConfig `json:"pdfTemplateConfigs" form:"pdfTemplateConfigs" binding:"omitempty"` // PDF模板配置列表
  537. CreatedAt string `json:"createdAt" form:"-" binding:"-"` // 创建时间
  538. UpdatedAt string `json:"updatedAt" form:"-" binding:"-"` // 更新时间
  539. }
  540. type MedicalDataFile struct {
  541. ID int64 `json:"id" form:"id" binding:"omitempty,min=1"` // 文件ID
  542. DataId int64 `json:"dataId" form:"-" binding:"-"` // 数据ID
  543. FileName string `json:"fileName" form:"fileName" binding:"required_if=ID 0,omitempty"` // 文件名
  544. FileUrl string `json:"fileUrl" form:"fileUrl" binding:"required_if=ID 0,omitempty,url"` // 文件地址
  545. Date string `json:"date" form:"date" binding:"required_if=ID 0,omitempty,datetime=2006-01-02"` // 日期
  546. Remark string `json:"remark" form:"remark" binding:"omitempty"` // 备注
  547. CreatedAt string `json:"createdAt" form:"-" binding:"-"` // 创建时间
  548. }
  549. type MedicalDataPdfTemplateConfig struct {
  550. PdfTemplateId int64 `json:"pdfTemplateId" form:"pdfTemplateId" binding:"required"` // PDF模板ID
  551. Config *MedicalDataPdfTemplateConfigStruct `json:"config" form:"config" binding:"required"` // 配置信息
  552. }
  553. type MedicalDataPdfTemplateConfigStruct struct {
  554. ShowDiseaseNames []string `json:"showDiseaseNames"` // 需要展示的疾病名称
  555. }
  556. type MedicalCompareReport struct {
  557. ID string `json:"id" form:"id" binding:"required"` // 对比报告ID
  558. ArchivesId string `json:"archivesId" form:"archivesId" binding:"required"` // 档案编号
  559. Data *MedicalReportCompareData `json:"data" form:"data" binding:"required"` // 对比报告的医疗数据
  560. SuggestionStatus int64 `json:"suggestionStatus" form:"-" binding:"-"` // 个性化建议状态
  561. Suggestion string `json:"suggestion" form:"suggestion" binding:"omitempty"` // 个性化建议
  562. PdfTransferStatus int `json:"pdfTransferStatus" form:"-" binding:"-"` // PDF转换状态
  563. PdfTransferMsg string `json:"pdfTransferMsg" form:"-" binding:"-"` // PDF转换消息
  564. PdfTransferResultUrl string `json:"pdfTransferResultUrl" form:"-" binding:"-"` // PDF转换结果地址
  565. PdfTransferStartTime string `json:"pdfTransferStartTime" form:"-" binding:"-"` // PDF转换开始时间
  566. PdfTransferEndTime string `json:"pdfTransferEndTime" form:"-" binding:"-"` // PDF转换结束时间
  567. CreatedAt string `json:"createdAt" form:"-" binding:"-"` // 创建时间
  568. }
  569. type MedicalReportCompareData struct {
  570. DiseaseList []MedicalReportDisease `json:"diseaseList"`
  571. MedDataList []MedicalReportMedData `json:"medDataList"`
  572. TableHeaderColumns []string `json:"tableHeaderColumns"`
  573. TableData []FinalAnalysisResult `json:"tableData"`
  574. MedicalDataIds []string `json:"medicalDataIds"`
  575. }
  576. type MedicalReportDisease struct {
  577. Name string `json:"name"`
  578. NodeId string `json:"nodeId"`
  579. List []MedicalReportDiseaseItem `json:"list"`
  580. }
  581. type MedicalReportDiseaseItem struct {
  582. RiskDesc string `json:"riskDesc"` //风险描述词
  583. RiskDegree int `json:"riskDegree"` //风险程度 //0-无法评估 1-暂无风险 2-有一定风险 3-有明显风险 4-已确诊
  584. }
  585. type MedicalReportMedData struct {
  586. Name string `json:"name"`
  587. NodeId string `json:"nodeId"`
  588. Type int `json:"type"`
  589. Sort int `json:"sort"`
  590. List [][]MedData `json:"list"`
  591. }
  592. // 医疗数据
  593. type MedData struct {
  594. ItermName string `json:"itermName"` //医疗数据名称
  595. NodeId string `json:"nodeId"` //医疗数据ID
  596. Value string `json:"value"` //医疗数据值
  597. Unit string `json:"unit"` //医疗数据单位
  598. Reference string `json:"reference"` //参考范围
  599. CheckTime int `json:"checkTime"` //检查时间
  600. CheckItemName string `json:"checkItemName"` //检查项目名称
  601. CheckItemId string `json:"checkItemId"` //检查项目ID
  602. Mark int `json:"mark"` //异常标记 0-无标记 1-升高 -1-降低
  603. IsAbnormal bool `json:"isAbnormal"` //是否异常
  604. Type int `json:"type"` //类型 0-未定义 1-身体物质 2-身体部位 3-其他身体物质
  605. Sort int `json:"sort"` //排序
  606. }
  607. // 最终输出结果
  608. type FinalAnalysisResult struct {
  609. ExamDate int `json:"examDate"` //检查日期
  610. AssessmentDate string `json:"assessmentDate"` //评估日期
  611. DebugInfo []string `json:"debugInfo"` //调试信息
  612. MajorDiseases []MajorDisease `json:"majorDisease"` //重大疾病
  613. CalErr []string `json:"calErr"` //系统计算错误信息
  614. AlTime string `json:"alTime"` //计算时间
  615. UserInfo FinalAnalysisResultUserInfo `json:"userInfo"` //用户信息
  616. MedicalReportId string `json:"medicalReportId"`
  617. AbnormalInfo []FinalAnalysisResultAbnormalInfo `json:"abnormalInfo"` //异常信息
  618. }
  619. type FinalAnalysisResultAbnormalInfo struct {
  620. AbnormalTypeName string `json:"abnormalTypeName"` //异常类型名称
  621. AbnormalTypeNodeID string `json:"abnormalTypeNodeID"` //异常类型nodeid
  622. ClassInfo []FinalAnalysisResultClassInfo `json:"classInfo"` //异常类别信息
  623. }
  624. type FinalAnalysisResultClassInfo struct {
  625. AbnormalClassName string `json:"abnormalClassName"` //异常类别名称
  626. AbnormalClassNodeID string `json:"abnormalClassNodeID"` //异常类别nodeid
  627. }
  628. type FinalAnalysisResultUserInfo struct {
  629. CurrentAge string `json:"currentAge"` //当前年龄
  630. ExamAge string `json:"examAge"` //检查时年龄
  631. Gender string `json:"gender"` // 性别
  632. Name string `json:"name"` //姓名
  633. }
  634. // 重大疾病
  635. type MajorDisease struct {
  636. Name string `json:"name"` //疾病名称
  637. NodeId string `json:"nodeId"` //疾病ID
  638. RiskDesc string `json:"riskDesc"` //风险描述词
  639. RiskDegree int `json:"riskDegree"` //风险程度 //0-无法评估 1-暂无风险 2-有一定风险 3-有明显风险 4-已确诊
  640. Classification int `json:"classification"` //疾病分类 0-未分类 1-肿瘤 2-心脑血管 3-个性化疾病
  641. RecommendItems []string `json:"recommendItems"` //推荐检查项目
  642. FollowUpTime string `json:"followUpTime"` //随访时间
  643. NotificationTime string `json:"notificationTime"` //通知时间
  644. Department []string `json:"department"` //科室名称
  645. MedDatas []MedData `json:"medDatas"` //医疗数据
  646. AbnormalDatas []AbnormalData `json:"abnormalDatas"` //异常检查结果
  647. }
  648. type QueryIDCIndicatorDataQuery struct {
  649. ArchivesId string `json:"archivesId" form:"archivesId" binding:"required"`
  650. QueryData []*QueryIDCIndicatorDataQueryData `json:"queryData" form:"queryData" binding:"required,dive,min=1"`
  651. }
  652. type QueryIDCIndicatorDataQueryData struct {
  653. BodyDataId string `json:"bodyDataId" form:"bodyDataId" binding:"required"`
  654. ItemId string `json:"itemId" form:"itemId" binding:"omitempty"`
  655. CheckTime []string `json:"checkTime" form:"checkTime" binding:"omitempty"`
  656. }
  657. type MedicalDateTransferResultQueryResultItemBody struct {
  658. ID string `json:"id"` // 检查内容ID
  659. Name string `json:"name"` // 检查内容名称
  660. IsBodyMatter bool `json:"isBodyMatter"` // 是否是身体物质
  661. Tags []string `json:"tags"` // 标签
  662. List []*Indicator `json:"list"` // 检查内容的指标列表
  663. }
  664. // 慢病管理参数
  665. type ChronicDiseaseRequestData struct {
  666. DiseaseId string `json:"diseaseId" form:"diseaseId" binding:"required"` // 疾病ID
  667. UserId string `json:"userId" form:"userId" binding:"required"` // 用户ID
  668. EvaluationsNum int `json:"evaluationsNum" form:"evaluationsNum" binding:"required,min=0"` // 评估次数
  669. AssessmentInfo *AssessmentInfo `json:"assessmentInfo" form:"assessmentInfo" binding:"omitempty"` // 评估信息
  670. }
  671. type AssessmentInfo struct {
  672. Result string `json:"result"` //评估结果
  673. Accordance []string `json:"accordance"` //评估依据
  674. ErrInfo []string `json:"errInfo"` //错误信息
  675. }
  676. type Channel struct {
  677. ID int64 `json:"id"`
  678. Name string `json:"name"`
  679. Remark string `json:"remark"`
  680. Sort int64 `json:"sort"`
  681. CreatedAt string `json:"createdAt"`
  682. }
  683. type Agency struct {
  684. ID int64 `json:"id" form:"id" binding:"omitempty"`
  685. Nickname string `json:"nickname" form:"nickname" binding:"required"`
  686. Account string `json:"account" form:"account" binding:"required"`
  687. Password string `json:"password" form:"password" binding:"omitempty"`
  688. Status int64 `json:"status" form:"status" binding:"required"`
  689. Remark string `json:"remark" form:"remark" binding:"omitempty"`
  690. ChannelIds []int64 `json:"channelIds" form:"channelIds" binding:"required"`
  691. Channels []*Channel `json:"channels" form:"channels" binding:"-"`
  692. MechanismId string `json:"mechanismId" form:"mechanismId" binding:"-"`
  693. CreatedAt string `json:"createdAt" form:"createdAt" binding:"-"`
  694. }
  695. type AgencyDeveloperSettingForm struct {
  696. AgencyId int64 `json:"agencyId" form:"agencyId" binding:"required"` // 三方机构ID
  697. MechanismId string `json:"mechanismId" form:"mechanismId" binding:"omitempty"` // 机构ID
  698. AppKey string `json:"appKey" form:"appKey" binding:"omitempty"` // appKey
  699. AppSecret string `json:"appSecret" form:"appSecret" binding:"omitempty"` // appSecret
  700. RegistChannelId int64 `json:"registChannelId" form:"registChannelId" binding:"required"` // 注册渠道ID
  701. RegistDepartmentId int64 `json:"registDepartmentId" form:"registDepartmentId" binding:"required"` // 注册部门ID
  702. CallbackUrl string `json:"callbackUrl" form:"callbackUrl" binding:"required"` // 回调地址
  703. WhiteIp string `json:"whiteIp" form:"whiteIp" binding:"omitempty"` // 白名单
  704. UserAccountPrefix string `json:"userAccountPrefix" form:"userAccountPrefix" binding:"omitempty"` // 用户账号前缀
  705. PdfTemplateId int64 `json:"pdfTemplateId" form:"pdfTemplateId" binding:"omitempty"` // PDF模板ID
  706. AgencyInfo *Agency `json:"agencyInfo" form:"agencyInfo" binding:"-"`
  707. }
  708. type ArchivesReport struct {
  709. ID int64 ` json:"id"`
  710. ArchivesId string `json:"archivesId"`
  711. ResultRawData string `json:"resultRawData"`
  712. StartTime string `json:"startTime"`
  713. EndTime string `json:"endTime"`
  714. RiskData string `json:"riskData"`
  715. LackAssessmentDiseaseNames string `json:"lackAssessmentDiseaseNames"`
  716. NoRiskDiseaseNames string `json:"noRiskDiseaseNames"`
  717. CertainRiskDiseaseNames string `json:"certainRiskDiseaseNames"`
  718. RiskDiseaseNames string `json:"riskDiseaseNames"`
  719. ConfirmDiseaseNames string `json:"confirmDiseaseNames"`
  720. DiseaseNames string `json:"diseaseNames"`
  721. CreatedAt time.Time `json:"createdAt"`
  722. UpdatedAt time.Time `json:"updatedAt"`
  723. }