import http from '@/api' import type { MmsMapping } from './interface' const buildIcdFormData = (icdFile: File) => { const formData = new FormData() formData.append('icdFile', icdFile) return formData } export const getIcdApi = (params: MmsMapping.GetIcdParams) => { const formData = buildIcdFormData(params.icdFile) // 关键业务节点:解析 ICD 按钮改走独立 get-icd 接口,只上传当前选择的 ICD 文件。 return http.post('/api/mms-mapping/get-icd', formData, { headers: { 'Content-Type': 'multipart/form-data' } }) } export const getIcdMmsJsonApi = (params: MmsMapping.GetIcdMmsJsonParams) => { const formData = buildIcdFormData(params.icdFile) // 接口文档要求 request 以 application/json 分段提交,避免后端按普通字符串丢失 JSON 结构。 formData.append('request', new Blob([JSON.stringify(params.request)], { type: 'application/json' })) // 关键业务节点:生成映射仍走 get-icd-mms-json,提交时保持 icdFile + request 的 multipart 结构。 return http.post('/api/mms-mapping/get-icd-mms-json', formData, { headers: { 'Content-Type': 'multipart/form-data' } }) } export const buildIndexConfirmDataApi = (params: MmsMapping.IndexCandidateGroup[]) => { // 关键业务节点:ICD 候选数据需要先转换成前端确认弹窗模型,后续人工确认才能继续生成正式索引配置。 return http.post('/api/mms-mapping/build-index-confirm-data', params) } export const buildIndexSelectionApi = (params: MmsMapping.BuildIndexSelectionRequest) => { // 关键业务节点:人工确认完成后,必须把 confirmData 和 confirmedData 一并提交给后端生成正式 request.indexSelection。 return http.post('/api/mms-mapping/build-index-selection', params) }