|
@@ -19,12 +19,14 @@ import com.ywt.response.report.QueryReportDetailResponseData;
|
|
|
import com.ywt.response.report.QueryReportListResponseData;
|
|
|
import com.ywt.alipaympapi.service.IsvReportService;
|
|
|
import com.ywt.response.report.ReportItem;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
+@Slf4j
|
|
|
@Service
|
|
|
public class IsvReportServiceImpl implements IsvReportService {
|
|
|
|
|
@@ -35,7 +37,7 @@ public class IsvReportServiceImpl implements IsvReportService {
|
|
|
private TaiheServiceGrpc.TaiheServiceBlockingStub taiheServiceBlockingStub;
|
|
|
|
|
|
@Override
|
|
|
- public QueryReportDetailResponseData queryReportDetail(QueryReportDetailRequest request) throws AppMessageException {
|
|
|
+ public QueryReportDetailResponseData queryReportDetail(QueryReportDetailRequest request) throws Exception{
|
|
|
QueryReportDetailResponseData data = new QueryReportDetailResponseData();
|
|
|
if (StringHelper.isNullOrWhiteSpace(request.getRecordId())) {
|
|
|
throw new AppMessageException("没有检验检查报告Id");
|
|
@@ -44,8 +46,8 @@ public class IsvReportServiceImpl implements IsvReportService {
|
|
|
if (StringHelper.isNullOrWhiteSpace(request.getRecordId())) {
|
|
|
throw new AppMessageException("没有报告类型");
|
|
|
}
|
|
|
- try {
|
|
|
- int userId = ContextHelper.getCurrentUserIdWrapped();
|
|
|
+ String userIdStr = request.getUserId();
|
|
|
+ int userId = Integer.parseInt(userIdStr);
|
|
|
int hospitalId = BizUtil.getCurrentHospitalId();
|
|
|
String hisPatientId = request.getHisPatientId();
|
|
|
MedicalCardVo card = getCard(userId, hospitalId, hisPatientId);
|
|
@@ -61,8 +63,9 @@ public class IsvReportServiceImpl implements IsvReportService {
|
|
|
List<String> reportItem = new ArrayList<>();
|
|
|
InspectionDetail detail = res.getDetail();
|
|
|
data.setRecordId(request.getRecordId());
|
|
|
- data.setUserName(card.getPatientName());
|
|
|
- data.setUserSex(card.getSex() == 1 ? "男" : "女");
|
|
|
+ data.setUserName(Checker.getStringValue(card.getPatientName()));
|
|
|
+ data.setUserSex(card.getSex() == 1 ? "男": card.getSex() == 2 ? "女": "");
|
|
|
+ data.setUserAge(Checker.getStringValue(card.getAge()));
|
|
|
data.setCardNum(Checker.getStringValue(card.getCardNum()));
|
|
|
data.setDepartmentName(detail.getDeptName());
|
|
|
data.setApplyDoctorName(detail.getDoctorName());
|
|
@@ -83,7 +86,8 @@ public class IsvReportServiceImpl implements IsvReportService {
|
|
|
com.ywt.gapi.user.InspectionReportDetail detail = girdResp.getReport();
|
|
|
data.setRecordId(request.getRecordId());
|
|
|
data.setUserName(card.getPatientName());
|
|
|
- data.setUserSex(card.getSex() == 1 ? "男" : "女");
|
|
|
+ data.setUserSex(card.getSex() == 1 ? "男": card.getSex() == 2 ? "女": "");
|
|
|
+ data.setUserAge(Checker.getStringValue(card.getAge()));
|
|
|
data.setCardNum(Checker.getStringValue(card.getCardNum()));
|
|
|
data.setDepartmentName(detail.getDeptName());
|
|
|
data.setApplyDoctorName(Checker.getStringValue(detail.getAppDocName()));
|
|
@@ -108,6 +112,8 @@ public class IsvReportServiceImpl implements IsvReportService {
|
|
|
List<String> reportItem = new ArrayList<>();
|
|
|
data.setDiagnosis(reportItem);
|
|
|
data.setUserName(card.getPatientName());
|
|
|
+ data.setUserSex(card.getSex() == 1 ? "男": card.getSex() == 2 ? "女": "");
|
|
|
+ data.setUserAge(Checker.getStringValue(card.getAge()));
|
|
|
data.setItemName(res.getTitle());
|
|
|
data.setReportDate(res.getTime());
|
|
|
data.setConfirmDoctorName(res.getDoctor());
|
|
@@ -133,7 +139,9 @@ public class IsvReportServiceImpl implements IsvReportService {
|
|
|
List<ReportItem> reportItemList = new ArrayList<>();
|
|
|
List<String> reportItem = new ArrayList<>();
|
|
|
data.setDiagnosis(reportItem);
|
|
|
- data.setUserName(card.getPatientName());
|
|
|
+ data.setUserName(Checker.getStringValue(card.getPatientName()));
|
|
|
+ data.setUserSex(card.getSex() == 1 ? "男": card.getSex() == 2 ? "女": "");
|
|
|
+ data.setUserAge(Checker.getStringValue(card.getAge()));
|
|
|
data.setItemName(res.getTitle());
|
|
|
data.setReportDate(res.getTime());
|
|
|
data.setConfirmDoctorName(res.getDoctor());
|
|
@@ -141,7 +149,7 @@ public class IsvReportServiceImpl implements IsvReportService {
|
|
|
data.setRecordId(request.getRecordId());
|
|
|
for (com.ywt.gapi.user.LaboratoryReportDetail detail : glrdResp.getDetailList()) {
|
|
|
ReportItem r = new ReportItem();
|
|
|
- r.setItemName(detail.getItemName());
|
|
|
+ r.setItemName(Checker.getStringValue(detail.getItemName()));
|
|
|
r.setPnFlag(Checker.getStringValue(detail.getResultFlag()));
|
|
|
r.setReference(detail.getItemRef());
|
|
|
r.setTxtVal(detail.getTestResult());
|
|
@@ -153,16 +161,14 @@ public class IsvReportServiceImpl implements IsvReportService {
|
|
|
throw new AppMessageException("没有此报告");
|
|
|
}
|
|
|
}
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public PageVO<QueryReportListResponseData> queryReportList(QueryReportListRequest request) {
|
|
|
+ public PageVO<QueryReportListResponseData> queryReportList(QueryReportListRequest request) throws Exception {
|
|
|
List<QueryReportListResponseData> list = new ArrayList<>();
|
|
|
- int userId = ContextHelper.getCurrentUserIdWrapped();
|
|
|
+ String userIdStr = request.getUserId();
|
|
|
+ int userId = Integer.parseInt(userIdStr);
|
|
|
// 报告类型:分为"检查报告"、"检验报告"两种
|
|
|
String type = request.getType();
|
|
|
int hospitalId = BizUtil.getCurrentHospitalId();
|
|
@@ -172,7 +178,6 @@ public class IsvReportServiceImpl implements IsvReportService {
|
|
|
int total = 0;
|
|
|
int totalT = 0;
|
|
|
int totalTh = 0;
|
|
|
- try {
|
|
|
MedicalCardVo card = getCard(userId, hospitalId, hisPatientId);
|
|
|
|
|
|
if ("检查报告".equals(type)) {
|
|
@@ -257,9 +262,6 @@ public class IsvReportServiceImpl implements IsvReportService {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
totalTh = total + totalT;
|
|
|
Pagination pagination = new Pagination(pageIndex, pageSize, totalTh);
|
|
|
PageVO<QueryReportListResponseData> res = new PageVO<>(pagination, list);
|
|
@@ -292,10 +294,34 @@ public class IsvReportServiceImpl implements IsvReportService {
|
|
|
v.setHisPatientId(card.getPatientId());
|
|
|
v.setPatientName(card.getPatientName());
|
|
|
v.setCardNum(card.getCardNo());
|
|
|
+ v.setAge(getAgeFromMedicalCard(card));
|
|
|
return v;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
throw new AppMessageException("没有此报告");
|
|
|
}
|
|
|
+
|
|
|
+ private String getAgeFromMedicalCard(MedicalCard card) {
|
|
|
+ int age = -1;
|
|
|
+ String idNo = card.getIdNo();
|
|
|
+ String birthday = card.getBirthday();
|
|
|
+ if (!StringHelper.isNullOrEmpty(idNo)) {
|
|
|
+ try {
|
|
|
+ age = IdCardUtil.getCurrentAge(idNo);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("IsvMedicCardServiceImpl#getAgeFromMedicalCard(idNo = {}): 无法获取年龄 {}", idNo, e.getMessage(), e);
|
|
|
+ }
|
|
|
+ } else if (!StringHelper.isNullOrEmpty(birthday)) {
|
|
|
+ try {
|
|
|
+ age = IdCardUtil.getCurrentAgeByBirthday(birthday, IdCardUtil.DATE_PATTERN2);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("IsvMedicCardServiceImpl#getAgeFromMedicalCard(birthday = {}): 无法获取年龄 {}", birthday, e.getMessage(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 不返回年龄为 "-1"
|
|
|
+ if (age < 0) {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ return String.valueOf(age);
|
|
|
+ }
|
|
|
}
|