diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/LisCrisisItemDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/LisCrisisItemDao.java new file mode 100644 index 0000000..ec1d746 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/LisCrisisItemDao.java @@ -0,0 +1,21 @@ +package com.lyms.platform.biz.dal; + +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.pojo.LisCrisisItem; + +import java.util.List; + +/** + * Created by Administrator on 2016/10/19 0019. + */ +public interface LisCrisisItemDao { + + public LisCrisisItem addLisCrisisItem(LisCrisisItem obj); + + public LisCrisisItem getLisCrisisItem(String id); + + public int queryLisCrisisItemCount(MongoQuery query); + + public List queryLisCrisisItem(MongoQuery query); + +} diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/LisReportDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/LisReportDao.java new file mode 100644 index 0000000..8b8b50c --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/LisReportDao.java @@ -0,0 +1,21 @@ +package com.lyms.platform.biz.dal; + +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.pojo.LisReport; + +import java.util.List; + +/** + * Created by Administrator on 2016/10/19 0019. + */ +public interface LisReportDao { + + public LisReport addLisReport(LisReport obj); + + public LisReport getLisReport(String id); + + public int queryLisReportCount(MongoQuery query); + + public List queryLisReport(MongoQuery query); + +} diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/LisCrisisItemDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/LisCrisisItemDaoImpl.java new file mode 100644 index 0000000..5a62687 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/LisCrisisItemDaoImpl.java @@ -0,0 +1,38 @@ +package com.lyms.platform.biz.dal.impl; + +import com.lyms.platform.biz.dal.LisCrisisItemDao; +import com.lyms.platform.biz.dal.LisReportDao; +import com.lyms.platform.common.dao.BaseMongoDAOImpl; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.pojo.LisCrisisItem; +import com.lyms.platform.pojo.LisReport; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * Created by Administrator on 2016/10/19 0019. + */ +@Repository("lisCrisisItemDao") +public class LisCrisisItemDaoImpl extends BaseMongoDAOImpl implements LisCrisisItemDao { + + @Override + public LisCrisisItem addLisCrisisItem(LisCrisisItem obj) { + return save(obj); + } + + @Override + public LisCrisisItem getLisCrisisItem(String id) { + return findById(id); + } + + @Override + public int queryLisCrisisItemCount(MongoQuery query) { + return (int) count(query.convertToMongoQuery()); + } + + @Override + public List queryLisCrisisItem(MongoQuery query) { + return find(query.convertToMongoQuery()); + } +} diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/LisReportDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/LisReportDaoImpl.java new file mode 100644 index 0000000..47b534e --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/LisReportDaoImpl.java @@ -0,0 +1,39 @@ +package com.lyms.platform.biz.dal.impl; + +import com.lyms.platform.biz.dal.IHighRiskDao; +import com.lyms.platform.biz.dal.LisReportDao; +import com.lyms.platform.common.dao.BaseMongoDAOImpl; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.pojo.HighRiskSmsModel; +import com.lyms.platform.pojo.LisReport; +import com.lyms.platform.pojo.LisReportItem; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * Created by Administrator on 2016/10/19 0019. + */ +@Repository("lisReportDao") +public class LisReportDaoImpl extends BaseMongoDAOImpl implements LisReportDao { + + @Override + public LisReport addLisReport(LisReport obj) { + return save(obj); + } + + @Override + public LisReport getLisReport(String id) { + return findById(id); + } + + @Override + public int queryLisReportCount(MongoQuery query) { + return (int)count(query.convertToMongoQuery()); + } + + @Override + public List queryLisReport(MongoQuery query) { + return find(query.convertToMongoQuery()); + } +} diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/LisCrisisItemService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/LisCrisisItemService.java new file mode 100644 index 0000000..321ff62 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/LisCrisisItemService.java @@ -0,0 +1,10 @@ +package com.lyms.platform.biz.service; + +import org.springframework.stereotype.Service; + +/** + * Created by Administrator on 2016/10/19 0019. + */ +@Service("lisCrisisItemService") +public class LisCrisisItemService { +} diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/LisReportService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/LisReportService.java new file mode 100644 index 0000000..5f0bd18 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/LisReportService.java @@ -0,0 +1,26 @@ +package com.lyms.platform.biz.service; + +import com.lyms.platform.biz.dal.LisReportDao; +import com.lyms.platform.pojo.LisReport; +import com.lyms.platform.query.LisReportQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * Created by Administrator on 2016/10/19 0019. + */ +@Service("lisReportService") +public class LisReportService { + + @Autowired + private LisReportDao lisReportDao; + + public int queryLisReportCount(LisReportQuery query) { + return lisReportDao.queryLisReportCount(query.convertToQuery()); + } + + public void addLisReport(LisReport report) { + lisReportDao.addLisReport(report); + } + +} diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/LisCrisisItem.java b/platform-dal/src/main/java/com/lyms/platform/pojo/LisCrisisItem.java index a630c63..f544f5d 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/LisCrisisItem.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/LisCrisisItem.java @@ -11,6 +11,7 @@ import java.util.Date; public class LisCrisisItem { private String id; + private String hospitalId; private String name; private Integer age; private String weeks; @@ -28,6 +29,14 @@ public class LisCrisisItem { private Integer status; private String statusName; + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + public String getId() { return id; } diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/LisReport.java b/platform-dal/src/main/java/com/lyms/platform/pojo/LisReport.java index 6d861eb..ffb2e8d 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/LisReport.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/LisReport.java @@ -12,6 +12,7 @@ import java.util.List; public class LisReport { private String id; + private String hospitalId; private String patientFid; private String patientHid; private String vcCardNo; @@ -25,6 +26,23 @@ public class LisReport { private String checkDoctorCode; private String checkDoctorName; private Date publishTime; + private Integer status;// 1:未计算危机;2:已计算危机 + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } private List itemList; diff --git a/platform-dal/src/main/java/com/lyms/platform/query/LisCrisisItemQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/LisCrisisItemQuery.java index fdd1f7a..e24919e 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/LisCrisisItemQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/LisCrisisItemQuery.java @@ -26,6 +26,94 @@ public class LisCrisisItemQuery extends BaseQuery implements IConvertToNativeQue private String applyDoctorName; private Integer status; + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public String getItemCode() { + return itemCode; + } + + public void setItemCode(String itemCode) { + this.itemCode = itemCode; + } + + public String getItemName() { + return itemName; + } + + public void setItemName(String itemName) { + this.itemName = itemName; + } + + public String getClassify() { + return classify; + } + + public void setClassify(String classify) { + this.classify = classify; + } + + public String getClassifyName() { + return classifyName; + } + + public void setClassifyName(String classifyName) { + this.classifyName = classifyName; + } + + public String getFlag() { + return flag; + } + + public void setFlag(String flag) { + this.flag = flag; + } + + public String getApplyDoctorCode() { + return applyDoctorCode; + } + + public void setApplyDoctorCode(String applyDoctorCode) { + this.applyDoctorCode = applyDoctorCode; + } + + public String getApplyDoctorName() { + return applyDoctorName; + } + + public void setApplyDoctorName(String applyDoctorName) { + this.applyDoctorName = applyDoctorName; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + @Override public MongoQuery convertToQuery() { MongoCondition condition = MongoCondition.newInstance(); diff --git a/platform-dal/src/main/java/com/lyms/platform/query/LisReportQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/LisReportQuery.java index 7e8d783..a0f698d 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/LisReportQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/LisReportQuery.java @@ -2,14 +2,84 @@ package com.lyms.platform.query; import com.lyms.platform.common.base.IConvertToNativeQuery; import com.lyms.platform.common.dao.BaseQuery; +import com.lyms.platform.common.dao.operator.MongoCondition; +import com.lyms.platform.common.dao.operator.MongoOper; import com.lyms.platform.common.dao.operator.MongoQuery; +import org.bson.types.ObjectId; /** * Created by Administrator on 2016/10/19 0019. */ public class LisReportQuery extends BaseQuery implements IConvertToNativeQuery { + + private String id; + private String hospitalId; + private String vcCardNo; + private String name; + private Integer status;// 1:未计算危机;2:已计算危机 + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public String getVcCardNo() { + return vcCardNo; + } + + public void setVcCardNo(String vcCardNo) { + this.vcCardNo = vcCardNo; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + @Override public MongoQuery convertToQuery() { - return null; + MongoCondition condition = MongoCondition.newInstance(); + if (null != id) { + condition = condition.and("id", new ObjectId(id), MongoOper.IS); + } + if (null != status) { + condition = condition.and("status", status, MongoOper.IS); + } + if (null != hospitalId) { + condition = condition.and("hospitalId", hospitalId, MongoOper.IS); + } + if(null!=vcCardNo){ + condition=condition.and("vcCardNo",vcCardNo,MongoOper.IS); + } + if(null!=hospitalId){ + condition=condition.and("hospitalId",hospitalId,MongoOper.IS); + } + if(null!=name){ + condition=condition.and("name",name,MongoOper.IS); + } + + return condition.toMongoQuery(); } } diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java index 83850f4..23e23f4 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java @@ -3,15 +3,18 @@ package com.lyms.hospitalapi.qhdfy; import com.lyms.hospitalapi.pojo.CheckResponse; import com.lyms.hospitalapi.pojo.RisCheckInfo; import com.lyms.hospitalapi.v1.*; +import com.lyms.platform.biz.service.LisReportService; import com.lyms.platform.biz.service.PatientsService; import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.pojo.LisReport; import com.lyms.platform.pojo.LisReportItem; +import com.lyms.platform.query.LisReportQuery; import com.lyms.platform.query.PatientsQuery; import org.apache.commons.dbutils.DbUtils; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanListHandler; import org.apache.commons.lang.StringUtils; +import org.joda.time.DateTime; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -30,54 +33,45 @@ public class QhdfyHisService { @Autowired private PatientsService patientsService; + @Autowired + private LisReportService lisReportService; + + public void syncLisReportTask() { + DateTime dt = new DateTime(); + dt = dt.minusDays(1); + queryLisReport(dt.toDate()); + } + public List queryLisReport(Date startDate) { + //TODO + Integer hospitalId = 216; List result = new ArrayList<>(); if (null != startDate) { - Connection conn = ConnTools.makePacsConnection(); + Connection conn = ConnTools.makeLisConnection(); QueryRunner queryRunner = new QueryRunner(); try { PatientsQuery patientsQuery = new PatientsQuery(); - String sql = "select top 10000 申请号,病人ID,住院号,卡号,患者姓名,性别,年龄,申请科室代码,申请科室名称,申请医生代码,申请医生名称,检查医生代码,检查医生名称,报告发布时间 from valllist_ex where 卡号 is not null and 报告发布时间>=? order by 申请号 desc"; - String subSql = "select top 1000 申请单号,项目代码,项目名称,项目结果,字符结果,数字结果,高低标志,参考值,单位,结果类型 from valresult_ex where 申请单号='"; + String sql = "select top 10000 申请号 as hospitalId,病人ID as patientFid,住院号 as patientHid,卡号 as vcCardNo,患者姓名 as name,性别 as sex,年龄 as age,申请科室代码 as deptCode,申请科室名称as deptName,申请医生代码 as applyDoctorCode,申请医生名称 as applyDoctorName,检查医生代码 as checkDoctorCode,检查医生名称 as checkDoctorName,报告发布时间 as publishTime from valllist_ex where 卡号 is not null and 报告发布时间>=? order by 申请号 desc"; + String subSql = "select top 1000 申请单号 as id,项目代码 as code,项目名称 as name,项目结果 as result,字符结果 as charResult,数字结果 as numberResult,高低标志 as flag,参考值 as ref,单位 as unit,结果类型 as result from valresult_ex where 申请单号='"; Object[] params = {startDate}; - List list = queryRunner.query(conn, sql, new BeanListHandler(QhdfyLisReport.class), params); + List list = queryRunner.query(conn, sql, new BeanListHandler(LisReport.class), params); if (list.size() > 0) { - for (QhdfyLisReport report:list) { - patientsQuery.setVcCardNo(report.get卡号()); + for (LisReport report:list) { + patientsQuery.setVcCardNo(report.getVcCardNo()); int count = patientsService.queryPatientCount(patientsQuery); - if (count > 0) { - List itemList = queryRunner.query(conn, subSql+report.get申请号()+"'", new BeanListHandler(QhdfyLisReportItem.class)); - List lisReportItemList = new ArrayList<>(); - for (QhdfyLisReportItem item:itemList) { - LisReportItem lisReportItem = new LisReportItem(); - lisReportItem.setId(item.get申请单号()); - lisReportItem.setCharResult(item.get字符结果()); - lisReportItem.setCode(item.get项目代码()); - lisReportItem.setFlag(item.get高低标志()); - lisReportItem.setName(item.get项目名称()); - lisReportItem.setNumberResult(item.get数字结果()); - lisReportItem.setRef(item.get参考值()); - lisReportItem.setResult(item.get项目结果()); - lisReportItem.setResultType(item.get结果类型()); - lisReportItem.setUnit(item.get单位()); - lisReportItemList.add(lisReportItem); + + LisReportQuery lisReportQuery = new LisReportQuery(); + lisReportQuery.setVcCardNo(report.getVcCardNo()); + lisReportQuery.setHospitalId(""+hospitalId); + int reportCount = lisReportService.queryLisReportCount(lisReportQuery); + if (count > 0 && reportCount == 0) { + List itemList = queryRunner.query(conn, subSql+report.getHospitalId()+"'", new BeanListHandler(LisReportItem.class)); + if (itemList.size() > 0) { + report.setId(hospitalId + ":" + report.getHospitalId()); + report.setItemList(itemList); + report.setHospitalId(hospitalId + ""); + lisReportService.addLisReport(report); } - LisReport lisReport = new LisReport(); - lisReport.setName(report.get患者姓名()); - lisReport.setAge(report.get年龄()); - lisReport.setApplyDoctorCode(report.get申请医生代码()); - lisReport.setApplyDoctorName(report.get检查医生名称()); - lisReport.setCheckDoctorCode(report.get检查医生代码()); - lisReport.setCheckDoctorName(report.get检查医生名称()); - lisReport.setDeptCode(report.get申请科室代码()); - lisReport.setDeptName(report.get申请科室名称()); - lisReport.setPatientFid(report.get病人ID()); - lisReport.setPatientHid(report.get住院号()); - lisReport.setId(report.get申请号()); - lisReport.setPublishTime(report.get报告发布时间()); - lisReport.setSex(report.get性别()); - lisReport.setVcCardNo(report.get卡号()); - lisReport.setItemList(lisReportItemList); } } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java index 7b46359..5207a32 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java @@ -1,5 +1,6 @@ package com.lyms.platform.operate.web.controller; +import com.lyms.hospitalapi.qhdfy.QhdfyHisService; import com.lyms.platform.biz.JdbcUtil; import com.lyms.platform.biz.service.PatientsService; import org.springframework.beans.factory.annotation.Autowired; @@ -29,6 +30,9 @@ public class TestController { @Autowired private PatientsService patientsService; + @Autowired + private QhdfyHisService qhdfyHisService; + /** * 获取科室 */ @@ -146,4 +150,11 @@ public class TestController { return "finish"; } + @RequestMapping(value = "/syncLisReportTask", method = RequestMethod.GET) + @ResponseBody + public String syncLisReportTask() { + qhdfyHisService.syncLisReportTask(); + return "finish"; + } + }