14 changed files with 1786 additions and 65 deletions
@ -0,0 +1,31 @@ |
|||||
|
package com.ccsens.carbasics.bean.dto; |
||||
|
|
||||
|
import io.swagger.annotations.ApiModel; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
import org.springframework.web.multipart.MultipartFile; |
||||
|
|
||||
|
import javax.validation.constraints.NotBlank; |
||||
|
import javax.validation.constraints.NotNull; |
||||
|
import java.io.File; |
||||
|
|
||||
|
public class OcrDto { |
||||
|
|
||||
|
@ApiModel("报告单图片文字通用识别-请求") |
||||
|
@Data |
||||
|
public static class GeneralBasic{ |
||||
|
@NotNull |
||||
|
@ApiModelProperty("患者ID") |
||||
|
private Long patientId; |
||||
|
@ApiModelProperty("报告单类型") |
||||
|
@NotBlank |
||||
|
private String code; |
||||
|
@ApiModelProperty("图片路径") |
||||
|
private String url; |
||||
|
@ApiModelProperty("图片ID") |
||||
|
private Long fileId; |
||||
|
@ApiModelProperty("图片") |
||||
|
private MultipartFile file; |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,139 @@ |
|||||
|
package com.ccsens.carbasics.bean.po; |
||||
|
|
||||
|
import java.io.Serializable; |
||||
|
import java.util.Date; |
||||
|
|
||||
|
public class QuestionOcr implements Serializable { |
||||
|
private Long id; |
||||
|
|
||||
|
private String code; |
||||
|
|
||||
|
private Integer sort; |
||||
|
|
||||
|
private Long hospitalId; |
||||
|
|
||||
|
private String start; |
||||
|
|
||||
|
private String end; |
||||
|
|
||||
|
private String remark; |
||||
|
|
||||
|
private Long operator; |
||||
|
|
||||
|
private Date createdAt; |
||||
|
|
||||
|
private Date updatedAt; |
||||
|
|
||||
|
private Byte recStatus; |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
public Long getId() { |
||||
|
return id; |
||||
|
} |
||||
|
|
||||
|
public void setId(Long id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
public String getCode() { |
||||
|
return code; |
||||
|
} |
||||
|
|
||||
|
public void setCode(String code) { |
||||
|
this.code = code == null ? null : code.trim(); |
||||
|
} |
||||
|
|
||||
|
public Integer getSort() { |
||||
|
return sort; |
||||
|
} |
||||
|
|
||||
|
public void setSort(Integer sort) { |
||||
|
this.sort = sort; |
||||
|
} |
||||
|
|
||||
|
public Long getHospitalId() { |
||||
|
return hospitalId; |
||||
|
} |
||||
|
|
||||
|
public void setHospitalId(Long hospitalId) { |
||||
|
this.hospitalId = hospitalId; |
||||
|
} |
||||
|
|
||||
|
public String getStart() { |
||||
|
return start; |
||||
|
} |
||||
|
|
||||
|
public void setStart(String start) { |
||||
|
this.start = start == null ? null : start.trim(); |
||||
|
} |
||||
|
|
||||
|
public String getEnd() { |
||||
|
return end; |
||||
|
} |
||||
|
|
||||
|
public void setEnd(String end) { |
||||
|
this.end = end == null ? null : end.trim(); |
||||
|
} |
||||
|
|
||||
|
public String getRemark() { |
||||
|
return remark; |
||||
|
} |
||||
|
|
||||
|
public void setRemark(String remark) { |
||||
|
this.remark = remark == null ? null : remark.trim(); |
||||
|
} |
||||
|
|
||||
|
public Long getOperator() { |
||||
|
return operator; |
||||
|
} |
||||
|
|
||||
|
public void setOperator(Long operator) { |
||||
|
this.operator = operator; |
||||
|
} |
||||
|
|
||||
|
public Date getCreatedAt() { |
||||
|
return createdAt; |
||||
|
} |
||||
|
|
||||
|
public void setCreatedAt(Date createdAt) { |
||||
|
this.createdAt = createdAt; |
||||
|
} |
||||
|
|
||||
|
public Date getUpdatedAt() { |
||||
|
return updatedAt; |
||||
|
} |
||||
|
|
||||
|
public void setUpdatedAt(Date updatedAt) { |
||||
|
this.updatedAt = updatedAt; |
||||
|
} |
||||
|
|
||||
|
public Byte getRecStatus() { |
||||
|
return recStatus; |
||||
|
} |
||||
|
|
||||
|
public void setRecStatus(Byte recStatus) { |
||||
|
this.recStatus = recStatus; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public String toString() { |
||||
|
StringBuilder sb = new StringBuilder(); |
||||
|
sb.append(getClass().getSimpleName()); |
||||
|
sb.append(" ["); |
||||
|
sb.append("Hash = ").append(hashCode()); |
||||
|
sb.append(", id=").append(id); |
||||
|
sb.append(", code=").append(code); |
||||
|
sb.append(", sort=").append(sort); |
||||
|
sb.append(", hospitalId=").append(hospitalId); |
||||
|
sb.append(", start=").append(start); |
||||
|
sb.append(", end=").append(end); |
||||
|
sb.append(", remark=").append(remark); |
||||
|
sb.append(", operator=").append(operator); |
||||
|
sb.append(", createdAt=").append(createdAt); |
||||
|
sb.append(", updatedAt=").append(updatedAt); |
||||
|
sb.append(", recStatus=").append(recStatus); |
||||
|
sb.append("]"); |
||||
|
return sb.toString(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,901 @@ |
|||||
|
package com.ccsens.carbasics.bean.po; |
||||
|
|
||||
|
import java.util.ArrayList; |
||||
|
import java.util.Date; |
||||
|
import java.util.List; |
||||
|
|
||||
|
public class QuestionOcrExample { |
||||
|
protected String orderByClause; |
||||
|
|
||||
|
protected boolean distinct; |
||||
|
|
||||
|
protected List<Criteria> oredCriteria; |
||||
|
|
||||
|
public QuestionOcrExample() { |
||||
|
oredCriteria = new ArrayList<Criteria>(); |
||||
|
} |
||||
|
|
||||
|
public void setOrderByClause(String orderByClause) { |
||||
|
this.orderByClause = orderByClause; |
||||
|
} |
||||
|
|
||||
|
public String getOrderByClause() { |
||||
|
return orderByClause; |
||||
|
} |
||||
|
|
||||
|
public void setDistinct(boolean distinct) { |
||||
|
this.distinct = distinct; |
||||
|
} |
||||
|
|
||||
|
public boolean isDistinct() { |
||||
|
return distinct; |
||||
|
} |
||||
|
|
||||
|
public List<Criteria> getOredCriteria() { |
||||
|
return oredCriteria; |
||||
|
} |
||||
|
|
||||
|
public void or(Criteria criteria) { |
||||
|
oredCriteria.add(criteria); |
||||
|
} |
||||
|
|
||||
|
public Criteria or() { |
||||
|
Criteria criteria = createCriteriaInternal(); |
||||
|
oredCriteria.add(criteria); |
||||
|
return criteria; |
||||
|
} |
||||
|
|
||||
|
public Criteria createCriteria() { |
||||
|
Criteria criteria = createCriteriaInternal(); |
||||
|
if (oredCriteria.size() == 0) { |
||||
|
oredCriteria.add(criteria); |
||||
|
} |
||||
|
return criteria; |
||||
|
} |
||||
|
|
||||
|
protected Criteria createCriteriaInternal() { |
||||
|
Criteria criteria = new Criteria(); |
||||
|
return criteria; |
||||
|
} |
||||
|
|
||||
|
public void clear() { |
||||
|
oredCriteria.clear(); |
||||
|
orderByClause = null; |
||||
|
distinct = false; |
||||
|
} |
||||
|
|
||||
|
protected abstract static class GeneratedCriteria { |
||||
|
protected List<Criterion> criteria; |
||||
|
|
||||
|
protected GeneratedCriteria() { |
||||
|
super(); |
||||
|
criteria = new ArrayList<Criterion>(); |
||||
|
} |
||||
|
|
||||
|
public boolean isValid() { |
||||
|
return criteria.size() > 0; |
||||
|
} |
||||
|
|
||||
|
public List<Criterion> getAllCriteria() { |
||||
|
return criteria; |
||||
|
} |
||||
|
|
||||
|
public List<Criterion> getCriteria() { |
||||
|
return criteria; |
||||
|
} |
||||
|
|
||||
|
protected void addCriterion(String condition) { |
||||
|
if (condition == null) { |
||||
|
throw new RuntimeException("Value for condition cannot be null"); |
||||
|
} |
||||
|
criteria.add(new Criterion(condition)); |
||||
|
} |
||||
|
|
||||
|
protected void addCriterion(String condition, Object value, String property) { |
||||
|
if (value == null) { |
||||
|
throw new RuntimeException("Value for " + property + " cannot be null"); |
||||
|
} |
||||
|
criteria.add(new Criterion(condition, value)); |
||||
|
} |
||||
|
|
||||
|
protected void addCriterion(String condition, Object value1, Object value2, String property) { |
||||
|
if (value1 == null || value2 == null) { |
||||
|
throw new RuntimeException("Between values for " + property + " cannot be null"); |
||||
|
} |
||||
|
criteria.add(new Criterion(condition, value1, value2)); |
||||
|
} |
||||
|
|
||||
|
public Criteria andIdIsNull() { |
||||
|
addCriterion("id is null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andIdIsNotNull() { |
||||
|
addCriterion("id is not null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andIdEqualTo(Long value) { |
||||
|
addCriterion("id =", value, "id"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andIdNotEqualTo(Long value) { |
||||
|
addCriterion("id <>", value, "id"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andIdGreaterThan(Long value) { |
||||
|
addCriterion("id >", value, "id"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andIdGreaterThanOrEqualTo(Long value) { |
||||
|
addCriterion("id >=", value, "id"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andIdLessThan(Long value) { |
||||
|
addCriterion("id <", value, "id"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andIdLessThanOrEqualTo(Long value) { |
||||
|
addCriterion("id <=", value, "id"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andIdIn(List<Long> values) { |
||||
|
addCriterion("id in", values, "id"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andIdNotIn(List<Long> values) { |
||||
|
addCriterion("id not in", values, "id"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andIdBetween(Long value1, Long value2) { |
||||
|
addCriterion("id between", value1, value2, "id"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andIdNotBetween(Long value1, Long value2) { |
||||
|
addCriterion("id not between", value1, value2, "id"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCodeIsNull() { |
||||
|
addCriterion("code is null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCodeIsNotNull() { |
||||
|
addCriterion("code is not null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCodeEqualTo(String value) { |
||||
|
addCriterion("code =", value, "code"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCodeNotEqualTo(String value) { |
||||
|
addCriterion("code <>", value, "code"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCodeGreaterThan(String value) { |
||||
|
addCriterion("code >", value, "code"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCodeGreaterThanOrEqualTo(String value) { |
||||
|
addCriterion("code >=", value, "code"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCodeLessThan(String value) { |
||||
|
addCriterion("code <", value, "code"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCodeLessThanOrEqualTo(String value) { |
||||
|
addCriterion("code <=", value, "code"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCodeLike(String value) { |
||||
|
addCriterion("code like", value, "code"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCodeNotLike(String value) { |
||||
|
addCriterion("code not like", value, "code"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCodeIn(List<String> values) { |
||||
|
addCriterion("code in", values, "code"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCodeNotIn(List<String> values) { |
||||
|
addCriterion("code not in", values, "code"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCodeBetween(String value1, String value2) { |
||||
|
addCriterion("code between", value1, value2, "code"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCodeNotBetween(String value1, String value2) { |
||||
|
addCriterion("code not between", value1, value2, "code"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andSortIsNull() { |
||||
|
addCriterion("sort is null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andSortIsNotNull() { |
||||
|
addCriterion("sort is not null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andSortEqualTo(Integer value) { |
||||
|
addCriterion("sort =", value, "sort"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andSortNotEqualTo(Integer value) { |
||||
|
addCriterion("sort <>", value, "sort"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andSortGreaterThan(Integer value) { |
||||
|
addCriterion("sort >", value, "sort"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andSortGreaterThanOrEqualTo(Integer value) { |
||||
|
addCriterion("sort >=", value, "sort"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andSortLessThan(Integer value) { |
||||
|
addCriterion("sort <", value, "sort"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andSortLessThanOrEqualTo(Integer value) { |
||||
|
addCriterion("sort <=", value, "sort"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andSortIn(List<Integer> values) { |
||||
|
addCriterion("sort in", values, "sort"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andSortNotIn(List<Integer> values) { |
||||
|
addCriterion("sort not in", values, "sort"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andSortBetween(Integer value1, Integer value2) { |
||||
|
addCriterion("sort between", value1, value2, "sort"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andSortNotBetween(Integer value1, Integer value2) { |
||||
|
addCriterion("sort not between", value1, value2, "sort"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andHospitalIdIsNull() { |
||||
|
addCriterion("hospital_id is null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andHospitalIdIsNotNull() { |
||||
|
addCriterion("hospital_id is not null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andHospitalIdEqualTo(Long value) { |
||||
|
addCriterion("hospital_id =", value, "hospitalId"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andHospitalIdNotEqualTo(Long value) { |
||||
|
addCriterion("hospital_id <>", value, "hospitalId"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andHospitalIdGreaterThan(Long value) { |
||||
|
addCriterion("hospital_id >", value, "hospitalId"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andHospitalIdGreaterThanOrEqualTo(Long value) { |
||||
|
addCriterion("hospital_id >=", value, "hospitalId"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andHospitalIdLessThan(Long value) { |
||||
|
addCriterion("hospital_id <", value, "hospitalId"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andHospitalIdLessThanOrEqualTo(Long value) { |
||||
|
addCriterion("hospital_id <=", value, "hospitalId"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andHospitalIdIn(List<Long> values) { |
||||
|
addCriterion("hospital_id in", values, "hospitalId"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andHospitalIdNotIn(List<Long> values) { |
||||
|
addCriterion("hospital_id not in", values, "hospitalId"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andHospitalIdBetween(Long value1, Long value2) { |
||||
|
addCriterion("hospital_id between", value1, value2, "hospitalId"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andHospitalIdNotBetween(Long value1, Long value2) { |
||||
|
addCriterion("hospital_id not between", value1, value2, "hospitalId"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andStartIsNull() { |
||||
|
addCriterion("start is null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andStartIsNotNull() { |
||||
|
addCriterion("start is not null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andStartEqualTo(String value) { |
||||
|
addCriterion("start =", value, "start"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andStartNotEqualTo(String value) { |
||||
|
addCriterion("start <>", value, "start"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andStartGreaterThan(String value) { |
||||
|
addCriterion("start >", value, "start"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andStartGreaterThanOrEqualTo(String value) { |
||||
|
addCriterion("start >=", value, "start"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andStartLessThan(String value) { |
||||
|
addCriterion("start <", value, "start"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andStartLessThanOrEqualTo(String value) { |
||||
|
addCriterion("start <=", value, "start"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andStartLike(String value) { |
||||
|
addCriterion("start like", value, "start"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andStartNotLike(String value) { |
||||
|
addCriterion("start not like", value, "start"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andStartIn(List<String> values) { |
||||
|
addCriterion("start in", values, "start"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andStartNotIn(List<String> values) { |
||||
|
addCriterion("start not in", values, "start"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andStartBetween(String value1, String value2) { |
||||
|
addCriterion("start between", value1, value2, "start"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andStartNotBetween(String value1, String value2) { |
||||
|
addCriterion("start not between", value1, value2, "start"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andEndIsNull() { |
||||
|
addCriterion("end is null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andEndIsNotNull() { |
||||
|
addCriterion("end is not null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andEndEqualTo(String value) { |
||||
|
addCriterion("end =", value, "end"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andEndNotEqualTo(String value) { |
||||
|
addCriterion("end <>", value, "end"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andEndGreaterThan(String value) { |
||||
|
addCriterion("end >", value, "end"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andEndGreaterThanOrEqualTo(String value) { |
||||
|
addCriterion("end >=", value, "end"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andEndLessThan(String value) { |
||||
|
addCriterion("end <", value, "end"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andEndLessThanOrEqualTo(String value) { |
||||
|
addCriterion("end <=", value, "end"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andEndLike(String value) { |
||||
|
addCriterion("end like", value, "end"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andEndNotLike(String value) { |
||||
|
addCriterion("end not like", value, "end"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andEndIn(List<String> values) { |
||||
|
addCriterion("end in", values, "end"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andEndNotIn(List<String> values) { |
||||
|
addCriterion("end not in", values, "end"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andEndBetween(String value1, String value2) { |
||||
|
addCriterion("end between", value1, value2, "end"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andEndNotBetween(String value1, String value2) { |
||||
|
addCriterion("end not between", value1, value2, "end"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRemarkIsNull() { |
||||
|
addCriterion("remark is null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRemarkIsNotNull() { |
||||
|
addCriterion("remark is not null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRemarkEqualTo(String value) { |
||||
|
addCriterion("remark =", value, "remark"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRemarkNotEqualTo(String value) { |
||||
|
addCriterion("remark <>", value, "remark"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRemarkGreaterThan(String value) { |
||||
|
addCriterion("remark >", value, "remark"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRemarkGreaterThanOrEqualTo(String value) { |
||||
|
addCriterion("remark >=", value, "remark"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRemarkLessThan(String value) { |
||||
|
addCriterion("remark <", value, "remark"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRemarkLessThanOrEqualTo(String value) { |
||||
|
addCriterion("remark <=", value, "remark"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRemarkLike(String value) { |
||||
|
addCriterion("remark like", value, "remark"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRemarkNotLike(String value) { |
||||
|
addCriterion("remark not like", value, "remark"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRemarkIn(List<String> values) { |
||||
|
addCriterion("remark in", values, "remark"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRemarkNotIn(List<String> values) { |
||||
|
addCriterion("remark not in", values, "remark"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRemarkBetween(String value1, String value2) { |
||||
|
addCriterion("remark between", value1, value2, "remark"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRemarkNotBetween(String value1, String value2) { |
||||
|
addCriterion("remark not between", value1, value2, "remark"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andOperatorIsNull() { |
||||
|
addCriterion("operator is null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andOperatorIsNotNull() { |
||||
|
addCriterion("operator is not null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andOperatorEqualTo(Long value) { |
||||
|
addCriterion("operator =", value, "operator"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andOperatorNotEqualTo(Long value) { |
||||
|
addCriterion("operator <>", value, "operator"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andOperatorGreaterThan(Long value) { |
||||
|
addCriterion("operator >", value, "operator"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andOperatorGreaterThanOrEqualTo(Long value) { |
||||
|
addCriterion("operator >=", value, "operator"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andOperatorLessThan(Long value) { |
||||
|
addCriterion("operator <", value, "operator"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andOperatorLessThanOrEqualTo(Long value) { |
||||
|
addCriterion("operator <=", value, "operator"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andOperatorIn(List<Long> values) { |
||||
|
addCriterion("operator in", values, "operator"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andOperatorNotIn(List<Long> values) { |
||||
|
addCriterion("operator not in", values, "operator"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andOperatorBetween(Long value1, Long value2) { |
||||
|
addCriterion("operator between", value1, value2, "operator"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andOperatorNotBetween(Long value1, Long value2) { |
||||
|
addCriterion("operator not between", value1, value2, "operator"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCreatedAtIsNull() { |
||||
|
addCriterion("created_at is null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCreatedAtIsNotNull() { |
||||
|
addCriterion("created_at is not null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCreatedAtEqualTo(Date value) { |
||||
|
addCriterion("created_at =", value, "createdAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCreatedAtNotEqualTo(Date value) { |
||||
|
addCriterion("created_at <>", value, "createdAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCreatedAtGreaterThan(Date value) { |
||||
|
addCriterion("created_at >", value, "createdAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCreatedAtGreaterThanOrEqualTo(Date value) { |
||||
|
addCriterion("created_at >=", value, "createdAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCreatedAtLessThan(Date value) { |
||||
|
addCriterion("created_at <", value, "createdAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCreatedAtLessThanOrEqualTo(Date value) { |
||||
|
addCriterion("created_at <=", value, "createdAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCreatedAtIn(List<Date> values) { |
||||
|
addCriterion("created_at in", values, "createdAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCreatedAtNotIn(List<Date> values) { |
||||
|
addCriterion("created_at not in", values, "createdAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCreatedAtBetween(Date value1, Date value2) { |
||||
|
addCriterion("created_at between", value1, value2, "createdAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andCreatedAtNotBetween(Date value1, Date value2) { |
||||
|
addCriterion("created_at not between", value1, value2, "createdAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andUpdatedAtIsNull() { |
||||
|
addCriterion("updated_at is null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andUpdatedAtIsNotNull() { |
||||
|
addCriterion("updated_at is not null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andUpdatedAtEqualTo(Date value) { |
||||
|
addCriterion("updated_at =", value, "updatedAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andUpdatedAtNotEqualTo(Date value) { |
||||
|
addCriterion("updated_at <>", value, "updatedAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andUpdatedAtGreaterThan(Date value) { |
||||
|
addCriterion("updated_at >", value, "updatedAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andUpdatedAtGreaterThanOrEqualTo(Date value) { |
||||
|
addCriterion("updated_at >=", value, "updatedAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andUpdatedAtLessThan(Date value) { |
||||
|
addCriterion("updated_at <", value, "updatedAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andUpdatedAtLessThanOrEqualTo(Date value) { |
||||
|
addCriterion("updated_at <=", value, "updatedAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andUpdatedAtIn(List<Date> values) { |
||||
|
addCriterion("updated_at in", values, "updatedAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andUpdatedAtNotIn(List<Date> values) { |
||||
|
addCriterion("updated_at not in", values, "updatedAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andUpdatedAtBetween(Date value1, Date value2) { |
||||
|
addCriterion("updated_at between", value1, value2, "updatedAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andUpdatedAtNotBetween(Date value1, Date value2) { |
||||
|
addCriterion("updated_at not between", value1, value2, "updatedAt"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRecStatusIsNull() { |
||||
|
addCriterion("rec_status is null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRecStatusIsNotNull() { |
||||
|
addCriterion("rec_status is not null"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRecStatusEqualTo(Byte value) { |
||||
|
addCriterion("rec_status =", value, "recStatus"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRecStatusNotEqualTo(Byte value) { |
||||
|
addCriterion("rec_status <>", value, "recStatus"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRecStatusGreaterThan(Byte value) { |
||||
|
addCriterion("rec_status >", value, "recStatus"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRecStatusGreaterThanOrEqualTo(Byte value) { |
||||
|
addCriterion("rec_status >=", value, "recStatus"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRecStatusLessThan(Byte value) { |
||||
|
addCriterion("rec_status <", value, "recStatus"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRecStatusLessThanOrEqualTo(Byte value) { |
||||
|
addCriterion("rec_status <=", value, "recStatus"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRecStatusIn(List<Byte> values) { |
||||
|
addCriterion("rec_status in", values, "recStatus"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRecStatusNotIn(List<Byte> values) { |
||||
|
addCriterion("rec_status not in", values, "recStatus"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRecStatusBetween(Byte value1, Byte value2) { |
||||
|
addCriterion("rec_status between", value1, value2, "recStatus"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
|
||||
|
public Criteria andRecStatusNotBetween(Byte value1, Byte value2) { |
||||
|
addCriterion("rec_status not between", value1, value2, "recStatus"); |
||||
|
return (Criteria) this; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public static class Criteria extends GeneratedCriteria { |
||||
|
|
||||
|
protected Criteria() { |
||||
|
super(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public static class Criterion { |
||||
|
private String condition; |
||||
|
|
||||
|
private Object value; |
||||
|
|
||||
|
private Object secondValue; |
||||
|
|
||||
|
private boolean noValue; |
||||
|
|
||||
|
private boolean singleValue; |
||||
|
|
||||
|
private boolean betweenValue; |
||||
|
|
||||
|
private boolean listValue; |
||||
|
|
||||
|
private String typeHandler; |
||||
|
|
||||
|
public String getCondition() { |
||||
|
return condition; |
||||
|
} |
||||
|
|
||||
|
public Object getValue() { |
||||
|
return value; |
||||
|
} |
||||
|
|
||||
|
public Object getSecondValue() { |
||||
|
return secondValue; |
||||
|
} |
||||
|
|
||||
|
public boolean isNoValue() { |
||||
|
return noValue; |
||||
|
} |
||||
|
|
||||
|
public boolean isSingleValue() { |
||||
|
return singleValue; |
||||
|
} |
||||
|
|
||||
|
public boolean isBetweenValue() { |
||||
|
return betweenValue; |
||||
|
} |
||||
|
|
||||
|
public boolean isListValue() { |
||||
|
return listValue; |
||||
|
} |
||||
|
|
||||
|
public String getTypeHandler() { |
||||
|
return typeHandler; |
||||
|
} |
||||
|
|
||||
|
protected Criterion(String condition) { |
||||
|
super(); |
||||
|
this.condition = condition; |
||||
|
this.typeHandler = null; |
||||
|
this.noValue = true; |
||||
|
} |
||||
|
|
||||
|
protected Criterion(String condition, Object value, String typeHandler) { |
||||
|
super(); |
||||
|
this.condition = condition; |
||||
|
this.value = value; |
||||
|
this.typeHandler = typeHandler; |
||||
|
if (value instanceof List<?>) { |
||||
|
this.listValue = true; |
||||
|
} else { |
||||
|
this.singleValue = true; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
protected Criterion(String condition, Object value) { |
||||
|
this(condition, value, null); |
||||
|
} |
||||
|
|
||||
|
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { |
||||
|
super(); |
||||
|
this.condition = condition; |
||||
|
this.value = value; |
||||
|
this.secondValue = secondValue; |
||||
|
this.typeHandler = typeHandler; |
||||
|
this.betweenValue = true; |
||||
|
} |
||||
|
|
||||
|
protected Criterion(String condition, Object value, Object secondValue) { |
||||
|
this(condition, value, secondValue, null); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,41 @@ |
|||||
|
package com.ccsens.carbasics.bean.vo; |
||||
|
|
||||
|
import io.swagger.annotations.ApiModel; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
public class QuestionOcrVo { |
||||
|
|
||||
|
|
||||
|
@ApiModel("报告单图片文字通用识别-返回") |
||||
|
@Data |
||||
|
public static class GeneralBasic{ |
||||
|
@ApiModelProperty("报告单类型") |
||||
|
private String code; |
||||
|
@ApiModelProperty("排序") |
||||
|
private Integer sort; |
||||
|
@ApiModelProperty("试题ID") |
||||
|
private Long questionId; |
||||
|
@ApiModelProperty("答案") |
||||
|
private String content; |
||||
|
} |
||||
|
|
||||
|
@ApiModel("orc规则") |
||||
|
@Data |
||||
|
public static class OcrRule{ |
||||
|
@ApiModelProperty("规则ID") |
||||
|
private Long id; |
||||
|
@ApiModelProperty("code") |
||||
|
private String code; |
||||
|
@ApiModelProperty("排序") |
||||
|
private Integer sort; |
||||
|
@ApiModelProperty("医院ID") |
||||
|
private Long hospital; |
||||
|
@ApiModelProperty("试题ID") |
||||
|
private Long questionId; |
||||
|
@ApiModelProperty("开始标识") |
||||
|
private String start; |
||||
|
@ApiModelProperty("结束标识") |
||||
|
private String end; |
||||
|
} |
||||
|
} |
@ -0,0 +1,20 @@ |
|||||
|
package com.ccsens.carbasics.persist.dao; |
||||
|
|
||||
|
import com.ccsens.carbasics.bean.vo.QuestionOcrVo; |
||||
|
import com.ccsens.carbasics.persist.mapper.QuestionOcrMapper; |
||||
|
import org.apache.ibatis.annotations.Param; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @author whj |
||||
|
*/ |
||||
|
public interface QuestionOcrDao extends QuestionOcrMapper { |
||||
|
/** |
||||
|
* 查询识别规则 |
||||
|
* @param patientId 患者ID |
||||
|
* @param code 类型 |
||||
|
* @return 规则 |
||||
|
*/ |
||||
|
List<QuestionOcrVo.OcrRule> queryRules(@Param("patientId") Long patientId, @Param("code") String code); |
||||
|
} |
@ -0,0 +1,30 @@ |
|||||
|
package com.ccsens.carbasics.persist.mapper; |
||||
|
|
||||
|
import com.ccsens.carbasics.bean.po.QuestionOcr; |
||||
|
import com.ccsens.carbasics.bean.po.QuestionOcrExample; |
||||
|
import java.util.List; |
||||
|
import org.apache.ibatis.annotations.Param; |
||||
|
|
||||
|
public interface QuestionOcrMapper { |
||||
|
long countByExample(QuestionOcrExample example); |
||||
|
|
||||
|
int deleteByExample(QuestionOcrExample example); |
||||
|
|
||||
|
int deleteByPrimaryKey(Long id); |
||||
|
|
||||
|
int insert(QuestionOcr record); |
||||
|
|
||||
|
int insertSelective(QuestionOcr record); |
||||
|
|
||||
|
List<QuestionOcr> selectByExample(QuestionOcrExample example); |
||||
|
|
||||
|
QuestionOcr selectByPrimaryKey(Long id); |
||||
|
|
||||
|
int updateByExampleSelective(@Param("record") QuestionOcr record, @Param("example") QuestionOcrExample example); |
||||
|
|
||||
|
int updateByExample(@Param("record") QuestionOcr record, @Param("example") QuestionOcrExample example); |
||||
|
|
||||
|
int updateByPrimaryKeySelective(QuestionOcr record); |
||||
|
|
||||
|
int updateByPrimaryKey(QuestionOcr record); |
||||
|
} |
@ -0,0 +1,22 @@ |
|||||
|
package com.ccsens.carbasics.service; |
||||
|
|
||||
|
import com.ccsens.carbasics.bean.dto.OcrDto; |
||||
|
import com.ccsens.carbasics.bean.vo.OcrVo; |
||||
|
import com.ccsens.carbasics.bean.vo.QuestionOcrVo; |
||||
|
|
||||
|
import java.io.IOException; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* @author AUSU |
||||
|
*/ |
||||
|
public interface IOcrService { |
||||
|
|
||||
|
/** |
||||
|
* 识别图片文字 |
||||
|
* @param param 图片地址 |
||||
|
* @param userId 用户id |
||||
|
* @return 文字列表 |
||||
|
*/ |
||||
|
List<QuestionOcrVo.GeneralBasic> identifyWords(OcrDto.GeneralBasic param, Long userId) throws IOException; |
||||
|
} |
@ -0,0 +1,183 @@ |
|||||
|
package com.ccsens.carbasics.service; |
||||
|
|
||||
|
import cn.hutool.core.codec.Base64; |
||||
|
import cn.hutool.core.collection.CollectionUtil; |
||||
|
import cn.hutool.core.util.ImageUtil; |
||||
|
import cn.hutool.core.util.StrUtil; |
||||
|
import com.alibaba.cloudapi.sdk.model.ApiResponse; |
||||
|
import com.alibaba.fastjson.JSONArray; |
||||
|
import com.alibaba.fastjson.JSONObject; |
||||
|
import com.ccsens.carbasics.bean.dto.OcrDto; |
||||
|
import com.ccsens.carbasics.bean.vo.OcrVo; |
||||
|
import com.ccsens.carbasics.bean.vo.QuestionOcrVo; |
||||
|
import com.ccsens.carbasics.persist.dao.QuestionOcrDao; |
||||
|
import com.ccsens.carbasics.util.Constant; |
||||
|
import com.ccsens.util.CodeEnum; |
||||
|
import com.ccsens.util.ali.AliInstanceUtil; |
||||
|
import com.ccsens.util.baidu.BaiDuDto; |
||||
|
import com.ccsens.util.baidu.BaiDuUtil; |
||||
|
import com.ccsens.util.baidu.BaiDuVo; |
||||
|
import com.ccsens.util.exception.BaseException; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.springframework.transaction.annotation.Propagation; |
||||
|
import org.springframework.transaction.annotation.Transactional; |
||||
|
import org.springframework.web.multipart.MultipartFile; |
||||
|
|
||||
|
import javax.annotation.Resource; |
||||
|
import javax.imageio.ImageIO; |
||||
|
import java.io.ByteArrayOutputStream; |
||||
|
import java.io.File; |
||||
|
import java.io.IOException; |
||||
|
import java.util.ArrayList; |
||||
|
import java.util.HashMap; |
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
@Slf4j |
||||
|
@Service |
||||
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
||||
|
public class OcrService implements IOcrService { |
||||
|
|
||||
|
@Resource |
||||
|
private QuestionOcrDao questionOcrDao; |
||||
|
|
||||
|
@Override |
||||
|
public List<QuestionOcrVo.GeneralBasic> identifyWords(OcrDto.GeneralBasic generalBasic, Long userId) throws IOException { |
||||
|
long time1 = System.currentTimeMillis(); |
||||
|
List<QuestionOcrVo.GeneralBasic> vos = new ArrayList<>(); |
||||
|
// 类型测评规则
|
||||
|
List<QuestionOcrVo.OcrRule> rules = questionOcrDao.queryRules(generalBasic.getPatientId(), generalBasic.getCode()); |
||||
|
log.info("规则:{}", rules); |
||||
|
if (CollectionUtil.isEmpty(rules)) { |
||||
|
return vos; |
||||
|
} |
||||
|
long time2 = System.currentTimeMillis(); |
||||
|
log.info("查询规则时间:{}", time2 - time1); |
||||
|
// ReportOcrExample ocrExample = new ReportOcrExample();
|
||||
|
// ocrExample.createCriteria().andCodeEqualTo(generalBasic.getCode());
|
||||
|
// List<ReportOcr> reportOcrList = reportOcrMapper.selectByExample(ocrExample);
|
||||
|
long time3 = System.currentTimeMillis(); |
||||
|
log.info("查询reportOrc:{}", time3 - time2); |
||||
|
|
||||
|
// boolean baidu = CollectionUtil.isEmpty(reportOcrList) || reportOcrList.get(0).getOcrChannel() != 1;
|
||||
|
|
||||
|
// 识别字符串
|
||||
|
List<String> contents = new ArrayList<>(); |
||||
|
long time4 = 0; |
||||
|
|
||||
|
//图片
|
||||
|
// CommonFile commonFile = commonFileMapper.selectByPrimaryKey(generalBasic.getFileId());
|
||||
|
// if (commonFile == null) {
|
||||
|
// throw new BaseException(CodeEnum.PARAM_ERROR);
|
||||
|
// }
|
||||
|
// File file = new File(commonFile.getLocation());
|
||||
|
ByteArrayOutputStream out = new ByteArrayOutputStream(); |
||||
|
ImageUtil.scale(ImageIO.read((File)generalBasic.getFile()), out, 0.5f); |
||||
|
// Img.from(new URL(generalBasic.getUrl())).scale(0.5f).write(out);
|
||||
|
String img = Base64.encode(out.toByteArray()); |
||||
|
|
||||
|
// if (baidu) {
|
||||
|
BaiDuDto.GeneralBasic basic = new BaiDuDto.GeneralBasic(); |
||||
|
// basic.setUrl(generalBasic.getUrl());
|
||||
|
basic.setImage(img); |
||||
|
BaiDuVo.GeneralBasic words = BaiDuUtil.accurateBasic(Constant.BaiDu.APP_KEY, Constant.BaiDu.SECRET_KEY, basic); |
||||
|
log.info("文字识别:{}", words); |
||||
|
if (words == null || CollectionUtil.isEmpty(words.getWordsResult())) { |
||||
|
return vos; |
||||
|
} |
||||
|
words.getWordsResult().forEach(word -> contents.add(word.getWords())); |
||||
|
// } else {
|
||||
|
// 阿里
|
||||
|
// String body = "{\"img\":\"\",\"url\":\""+generalBasic.getUrl()+"\",\"prob\":false,\"charInfo\":false,\"rotate\":false,\"table\":false}";
|
||||
|
// String body = "{\"img\":\""+img+"\",\"url\":\"\",\"prob\":false,\"charInfo\":false,\"rotate\":false,\"table\":false}";
|
||||
|
// ApiResponse response = AliInstanceUtil.getGeneralAdvancedHttps().ocrAdvancedSyncMode(body.getBytes());
|
||||
|
// time4 = System.currentTimeMillis();
|
||||
|
// log.info("阿里接口调用:{}", time4 -time3);
|
||||
|
// log.info("调用阿里的通用识别接口,请求:{}, 返回:{}", body, response);
|
||||
|
// int code = response.getCode();
|
||||
|
// int curCode = 200;
|
||||
|
// if (code != curCode) {
|
||||
|
// CodeEnum thirdError = CodeEnum.THIRD_ERROR;
|
||||
|
// thirdError.setMsg(response.getMessage());
|
||||
|
// throw new BaseException(thirdError);
|
||||
|
// }
|
||||
|
// String result = new String(response.getBody());
|
||||
|
// log.info("result:{}", result);
|
||||
|
// JSONObject json = JSONObject.parseObject(result);
|
||||
|
// JSONArray infos = json.getJSONArray("prism_wordsInfo");
|
||||
|
// for (Object obj: infos) {
|
||||
|
// JSONObject info = (JSONObject)obj;
|
||||
|
// contents.add(info.getString("word").replaceAll("\\s+",""));
|
||||
|
// }
|
||||
|
Map<String, Integer> keyMap = new HashMap<>(16); |
||||
|
rules.forEach(rule -> { |
||||
|
JSONObject start = StrUtil.isEmpty(rule.getStart()) ? null : JSONObject.parseObject(rule.getStart()); |
||||
|
JSONObject end = StrUtil.isEmpty(rule.getEnd()) ? null : JSONObject.parseObject(rule.getEnd()); |
||||
|
StringBuilder builder; |
||||
|
|
||||
|
if (start == null) { |
||||
|
// 不知道这种场景
|
||||
|
return; |
||||
|
} else if (start.containsKey(Constant.BaiDu.NUM)) { |
||||
|
// 包含读取第几个
|
||||
|
builder = getContent(contents, keyMap, start); |
||||
|
} else { |
||||
|
builder = getContent(contents, start, end); |
||||
|
} |
||||
|
|
||||
|
QuestionOcrVo.GeneralBasic vo = new QuestionOcrVo.GeneralBasic(); |
||||
|
vo.setQuestionId(rule.getQuestionId()); |
||||
|
vo.setCode(rule.getCode()); |
||||
|
vo.setSort(rule.getSort()); |
||||
|
vo.setContent(builder.toString()); |
||||
|
vos.add(vo); |
||||
|
}); |
||||
|
long time5 = System.currentTimeMillis(); |
||||
|
log.info("数据处理时间:{}", time5 - time4); |
||||
|
return vos; |
||||
|
} |
||||
|
|
||||
|
private StringBuilder getContent(List<String> contents, Map<String, Integer> keyMap, JSONObject start) { |
||||
|
StringBuilder builder = new StringBuilder(); |
||||
|
String key = start.getString(Constant.BaiDu.KEY); |
||||
|
int index = start.getIntValue(Constant.BaiDu.NUM); |
||||
|
if (keyMap.containsKey(key)) { |
||||
|
if (keyMap.get(key) >= 0) { |
||||
|
builder.append(contents.get(keyMap.get(key) + index)); |
||||
|
} |
||||
|
} else { |
||||
|
for (int i = 0; i < contents.size(); i++) { |
||||
|
if (contents.get(i).contains(key)) { |
||||
|
keyMap.put(key.trim(), i); |
||||
|
builder.append(contents.get(i + index)); |
||||
|
return builder; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
return builder; |
||||
|
} |
||||
|
|
||||
|
private StringBuilder getContent(List<String> contents, JSONObject start, JSONObject end) { |
||||
|
StringBuilder builder = new StringBuilder(); |
||||
|
for (String content : contents) { |
||||
|
String word = content.trim(); |
||||
|
if (start != null && word.startsWith(start.getString(Constant.BaiDu.KEY))) { |
||||
|
builder.delete(0, builder.length()); |
||||
|
builder.append(word); |
||||
|
} else if (end != null && word.startsWith(end.getString(Constant.BaiDu.KEY))) { |
||||
|
break; |
||||
|
} else { |
||||
|
builder.append(word); |
||||
|
} |
||||
|
} |
||||
|
return builder; |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
@ -1,4 +1,4 @@ |
|||||
spring: |
spring: |
||||
profiles: |
profiles: |
||||
active: test |
active: dev |
||||
include: common, util-test |
include: common, util-dev |
||||
|
@ -0,0 +1,28 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
|
<mapper namespace="com.ccsens.carbasics.persist.dao.QuestionOcrDao"> |
||||
|
|
||||
|
<select id="queryRules" resultType="com.ccsens.carbasics.bean.vo.QuestionOcrVo$OcrRule"> |
||||
|
SELECT |
||||
|
q.id AS questionId, |
||||
|
o.id, |
||||
|
o.CODE, |
||||
|
o.sort, |
||||
|
o.hospital_id as hospital, |
||||
|
o.START, |
||||
|
o.END |
||||
|
FROM |
||||
|
t_question_ocr o, |
||||
|
t_question q, |
||||
|
t_patient_information p |
||||
|
WHERE |
||||
|
o.CODE = q.CODE |
||||
|
AND o.sort = q.sort |
||||
|
AND o.hospital_id = p.hospital_id |
||||
|
AND p.id = #{patientId} |
||||
|
AND o.CODE = #{code} |
||||
|
AND o.rec_status = 0 |
||||
|
AND q.rec_status = 0 |
||||
|
AND p.rec_status = 0 |
||||
|
</select> |
||||
|
</mapper> |
@ -0,0 +1,306 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
|
<mapper namespace="com.ccsens.carbasics.persist.mapper.QuestionOcrMapper"> |
||||
|
<resultMap id="BaseResultMap" type="com.ccsens.carbasics.bean.po.QuestionOcr"> |
||||
|
<id column="id" jdbcType="BIGINT" property="id" /> |
||||
|
<result column="code" jdbcType="VARCHAR" property="code" /> |
||||
|
<result column="sort" jdbcType="INTEGER" property="sort" /> |
||||
|
<result column="hospital_id" jdbcType="BIGINT" property="hospitalId" /> |
||||
|
<result column="start" jdbcType="VARCHAR" property="start" /> |
||||
|
<result column="end" jdbcType="VARCHAR" property="end" /> |
||||
|
<result column="remark" jdbcType="VARCHAR" property="remark" /> |
||||
|
<result column="operator" jdbcType="BIGINT" property="operator" /> |
||||
|
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" /> |
||||
|
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" /> |
||||
|
<result column="rec_status" jdbcType="TINYINT" property="recStatus" /> |
||||
|
</resultMap> |
||||
|
<sql id="Example_Where_Clause"> |
||||
|
<where> |
||||
|
<foreach collection="oredCriteria" item="criteria" separator="or"> |
||||
|
<if test="criteria.valid"> |
||||
|
<trim prefix="(" prefixOverrides="and" suffix=")"> |
||||
|
<foreach collection="criteria.criteria" item="criterion"> |
||||
|
<choose> |
||||
|
<when test="criterion.noValue"> |
||||
|
and ${criterion.condition} |
||||
|
</when> |
||||
|
<when test="criterion.singleValue"> |
||||
|
and ${criterion.condition} #{criterion.value} |
||||
|
</when> |
||||
|
<when test="criterion.betweenValue"> |
||||
|
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} |
||||
|
</when> |
||||
|
<when test="criterion.listValue"> |
||||
|
and ${criterion.condition} |
||||
|
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=","> |
||||
|
#{listItem} |
||||
|
</foreach> |
||||
|
</when> |
||||
|
</choose> |
||||
|
</foreach> |
||||
|
</trim> |
||||
|
</if> |
||||
|
</foreach> |
||||
|
</where> |
||||
|
</sql> |
||||
|
<sql id="Update_By_Example_Where_Clause"> |
||||
|
<where> |
||||
|
<foreach collection="example.oredCriteria" item="criteria" separator="or"> |
||||
|
<if test="criteria.valid"> |
||||
|
<trim prefix="(" prefixOverrides="and" suffix=")"> |
||||
|
<foreach collection="criteria.criteria" item="criterion"> |
||||
|
<choose> |
||||
|
<when test="criterion.noValue"> |
||||
|
and ${criterion.condition} |
||||
|
</when> |
||||
|
<when test="criterion.singleValue"> |
||||
|
and ${criterion.condition} #{criterion.value} |
||||
|
</when> |
||||
|
<when test="criterion.betweenValue"> |
||||
|
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} |
||||
|
</when> |
||||
|
<when test="criterion.listValue"> |
||||
|
and ${criterion.condition} |
||||
|
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=","> |
||||
|
#{listItem} |
||||
|
</foreach> |
||||
|
</when> |
||||
|
</choose> |
||||
|
</foreach> |
||||
|
</trim> |
||||
|
</if> |
||||
|
</foreach> |
||||
|
</where> |
||||
|
</sql> |
||||
|
<sql id="Base_Column_List"> |
||||
|
id, code, sort, hospital_id, start, end, remark, operator, created_at, updated_at, |
||||
|
rec_status |
||||
|
</sql> |
||||
|
<select id="selectByExample" parameterType="com.ccsens.carbasics.bean.po.QuestionOcrExample" resultMap="BaseResultMap"> |
||||
|
select |
||||
|
<if test="distinct"> |
||||
|
distinct |
||||
|
</if> |
||||
|
<include refid="Base_Column_List" /> |
||||
|
from t_question_ocr |
||||
|
<if test="_parameter != null"> |
||||
|
<include refid="Example_Where_Clause" /> |
||||
|
</if> |
||||
|
<if test="orderByClause != null"> |
||||
|
order by ${orderByClause} |
||||
|
</if> |
||||
|
</select> |
||||
|
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> |
||||
|
select |
||||
|
<include refid="Base_Column_List" /> |
||||
|
from t_question_ocr |
||||
|
where id = #{id,jdbcType=BIGINT} |
||||
|
</select> |
||||
|
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> |
||||
|
delete from t_question_ocr |
||||
|
where id = #{id,jdbcType=BIGINT} |
||||
|
</delete> |
||||
|
<delete id="deleteByExample" parameterType="com.ccsens.carbasics.bean.po.QuestionOcrExample"> |
||||
|
delete from t_question_ocr |
||||
|
<if test="_parameter != null"> |
||||
|
<include refid="Example_Where_Clause" /> |
||||
|
</if> |
||||
|
</delete> |
||||
|
<insert id="insert" parameterType="com.ccsens.carbasics.bean.po.QuestionOcr"> |
||||
|
insert into t_question_ocr (id, code, sort, |
||||
|
hospital_id, start, end, |
||||
|
remark, operator, created_at, |
||||
|
updated_at, rec_status) |
||||
|
values (#{id,jdbcType=BIGINT}, #{code,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, |
||||
|
#{hospitalId,jdbcType=BIGINT}, #{start,jdbcType=VARCHAR}, #{end,jdbcType=VARCHAR}, |
||||
|
#{remark,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT}, #{createdAt,jdbcType=TIMESTAMP}, |
||||
|
#{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}) |
||||
|
</insert> |
||||
|
<insert id="insertSelective" parameterType="com.ccsens.carbasics.bean.po.QuestionOcr"> |
||||
|
insert into t_question_ocr |
||||
|
<trim prefix="(" suffix=")" suffixOverrides=","> |
||||
|
<if test="id != null"> |
||||
|
id, |
||||
|
</if> |
||||
|
<if test="code != null"> |
||||
|
code, |
||||
|
</if> |
||||
|
<if test="sort != null"> |
||||
|
sort, |
||||
|
</if> |
||||
|
<if test="hospitalId != null"> |
||||
|
hospital_id, |
||||
|
</if> |
||||
|
<if test="start != null"> |
||||
|
start, |
||||
|
</if> |
||||
|
<if test="end != null"> |
||||
|
end, |
||||
|
</if> |
||||
|
<if test="remark != null"> |
||||
|
remark, |
||||
|
</if> |
||||
|
<if test="operator != null"> |
||||
|
operator, |
||||
|
</if> |
||||
|
<if test="createdAt != null"> |
||||
|
created_at, |
||||
|
</if> |
||||
|
<if test="updatedAt != null"> |
||||
|
updated_at, |
||||
|
</if> |
||||
|
<if test="recStatus != null"> |
||||
|
rec_status, |
||||
|
</if> |
||||
|
</trim> |
||||
|
<trim prefix="values (" suffix=")" suffixOverrides=","> |
||||
|
<if test="id != null"> |
||||
|
#{id,jdbcType=BIGINT}, |
||||
|
</if> |
||||
|
<if test="code != null"> |
||||
|
#{code,jdbcType=VARCHAR}, |
||||
|
</if> |
||||
|
<if test="sort != null"> |
||||
|
#{sort,jdbcType=INTEGER}, |
||||
|
</if> |
||||
|
<if test="hospitalId != null"> |
||||
|
#{hospitalId,jdbcType=BIGINT}, |
||||
|
</if> |
||||
|
<if test="start != null"> |
||||
|
#{start,jdbcType=VARCHAR}, |
||||
|
</if> |
||||
|
<if test="end != null"> |
||||
|
#{end,jdbcType=VARCHAR}, |
||||
|
</if> |
||||
|
<if test="remark != null"> |
||||
|
#{remark,jdbcType=VARCHAR}, |
||||
|
</if> |
||||
|
<if test="operator != null"> |
||||
|
#{operator,jdbcType=BIGINT}, |
||||
|
</if> |
||||
|
<if test="createdAt != null"> |
||||
|
#{createdAt,jdbcType=TIMESTAMP}, |
||||
|
</if> |
||||
|
<if test="updatedAt != null"> |
||||
|
#{updatedAt,jdbcType=TIMESTAMP}, |
||||
|
</if> |
||||
|
<if test="recStatus != null"> |
||||
|
#{recStatus,jdbcType=TINYINT}, |
||||
|
</if> |
||||
|
</trim> |
||||
|
</insert> |
||||
|
<select id="countByExample" parameterType="com.ccsens.carbasics.bean.po.QuestionOcrExample" resultType="java.lang.Long"> |
||||
|
select count(*) from t_question_ocr |
||||
|
<if test="_parameter != null"> |
||||
|
<include refid="Example_Where_Clause" /> |
||||
|
</if> |
||||
|
</select> |
||||
|
<update id="updateByExampleSelective" parameterType="map"> |
||||
|
update t_question_ocr |
||||
|
<set> |
||||
|
<if test="record.id != null"> |
||||
|
id = #{record.id,jdbcType=BIGINT}, |
||||
|
</if> |
||||
|
<if test="record.code != null"> |
||||
|
code = #{record.code,jdbcType=VARCHAR}, |
||||
|
</if> |
||||
|
<if test="record.sort != null"> |
||||
|
sort = #{record.sort,jdbcType=INTEGER}, |
||||
|
</if> |
||||
|
<if test="record.hospitalId != null"> |
||||
|
hospital_id = #{record.hospitalId,jdbcType=BIGINT}, |
||||
|
</if> |
||||
|
<if test="record.start != null"> |
||||
|
start = #{record.start,jdbcType=VARCHAR}, |
||||
|
</if> |
||||
|
<if test="record.end != null"> |
||||
|
end = #{record.end,jdbcType=VARCHAR}, |
||||
|
</if> |
||||
|
<if test="record.remark != null"> |
||||
|
remark = #{record.remark,jdbcType=VARCHAR}, |
||||
|
</if> |
||||
|
<if test="record.operator != null"> |
||||
|
operator = #{record.operator,jdbcType=BIGINT}, |
||||
|
</if> |
||||
|
<if test="record.createdAt != null"> |
||||
|
created_at = #{record.createdAt,jdbcType=TIMESTAMP}, |
||||
|
</if> |
||||
|
<if test="record.updatedAt != null"> |
||||
|
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, |
||||
|
</if> |
||||
|
<if test="record.recStatus != null"> |
||||
|
rec_status = #{record.recStatus,jdbcType=TINYINT}, |
||||
|
</if> |
||||
|
</set> |
||||
|
<if test="_parameter != null"> |
||||
|
<include refid="Update_By_Example_Where_Clause" /> |
||||
|
</if> |
||||
|
</update> |
||||
|
<update id="updateByExample" parameterType="map"> |
||||
|
update t_question_ocr |
||||
|
set id = #{record.id,jdbcType=BIGINT}, |
||||
|
code = #{record.code,jdbcType=VARCHAR}, |
||||
|
sort = #{record.sort,jdbcType=INTEGER}, |
||||
|
hospital_id = #{record.hospitalId,jdbcType=BIGINT}, |
||||
|
start = #{record.start,jdbcType=VARCHAR}, |
||||
|
end = #{record.end,jdbcType=VARCHAR}, |
||||
|
remark = #{record.remark,jdbcType=VARCHAR}, |
||||
|
operator = #{record.operator,jdbcType=BIGINT}, |
||||
|
created_at = #{record.createdAt,jdbcType=TIMESTAMP}, |
||||
|
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, |
||||
|
rec_status = #{record.recStatus,jdbcType=TINYINT} |
||||
|
<if test="_parameter != null"> |
||||
|
<include refid="Update_By_Example_Where_Clause" /> |
||||
|
</if> |
||||
|
</update> |
||||
|
<update id="updateByPrimaryKeySelective" parameterType="com.ccsens.carbasics.bean.po.QuestionOcr"> |
||||
|
update t_question_ocr |
||||
|
<set> |
||||
|
<if test="code != null"> |
||||
|
code = #{code,jdbcType=VARCHAR}, |
||||
|
</if> |
||||
|
<if test="sort != null"> |
||||
|
sort = #{sort,jdbcType=INTEGER}, |
||||
|
</if> |
||||
|
<if test="hospitalId != null"> |
||||
|
hospital_id = #{hospitalId,jdbcType=BIGINT}, |
||||
|
</if> |
||||
|
<if test="start != null"> |
||||
|
start = #{start,jdbcType=VARCHAR}, |
||||
|
</if> |
||||
|
<if test="end != null"> |
||||
|
end = #{end,jdbcType=VARCHAR}, |
||||
|
</if> |
||||
|
<if test="remark != null"> |
||||
|
remark = #{remark,jdbcType=VARCHAR}, |
||||
|
</if> |
||||
|
<if test="operator != null"> |
||||
|
operator = #{operator,jdbcType=BIGINT}, |
||||
|
</if> |
||||
|
<if test="createdAt != null"> |
||||
|
created_at = #{createdAt,jdbcType=TIMESTAMP}, |
||||
|
</if> |
||||
|
<if test="updatedAt != null"> |
||||
|
updated_at = #{updatedAt,jdbcType=TIMESTAMP}, |
||||
|
</if> |
||||
|
<if test="recStatus != null"> |
||||
|
rec_status = #{recStatus,jdbcType=TINYINT}, |
||||
|
</if> |
||||
|
</set> |
||||
|
where id = #{id,jdbcType=BIGINT} |
||||
|
</update> |
||||
|
<update id="updateByPrimaryKey" parameterType="com.ccsens.carbasics.bean.po.QuestionOcr"> |
||||
|
update t_question_ocr |
||||
|
set code = #{code,jdbcType=VARCHAR}, |
||||
|
sort = #{sort,jdbcType=INTEGER}, |
||||
|
hospital_id = #{hospitalId,jdbcType=BIGINT}, |
||||
|
start = #{start,jdbcType=VARCHAR}, |
||||
|
end = #{end,jdbcType=VARCHAR}, |
||||
|
remark = #{remark,jdbcType=VARCHAR}, |
||||
|
operator = #{operator,jdbcType=BIGINT}, |
||||
|
created_at = #{createdAt,jdbcType=TIMESTAMP}, |
||||
|
updated_at = #{updatedAt,jdbcType=TIMESTAMP}, |
||||
|
rec_status = #{recStatus,jdbcType=TINYINT} |
||||
|
where id = #{id,jdbcType=BIGINT} |
||||
|
</update> |
||||
|
</mapper> |
Loading…
Reference in new issue