提交修改
This commit is contained in:
parent
fbcd56b5a4
commit
94fce468f9
@ -2,8 +2,8 @@ package com.heyu.api.baidu.handle.medical;
|
||||
|
||||
|
||||
import com.heyu.api.baidu.BaiduBaseHandle;
|
||||
import com.heyu.api.baidu.request.medical.BMedicalReportDetectionRequest;
|
||||
import com.heyu.api.baidu.response.medical.BMedicalReportDetectionResp;
|
||||
import com.heyu.api.baidu.request.medical.BHealthReportRequest;
|
||||
import com.heyu.api.baidu.response.medical.BHealthReportResp;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/***
|
||||
@ -13,19 +13,19 @@ import org.springframework.stereotype.Component;
|
||||
*
|
||||
*/
|
||||
@Component
|
||||
public class BHealthReportHandle extends BaiduBaseHandle<BMedicalReportDetectionRequest, BMedicalReportDetectionResp> {
|
||||
public class BHealthReportHandle extends BaiduBaseHandle<BHealthReportRequest, BHealthReportResp> {
|
||||
@Override
|
||||
public String getUri() {
|
||||
return "/rest/2.0/ocr/v1/health_report";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String check(BMedicalReportDetectionRequest bMedicalReportDetectionRequest) {
|
||||
public String check(BHealthReportRequest bMedicalReportDetectionRequest) {
|
||||
return checkSimpleProbabilityLocation(bMedicalReportDetectionRequest);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getContent(BMedicalReportDetectionRequest bMedicalReportDetectionRequest) {
|
||||
public String getContent(BHealthReportRequest bMedicalReportDetectionRequest) {
|
||||
return getSimpleProbabilityLocationContent(bMedicalReportDetectionRequest).toString();
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,70 @@
|
||||
package com.heyu.api.controller.medical;
|
||||
|
||||
import com.heyu.api.baidu.handle.medical.BHealthReportHandle;
|
||||
import com.heyu.api.baidu.request.medical.BHealthReportRequest;
|
||||
import com.heyu.api.baidu.response.medical.BHealthReportResp;
|
||||
import com.heyu.api.controller.BaseController;
|
||||
import com.heyu.api.data.annotation.CacheResult;
|
||||
import com.heyu.api.data.annotation.NotIntercept;
|
||||
import com.heyu.api.data.utils.ApiR;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import com.heyu.api.resp.medical.HealthReportResp;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
|
||||
|
||||
/***
|
||||
*
|
||||
* https://console.bce.baidu.com/support/?_=1740575657628×tamp=1740581406549#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E5%8C%BB%E7%96%97%E7%A5%A8%E6%8D%AEOCR&api=rest%2F2.0%2Focr%2Fv1%2Fhealth_report&method=post
|
||||
*医疗诊断报告单识别
|
||||
*
|
||||
*
|
||||
*
|
||||
接口描述
|
||||
支持识别全国各地各医院医疗诊断报告单,包括医院名称、报告名称、姓名、性别、年龄、科室、临床诊断、报告日期、检查部位、检查方法、检查所见、检查提示、建议、肉眼可见 14个字段。
|
||||
|
||||
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/health")
|
||||
@NotIntercept
|
||||
public class HealthReportController extends BaseController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private BHealthReportHandle bHealthReportHandle;
|
||||
|
||||
|
||||
@RequestMapping("/report")
|
||||
@CacheResult
|
||||
public R report(BHealthReportRequest req) {
|
||||
List<HealthReportResp> respList = new ArrayList<>();
|
||||
ApiR<BHealthReportResp> bR = bHealthReportHandle.handle(req);
|
||||
if (bR.isSuccess()) {
|
||||
BHealthReportResp bMedicalReportDetectionResp = bR.getData();
|
||||
if (CollectionUtils.isNotEmpty(bMedicalReportDetectionResp.getWordsResult())) {
|
||||
for (BHealthReportResp.WordsResultDTO wordsResultDTO : bMedicalReportDetectionResp.getWordsResult()) {
|
||||
HealthReportResp healthReportResp = new HealthReportResp();
|
||||
|
||||
healthReportResp.setWord(wordsResultDTO.getWord());
|
||||
healthReportResp.setWordName(wordsResultDTO.getWordName());
|
||||
respList.add(healthReportResp);
|
||||
}
|
||||
}
|
||||
return R.ok().setData(respList);
|
||||
}
|
||||
return R.error(bR.getErrorMsg());
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
package com.heyu.api.controller.medical;
|
||||
|
||||
import com.heyu.api.baidu.handle.medical.BMedicalDetailHandle;
|
||||
import com.heyu.api.baidu.request.medical.BMedicalDetailRequest;
|
||||
import com.heyu.api.baidu.response.medical.BMedicalDetailResp;
|
||||
import com.heyu.api.controller.BaseController;
|
||||
import com.heyu.api.data.annotation.CacheResult;
|
||||
import com.heyu.api.data.annotation.NotIntercept;
|
||||
import com.heyu.api.data.utils.ApiR;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import com.heyu.api.resp.medical.MedicalDetailResp;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* https://console.bce.baidu.com/support/?_=1740575657628×tamp=1740580669633#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E5%8C%BB%E7%96%97%E7%A5%A8%E6%8D%AEOCR&api=rest%2F2.0%2Focr%2Fv1%2Fmedical_detail&method=post
|
||||
* 医疗费用明细识别
|
||||
* <p>
|
||||
* <p>
|
||||
* 接口描述
|
||||
* 支持识别全国医疗费用明细的姓名、日期、病人ID、总金额等关键字段,支持识别费用明细项目清单,包含项目类型、项目名称、单价、数量、规格、金额,其中北京地区识别效果最佳。
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/medical")
|
||||
@NotIntercept
|
||||
public class MedicalDetailController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private BMedicalDetailHandle bMedicalDetailHandle;
|
||||
|
||||
|
||||
@RequestMapping("/detail")
|
||||
@CacheResult
|
||||
public R detail(BMedicalDetailRequest req) {
|
||||
|
||||
|
||||
MedicalDetailResp resp = new MedicalDetailResp();
|
||||
ApiR<BMedicalDetailResp> bR = bMedicalDetailHandle.handle(req);
|
||||
if (bR.isSuccess()) {
|
||||
BMedicalDetailResp bMedicalDetailResp = bR.getData();
|
||||
BMedicalDetailResp.WordsResultDTO wordsResultDTO = bMedicalDetailResp.getWordsResult();
|
||||
|
||||
|
||||
resp.setPatient(wordsResultDTO.getPatientID().getWord()); //病人ID
|
||||
resp.setTotalAmount(wordsResultDTO.getTotalAmount().getWord()); //总金额
|
||||
resp.setDate(wordsResultDTO.getDate().getWord()); //日期
|
||||
resp.setName(wordsResultDTO.getName().getWord()); //姓名
|
||||
|
||||
if (CollectionUtils.isNotEmpty(wordsResultDTO.getCostDetail())) {
|
||||
List<List<MedicalDetailResp.CostDetailDTO>> list = new ArrayList<>();
|
||||
for (List<BMedicalDetailResp.WordsResultDTO.CostDetailDTO> costDetailDTOS : wordsResultDTO.getCostDetail()) {
|
||||
List<MedicalDetailResp.CostDetailDTO> list1 = new ArrayList<>();
|
||||
for (BMedicalDetailResp.WordsResultDTO.CostDetailDTO costDetailDTO : costDetailDTOS) {
|
||||
MedicalDetailResp.CostDetailDTO cost = new MedicalDetailResp.CostDetailDTO();
|
||||
cost.setWord(costDetailDTO.getWord());
|
||||
cost.setWordName(costDetailDTO.getWordName());
|
||||
list1.add(cost);
|
||||
}
|
||||
list.add(list1);
|
||||
}
|
||||
resp.setCostDetail(list);
|
||||
}
|
||||
}
|
||||
return R.error();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
package com.heyu.api.resp.medical;
|
||||
|
||||
|
||||
import com.heyu.api.data.dto.BaseResp;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class HealthReportResp extends BaseResp {
|
||||
|
||||
private String word; //字段名,包括:医院名称、报告名称、姓名、性别、年龄、科室、临床诊断、报告日期、检查部位、检查方法、检查所见、检查提示、建议、肉眼可见
|
||||
private String wordName; //word_name字段对应的识别结果
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package com.heyu.api.resp.medical;
|
||||
|
||||
import com.heyu.api.data.dto.BaseResp;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Data
|
||||
public class MedicalDetailResp extends BaseResp {
|
||||
|
||||
private String patient; //病人ID
|
||||
|
||||
private String totalAmount; //总金额
|
||||
|
||||
private String date; //日期
|
||||
|
||||
private String name; //姓名
|
||||
|
||||
|
||||
private List<List<CostDetailDTO>> costDetail; // 项目明细
|
||||
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class CostDetailDTO {
|
||||
|
||||
private String wordName; // 字段名,包括:项目类型、项目名称、单价、数量、规格、金额
|
||||
|
||||
private String word; //word_name字段对应的识别结果
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user