提交修改
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.BaiduBaseHandle;
|
||||||
import com.heyu.api.baidu.request.medical.BMedicalReportDetectionRequest;
|
import com.heyu.api.baidu.request.medical.BHealthReportRequest;
|
||||||
import com.heyu.api.baidu.response.medical.BMedicalReportDetectionResp;
|
import com.heyu.api.baidu.response.medical.BHealthReportResp;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
/***
|
/***
|
||||||
@ -13,19 +13,19 @@ import org.springframework.stereotype.Component;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class BHealthReportHandle extends BaiduBaseHandle<BMedicalReportDetectionRequest, BMedicalReportDetectionResp> {
|
public class BHealthReportHandle extends BaiduBaseHandle<BHealthReportRequest, BHealthReportResp> {
|
||||||
@Override
|
@Override
|
||||||
public String getUri() {
|
public String getUri() {
|
||||||
return "/rest/2.0/ocr/v1/health_report";
|
return "/rest/2.0/ocr/v1/health_report";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String check(BMedicalReportDetectionRequest bMedicalReportDetectionRequest) {
|
public String check(BHealthReportRequest bMedicalReportDetectionRequest) {
|
||||||
return checkSimpleProbabilityLocation(bMedicalReportDetectionRequest);
|
return checkSimpleProbabilityLocation(bMedicalReportDetectionRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getContent(BMedicalReportDetectionRequest bMedicalReportDetectionRequest) {
|
public String getContent(BHealthReportRequest bMedicalReportDetectionRequest) {
|
||||||
return getSimpleProbabilityLocationContent(bMedicalReportDetectionRequest).toString();
|
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