diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/Nqrmyy/ConnTools.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/Nqrmyy/ConnTools.java new file mode 100644 index 0000000..833204a --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/Nqrmyy/ConnTools.java @@ -0,0 +1,33 @@ +package com.lyms.hospitalapi.Nqrmyy; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +/** + * Created by Administrator on 2017/7/20. + */ +public class ConnTools { + + private static String hisDirverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; + private static String hisUrl = "jdbc:sqlserver://192.169.1.138:1433; DatabaseName=lis"; + private static String hisUser = "sa"; + private static String hisPassword = "Admin123"; + + public static Connection makeHisConnection() { + Connection conn = null; + try { + Class.forName(hisDirverClassName); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + try { + conn = DriverManager.getConnection(hisUrl, hisUser, hisPassword); + } catch (SQLException e) { + e.printStackTrace(); + } + return conn; + } + + +} diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/Nqrmyy/NqrmyyLisService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/Nqrmyy/NqrmyyLisService.java new file mode 100644 index 0000000..55c83a6 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/Nqrmyy/NqrmyyLisService.java @@ -0,0 +1,295 @@ +package com.lyms.hospitalapi.Nqrmyy; + +import com.lyms.hospitalapi.pojo.*; +import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.permission.model.LisReportModel; +import com.lyms.platform.pojo.LisReportItem; +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 java.sql.Connection; +import java.sql.SQLException; +import java.util.*; + +/** + * Created by Administrator on 2017/7/20. + */ +public class NqrmyyLisService { + + public List queryCheckListupdate(String cardNo,int ftype){ + + if(1==ftype){ + List result = new ArrayList<>(); + List CheckByDate=new ArrayList(); + //List CheckType=new ArrayList(); + //result.addAll(l); + result.addAll(queryLisCheckList(cardNo)); + //result.addAll(queryPacsCheckList(cardNo)); + List keyList = new ArrayList<>(); + // 去重 + List list = new ArrayList<>(); + Date tempDate = null; + for (CheckResponse check:result) { + if (check.getModified() != null && check.getModified().equals(tempDate)) { + continue; + } + list.add(check); + tempDate = check.getModified(); + } + // 排序 + Collections.sort(list, new Comparator() { + public int compare(Object a, Object b) { + if (((CheckResponse) a).getModified() == null) { + return -1; + } + if (((CheckResponse) b).getModified() == null) { + return -1; + } + if (((CheckResponse) a).getModified().before(((CheckResponse) a).getModified())) { + return 1; + } + return -1; + } + }); + + for (CheckResponse check:list) { + String ymd = DateUtil.getyyyy_MM_dd(check.getModified()); + if (!keyList.contains(ymd)) { + keyList.add(ymd); + } + + } + + for(String time:keyList){ + List CheckType=new ArrayList(); + List result2=new ArrayList<>();//存放所有检验报告(type=1) + List result3=new ArrayList<>();//存放所有影像报告(type=2) + List result4=new ArrayList<>();//存放所有其他报告 + CheckType jianyan=new CheckType(); + jianyan.setType("检验报告"); + CheckType yingxiang=new CheckType(); + yingxiang.setType("影像报告"); + CheckType other=new CheckType(); + other.setType("其它报告"); + for(CheckResponse chre:result){ + if(time.equals(DateUtil.getyyyy_MM_dd(chre.getModified()))){ + if(chre.getType() == 1){ + result2.add(chre); + //jianyan.setTypeName(result2); + //CheckType.add(jianyan); + }else if(chre.getType() == 2){ + result3.add(chre); + //yingxiang.setTypeName(result3); + //CheckType.add(yingxiang); + }else{ + result4.add(chre); + //other.setTypeName(result4); + //CheckType.add(other); + } + + } + } + + jianyan.setTypeName(result2); + CheckType.add(jianyan); + + yingxiang.setTypeName(result3); + CheckType.add(yingxiang); + + other.setTypeName(result4); + CheckType.add(other); + + + CheckByDate CheckByDate1=new CheckByDate(); + CheckByDate1.setTime(time); + CheckByDate1.setTypes(CheckType); + CheckByDate.add(CheckByDate1); + } + + return CheckByDate; + + }else{ + List result = new ArrayList(); + List CheckByDate=new ArrayList(); + //List CheckType=new ArrayList(); + //result.addAll(l); + result.addAll(queryLisCheckList(cardNo)); + //result.addAll(queryPacsCheckList(cardNo)); + List keyList = new ArrayList<>(); + List listtype=new ArrayList<>(); + List listt = new ArrayList<>(); + // 去重 + List list = new ArrayList<>(); + Integer num=0; + for(CheckResponse check:result){ + if(check.getType()!=null && check.getType()==num){ + continue; + } + list.add(check); + num=check.getType(); + } + String t=null; + for(CheckResponse check:result){ + if(check.getTitle()!=null && check.getTitle().equals(t)){ + continue; + } + listt.add(check); + t=check.getTitle(); + } + + + // 排序 + Collections.sort(list, new Comparator() { + public int compare(Object a, Object b) { + if (((CheckResponse)a).getModified() == null) { + return -1; + } + if (((CheckResponse)b).getModified() == null) { + return -1; + } + if (((CheckResponse)a).getModified().before(((CheckResponse)a).getModified())) { + return 1; + } + return -1; + } + }); + + for (CheckResponse check:list) { + Integer ymd = check.getType(); + if (!keyList.contains(ymd.toString())) { + keyList.add(ymd.toString()); + } + + } + for(CheckResponse check:listt){ + String ty=check.getTitle(); + if(!listtype.contains(ty)){ + listtype.add(ty); + } + } + + + + + for(String type:keyList){ + + List CheckType=new ArrayList(); + + for(String typ:listtype){ + List result2=new ArrayList<>(); + CheckType CheckType1=new CheckType(); + //CheckType1.setType(typ); + for(CheckResponse chre:result){ + if(type.equals(chre.getType().toString()) && typ.equals(chre.getTitle())){ + chre.setTitle(DateUtil.getyyyy_MM_dd(chre.getModified())+" "+chre.getTitle()); + result2.add(chre); + //CheckType1.setTypeName(result2); + //CheckType.add(CheckType1); + } + + } + if(result2.size()>0){ + CheckType1.setType(typ); + CheckType1.setTypeName(result2); + CheckType.add(CheckType1); + } + + } + + + CheckByDate CheckByDate1=new CheckByDate(); + if("1".equals(type)){ + CheckByDate1.setTime("检验报告"); + CheckByDate1.setTypes(CheckType); + CheckByDate.add(CheckByDate1); + }else if("2".equals(type)){ + CheckByDate1.setTime("影像报告"); + CheckByDate1.setTypes(CheckType); + CheckByDate.add(CheckByDate1); + }else{ + CheckByDate1.setTime("其它报告"); + CheckByDate1.setTypes(CheckType); + CheckByDate.add(CheckByDate1); + } + + } + + return CheckByDate; + } + + + } + + + public static List queryLisCheckList(String cardNo) { + + List result = new ArrayList<>(); + if (StringUtils.isNotBlank(cardNo)) { + Connection conn = com.lyms.hospitalapi.Nqrmyy.ConnTools.makeHisConnection(); + QueryRunner queryRunner = new QueryRunner(true); + try { + String sql = "select LIS_ID as lisId,TITLE as title,TYPE as type,VCCARDNO as vcCardNo, NAME as name,BHNUM as bhnum,SEX as sex,to_number(replace(AGE,'岁') ) as age,APPLY_TIME as applyTime,CHECK_TIME as checkTime,PUBLISH_TIME as publishTime,APPLY_DOCTOR as applyDoctor,APPLY_DEPT as applyDept,CHECKER as checker,MODIFIED as modified,CREATED as created from zlhis.lis_report_info where VCCARDNO ='"+cardNo+"' order by LIS_ID desc"; + String subSql = "select LIS_ID as id,CODE as code,NAME as name,RESULT as result,RESULT_FLAG as flag,REF as ref,UNIT as unit,RESULT_TYPE as resultType from zlhis.lis_report_item where LIS_ID='"; + List lisReportList = queryRunner.query(conn, sql, new BeanListHandler(LisReportModel.class)); + List list = new ArrayList<>(); + if (lisReportList.size() > 0) { + for (LisReportModel lisReportModel:lisReportList) { + // hospitalId为申请号 + if (StringUtils.isNotBlank(lisReportModel.getLisId())) { + List lisReportItemList = queryRunner.query(conn, subSql+lisReportModel.getLisId()+"'", new BeanListHandler(LisReportItem.class)); + if (lisReportItemList != null && lisReportItemList.size() > 0) { + CheckResponse check = new CheckResponse(); + check.setModified(lisReportModel.getPublishTime()); + check.setType(1); + check.setName(lisReportModel.getName()); + check.setTitle(lisReportModel.getTitle()); + check.setHospitalName("内丘人民医院");//新增医院名称字段赋值 + if (lisReportModel.getAge() != null) { + check.setAge(lisReportModel.getAge()); + } + check.setApplyDate(lisReportModel.getApplyTime()); + check.setApplyDateStr(DateUtil.getyyyy_MM_dd(lisReportModel.getApplyTime())); + check.setCheckDept(lisReportModel.getApplyDept()); + check.setDoctor(lisReportModel.getApplyDoctor()); + check.setSex(lisReportModel.getSex()); + check.setModified(lisReportModel.getModified()); + List itemList = new ArrayList<>(); + check.setItemList(itemList); + for (LisReportItem checkItem:lisReportItemList) { + CheckItemResponse item = new CheckItemResponse(); + item.setName(checkItem.getName()); + item.setCode(checkItem.getCode()); + item.setRefer(checkItem.getRef()); + if (StringUtils.isNotBlank(checkItem.getNumberResult())) { + item.setResult(checkItem.getNumberResult()); + } else if (StringUtils.isNotBlank(checkItem.getCharResult())) { + item.setResult(checkItem.getCharResult()); + } else { + item.setResult(checkItem.getResult()); + } + item.setUnit(checkItem.getUnit()); + item.setSpecial(checkItem.getFlag()); + itemList.add(item); + } + result.add(check); + } + } + + } + } + DbUtils.closeQuietly(conn); + return result; + } catch (SQLException e) { + DbUtils.closeQuietly(conn); + e.printStackTrace(); + return result; + } + } + return result; + + } + + +} diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/dzfy/DzfyHisService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/dzfy/DzfyHisService.java index 4c37c08..149909b 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/dzfy/DzfyHisService.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/dzfy/DzfyHisService.java @@ -449,8 +449,35 @@ public class DzfyHisService { return result; } + /**德州 + * 获取患者使用过的所有就诊卡号 + * @param cardNo 就诊卡号 + * @return + */ + public List FindAllCradnos(String cardNo){ + List allcardnoList = new ArrayList(); + if (StringUtils.isNotBlank(cardNo)) { + Connection conn = com.lyms.hospitalapi.dzfy.ConnTools.makeHisConnection(); + QueryRunner queryRunner = new QueryRunner(true); + String sql = "select id as ID from zlhis.v_patientinfo where cardno= '"+cardNo+"'"; + try{ + + List hisDzReplaceList = queryRunner.query(conn,sql,new BeanListHandler(DzReplace.class)); + String jzksql="select 病人ID as ID,卡号 as Cardno,登记记录 as CombTime from zlhis.jzkghjl where B病人ID='"+hisDzReplaceList.get(0).getID()+"'"; + + allcardnoList = queryRunner.query(conn,jzksql,new BeanListHandler(DzReplace.class)); + }catch (Exception e){ + e.printStackTrace(); + + } + + + } + + return allcardnoList; + } diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/pojo/DzReplace.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/pojo/DzReplace.java new file mode 100644 index 0000000..673224e --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/pojo/DzReplace.java @@ -0,0 +1,35 @@ +package com.lyms.hospitalapi.pojo; + +/** + * Created by Administrator on 2017/8/25. + */ +public class DzReplace { + + private String ID;//病人ID + private String Cardno;//就诊卡号 + private String CombTime;//发卡时间 + + public String getID() { + return ID; + } + + public void setID(String ID) { + this.ID = ID; + } + + public String getCardno() { + return Cardno; + } + + public void setCardno(String cardno) { + Cardno = cardno; + } + + public String getCombTime() { + return CombTime; + } + + public void setCombTime(String combTime) { + CombTime = combTime; + } +} diff --git a/platform-operate-api/src/main/resources/config.properties b/platform-operate-api/src/main/resources/config.properties index 6837cb4..589b67c 100644 --- a/platform-operate-api/src/main/resources/config.properties +++ b/platform-operate-api/src/main/resources/config.properties @@ -1,13 +1,24 @@ #短信中心url -#center_base_url=https://weixin-push-save.healthbaby.com.cn -center_base_url=https://push.stage.platform.healthbaby.com.cn +#center_base_url=http://sms.healthbaby.com.cn/v1/ +center_base_url=http://sms.api.stage.platform.healthbaby.com.cn/v1/ + +#德州代金券地址 +djq_url=http://127.0.0.1:9090/his/insertDzfyDjq #区域平台访问短信中心的token center_token=e0c56363-00d6-42ee-bbe0-23c553583062 +#\u5C71\u4E1C\u5FB7\u5DDE\u4F18\u60E0\u5238\u91D1\u989D_shanDong dezhou youHuiQuan jinE +shanDong_Dezhou_youHuiQuan_money_Number=500 + + + #His系统版本 0:未使用,1:桓台,2:新乐,3:青龙县医院,4:秦皇岛妇幼,5:抚宁妇幼, 6: 德州妇幼,7:南充中心医院 his_version=0 +#统计中心url +center_statistics_url=http://api.healthbaby.com.cn/ + #TCP服务器端口 nio_server_port=8000 #TCP服务器是否启动 1:true,2:false @@ -15,19 +26,57 @@ nio_server_start=2 #TCP客户端是否启动 1:true,2:false nio_client_start=2 -#全量把某个区域的数据同步到下面地址配置的环境中 +#postser_url=http://api.meishengbb.com/initdata/reser postser_url=http://devmmsapi.qinhuangdao.healthbaby.com.cn:18019/initdata/reser -#线上才配置,同步mysql数据到各个区域的地址,多个用逗号隔开 -sync_mysql_data_url= #区域统计地址 area_count_url=192.168.1.32:1521 +#同步mysql数据到各个区域的地址,多个用逗号隔开 如:https://area-qhd-api.healthbaby.com.cn:18019/syncMysqlData,https://area-dz-api.healthbaby.com.cn:12356/syncMysqlData +sync_mysql_data_url= + #数据源相关配置 jdbc.0.driver=oracle.jdbc.driver.OracleDriver jdbc.0.url=jdbc:oracle:thin:@192.168.1.32:1521:orcl jdbc.0.username=LYMS_ODS jdbc.0.password=Welcome1 +jdbc.1.driver=oracle.jdbc.driver.OracleDriver +jdbc.1.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl +jdbc.1.username=LYMS_ODS +jdbc.1.password=Welcome1 + +jdbc.2.driver=oracle.jdbc.driver.OracleDriver +jdbc.2.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl +jdbc.2.username=LYMS_ODS +jdbc.2.password=Welcome1 + +jdbc.3.driver=oracle.jdbc.driver.OracleDriver +jdbc.3.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl +jdbc.3.username=LYMS_ODS +jdbc.3.password=Welcome1 + +jdbc.4.driver=oracle.jdbc.driver.OracleDriver +jdbc.4.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl +jdbc.4.username=LYMS_ODS +jdbc.4.password=Welcome1 + +jdbc.5.driver=oracle.jdbc.driver.OracleDriver +jdbc.5.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl +jdbc.5.username=LYMS_ODS +jdbc.5.password=Welcome1 + +jdbc.6.driver=oracle.jdbc.driver.OracleDriver +jdbc.6.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl +jdbc.6.username=LYMS_ODS +jdbc.6.password=Welcome1 + + +jdbc.7.driver=oracle.jdbc.driver.OracleDriver +jdbc.7.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl +jdbc.7.username=LYMS_ODS +jdbc.7.password=Welcome1 + +platform.operate.api.validate.url=http://localhost:8080/