Commit a57805f1a82443e69177f6f1f2ea0f426db7e414

Authored by gengxiaokai
1 parent d295683eba

德州

Showing 5 changed files with 444 additions and 5 deletions

platform-operate-api/src/main/java/com/lyms/hospitalapi/Nqrmyy/ConnTools.java View file @ a57805f
  1 +package com.lyms.hospitalapi.Nqrmyy;
  2 +
  3 +import java.sql.Connection;
  4 +import java.sql.DriverManager;
  5 +import java.sql.SQLException;
  6 +
  7 +/**
  8 + * Created by Administrator on 2017/7/20.
  9 + */
  10 +public class ConnTools {
  11 +
  12 + private static String hisDirverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
  13 + private static String hisUrl = "jdbc:sqlserver://192.169.1.138:1433; DatabaseName=lis";
  14 + private static String hisUser = "sa";
  15 + private static String hisPassword = "Admin123";
  16 +
  17 + public static Connection makeHisConnection() {
  18 + Connection conn = null;
  19 + try {
  20 + Class.forName(hisDirverClassName);
  21 + } catch (ClassNotFoundException e) {
  22 + e.printStackTrace();
  23 + }
  24 + try {
  25 + conn = DriverManager.getConnection(hisUrl, hisUser, hisPassword);
  26 + } catch (SQLException e) {
  27 + e.printStackTrace();
  28 + }
  29 + return conn;
  30 + }
  31 +
  32 +
  33 +}
platform-operate-api/src/main/java/com/lyms/hospitalapi/Nqrmyy/NqrmyyLisService.java View file @ a57805f
  1 +package com.lyms.hospitalapi.Nqrmyy;
  2 +
  3 +import com.lyms.hospitalapi.pojo.*;
  4 +import com.lyms.platform.common.utils.DateUtil;
  5 +import com.lyms.platform.permission.model.LisReportModel;
  6 +import com.lyms.platform.pojo.LisReportItem;
  7 +import org.apache.commons.dbutils.DbUtils;
  8 +import org.apache.commons.dbutils.QueryRunner;
  9 +import org.apache.commons.dbutils.handlers.BeanListHandler;
  10 +import org.apache.commons.lang.StringUtils;
  11 +
  12 +import java.sql.Connection;
  13 +import java.sql.SQLException;
  14 +import java.util.*;
  15 +
  16 +/**
  17 + * Created by Administrator on 2017/7/20.
  18 + */
  19 +public class NqrmyyLisService {
  20 +
  21 + public List<CheckByDate> queryCheckListupdate(String cardNo,int ftype){
  22 +
  23 + if(1==ftype){
  24 + List<CheckResponse> result = new ArrayList<>();
  25 + List<CheckByDate> CheckByDate=new ArrayList<CheckByDate>();
  26 + //List<CheckType> CheckType=new ArrayList<CheckType>();
  27 + //result.addAll(l);
  28 + result.addAll(queryLisCheckList(cardNo));
  29 + //result.addAll(queryPacsCheckList(cardNo));
  30 + List<String> keyList = new ArrayList<>();
  31 + // 去重
  32 + List<CheckResponse> list = new ArrayList<>();
  33 + Date tempDate = null;
  34 + for (CheckResponse check:result) {
  35 + if (check.getModified() != null && check.getModified().equals(tempDate)) {
  36 + continue;
  37 + }
  38 + list.add(check);
  39 + tempDate = check.getModified();
  40 + }
  41 + // 排序
  42 + Collections.sort(list, new Comparator() {
  43 + public int compare(Object a, Object b) {
  44 + if (((CheckResponse) a).getModified() == null) {
  45 + return -1;
  46 + }
  47 + if (((CheckResponse) b).getModified() == null) {
  48 + return -1;
  49 + }
  50 + if (((CheckResponse) a).getModified().before(((CheckResponse) a).getModified())) {
  51 + return 1;
  52 + }
  53 + return -1;
  54 + }
  55 + });
  56 +
  57 + for (CheckResponse check:list) {
  58 + String ymd = DateUtil.getyyyy_MM_dd(check.getModified());
  59 + if (!keyList.contains(ymd)) {
  60 + keyList.add(ymd);
  61 + }
  62 +
  63 + }
  64 +
  65 + for(String time:keyList){
  66 + List<CheckType> CheckType=new ArrayList<CheckType>();
  67 + List<CheckResponse> result2=new ArrayList<>();//存放所有检验报告(type=1)
  68 + List<CheckResponse> result3=new ArrayList<>();//存放所有影像报告(type=2)
  69 + List<CheckResponse> result4=new ArrayList<>();//存放所有其他报告
  70 + CheckType jianyan=new CheckType();
  71 + jianyan.setType("检验报告");
  72 + CheckType yingxiang=new CheckType();
  73 + yingxiang.setType("影像报告");
  74 + CheckType other=new CheckType();
  75 + other.setType("其它报告");
  76 + for(CheckResponse chre:result){
  77 + if(time.equals(DateUtil.getyyyy_MM_dd(chre.getModified()))){
  78 + if(chre.getType() == 1){
  79 + result2.add(chre);
  80 + //jianyan.setTypeName(result2);
  81 + //CheckType.add(jianyan);
  82 + }else if(chre.getType() == 2){
  83 + result3.add(chre);
  84 + //yingxiang.setTypeName(result3);
  85 + //CheckType.add(yingxiang);
  86 + }else{
  87 + result4.add(chre);
  88 + //other.setTypeName(result4);
  89 + //CheckType.add(other);
  90 + }
  91 +
  92 + }
  93 + }
  94 +
  95 + jianyan.setTypeName(result2);
  96 + CheckType.add(jianyan);
  97 +
  98 + yingxiang.setTypeName(result3);
  99 + CheckType.add(yingxiang);
  100 +
  101 + other.setTypeName(result4);
  102 + CheckType.add(other);
  103 +
  104 +
  105 + CheckByDate CheckByDate1=new CheckByDate();
  106 + CheckByDate1.setTime(time);
  107 + CheckByDate1.setTypes(CheckType);
  108 + CheckByDate.add(CheckByDate1);
  109 + }
  110 +
  111 + return CheckByDate;
  112 +
  113 + }else{
  114 + List<CheckResponse> result = new ArrayList<CheckResponse>();
  115 + List<CheckByDate> CheckByDate=new ArrayList<CheckByDate>();
  116 + //List<CheckType> CheckType=new ArrayList<CheckType>();
  117 + //result.addAll(l);
  118 + result.addAll(queryLisCheckList(cardNo));
  119 + //result.addAll(queryPacsCheckList(cardNo));
  120 + List<String> keyList = new ArrayList<>();
  121 + List<String> listtype=new ArrayList<>();
  122 + List<CheckResponse> listt = new ArrayList<>();
  123 + // 去重
  124 + List<CheckResponse> list = new ArrayList<>();
  125 + Integer num=0;
  126 + for(CheckResponse check:result){
  127 + if(check.getType()!=null && check.getType()==num){
  128 + continue;
  129 + }
  130 + list.add(check);
  131 + num=check.getType();
  132 + }
  133 + String t=null;
  134 + for(CheckResponse check:result){
  135 + if(check.getTitle()!=null && check.getTitle().equals(t)){
  136 + continue;
  137 + }
  138 + listt.add(check);
  139 + t=check.getTitle();
  140 + }
  141 +
  142 +
  143 + // 排序
  144 + Collections.sort(list, new Comparator() {
  145 + public int compare(Object a, Object b) {
  146 + if (((CheckResponse)a).getModified() == null) {
  147 + return -1;
  148 + }
  149 + if (((CheckResponse)b).getModified() == null) {
  150 + return -1;
  151 + }
  152 + if (((CheckResponse)a).getModified().before(((CheckResponse)a).getModified())) {
  153 + return 1;
  154 + }
  155 + return -1;
  156 + }
  157 + });
  158 +
  159 + for (CheckResponse check:list) {
  160 + Integer ymd = check.getType();
  161 + if (!keyList.contains(ymd.toString())) {
  162 + keyList.add(ymd.toString());
  163 + }
  164 +
  165 + }
  166 + for(CheckResponse check:listt){
  167 + String ty=check.getTitle();
  168 + if(!listtype.contains(ty)){
  169 + listtype.add(ty);
  170 + }
  171 + }
  172 +
  173 +
  174 +
  175 +
  176 + for(String type:keyList){
  177 +
  178 + List<CheckType> CheckType=new ArrayList<CheckType>();
  179 +
  180 + for(String typ:listtype){
  181 + List<CheckResponse> result2=new ArrayList<>();
  182 + CheckType CheckType1=new CheckType();
  183 + //CheckType1.setType(typ);
  184 + for(CheckResponse chre:result){
  185 + if(type.equals(chre.getType().toString()) && typ.equals(chre.getTitle())){
  186 + chre.setTitle(DateUtil.getyyyy_MM_dd(chre.getModified())+" "+chre.getTitle());
  187 + result2.add(chre);
  188 + //CheckType1.setTypeName(result2);
  189 + //CheckType.add(CheckType1);
  190 + }
  191 +
  192 + }
  193 + if(result2.size()>0){
  194 + CheckType1.setType(typ);
  195 + CheckType1.setTypeName(result2);
  196 + CheckType.add(CheckType1);
  197 + }
  198 +
  199 + }
  200 +
  201 +
  202 + CheckByDate CheckByDate1=new CheckByDate();
  203 + if("1".equals(type)){
  204 + CheckByDate1.setTime("检验报告");
  205 + CheckByDate1.setTypes(CheckType);
  206 + CheckByDate.add(CheckByDate1);
  207 + }else if("2".equals(type)){
  208 + CheckByDate1.setTime("影像报告");
  209 + CheckByDate1.setTypes(CheckType);
  210 + CheckByDate.add(CheckByDate1);
  211 + }else{
  212 + CheckByDate1.setTime("其它报告");
  213 + CheckByDate1.setTypes(CheckType);
  214 + CheckByDate.add(CheckByDate1);
  215 + }
  216 +
  217 + }
  218 +
  219 + return CheckByDate;
  220 + }
  221 +
  222 +
  223 + }
  224 +
  225 +
  226 + public static List<CheckResponse> queryLisCheckList(String cardNo) {
  227 +
  228 + List<CheckResponse> result = new ArrayList<>();
  229 + if (StringUtils.isNotBlank(cardNo)) {
  230 + Connection conn = com.lyms.hospitalapi.Nqrmyy.ConnTools.makeHisConnection();
  231 + QueryRunner queryRunner = new QueryRunner(true);
  232 + try {
  233 + 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";
  234 + 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='";
  235 + List<LisReportModel> lisReportList = queryRunner.query(conn, sql, new BeanListHandler<LisReportModel>(LisReportModel.class));
  236 + List<LisCheckInfo> list = new ArrayList<>();
  237 + if (lisReportList.size() > 0) {
  238 + for (LisReportModel lisReportModel:lisReportList) {
  239 + // hospitalId为申请号
  240 + if (StringUtils.isNotBlank(lisReportModel.getLisId())) {
  241 + List<LisReportItem> lisReportItemList = queryRunner.query(conn, subSql+lisReportModel.getLisId()+"'", new BeanListHandler<LisReportItem>(LisReportItem.class));
  242 + if (lisReportItemList != null && lisReportItemList.size() > 0) {
  243 + CheckResponse check = new CheckResponse();
  244 + check.setModified(lisReportModel.getPublishTime());
  245 + check.setType(1);
  246 + check.setName(lisReportModel.getName());
  247 + check.setTitle(lisReportModel.getTitle());
  248 + check.setHospitalName("内丘人民医院");//新增医院名称字段赋值
  249 + if (lisReportModel.getAge() != null) {
  250 + check.setAge(lisReportModel.getAge());
  251 + }
  252 + check.setApplyDate(lisReportModel.getApplyTime());
  253 + check.setApplyDateStr(DateUtil.getyyyy_MM_dd(lisReportModel.getApplyTime()));
  254 + check.setCheckDept(lisReportModel.getApplyDept());
  255 + check.setDoctor(lisReportModel.getApplyDoctor());
  256 + check.setSex(lisReportModel.getSex());
  257 + check.setModified(lisReportModel.getModified());
  258 + List<CheckItemResponse> itemList = new ArrayList<>();
  259 + check.setItemList(itemList);
  260 + for (LisReportItem checkItem:lisReportItemList) {
  261 + CheckItemResponse item = new CheckItemResponse();
  262 + item.setName(checkItem.getName());
  263 + item.setCode(checkItem.getCode());
  264 + item.setRefer(checkItem.getRef());
  265 + if (StringUtils.isNotBlank(checkItem.getNumberResult())) {
  266 + item.setResult(checkItem.getNumberResult());
  267 + } else if (StringUtils.isNotBlank(checkItem.getCharResult())) {
  268 + item.setResult(checkItem.getCharResult());
  269 + } else {
  270 + item.setResult(checkItem.getResult());
  271 + }
  272 + item.setUnit(checkItem.getUnit());
  273 + item.setSpecial(checkItem.getFlag());
  274 + itemList.add(item);
  275 + }
  276 + result.add(check);
  277 + }
  278 + }
  279 +
  280 + }
  281 + }
  282 + DbUtils.closeQuietly(conn);
  283 + return result;
  284 + } catch (SQLException e) {
  285 + DbUtils.closeQuietly(conn);
  286 + e.printStackTrace();
  287 + return result;
  288 + }
  289 + }
  290 + return result;
  291 +
  292 + }
  293 +
  294 +
  295 +}
platform-operate-api/src/main/java/com/lyms/hospitalapi/dzfy/DzfyHisService.java View file @ a57805f
... ... @@ -449,8 +449,35 @@
449 449 return result;
450 450 }
451 451  
  452 + /**德州
  453 + * 获取患者使用过的所有就诊卡号
  454 + * @param cardNo 就诊卡号
  455 + * @return
  456 + */
  457 + public List<DzReplace> FindAllCradnos(String cardNo){
  458 + List<DzReplace> allcardnoList = new ArrayList<DzReplace>();
  459 + if (StringUtils.isNotBlank(cardNo)) {
  460 + Connection conn = com.lyms.hospitalapi.dzfy.ConnTools.makeHisConnection();
  461 + QueryRunner queryRunner = new QueryRunner(true);
  462 + String sql = "select id as ID from zlhis.v_patientinfo where cardno= '"+cardNo+"'";
  463 + try{
452 464  
  465 + List<DzReplace> hisDzReplaceList = queryRunner.query(conn,sql,new BeanListHandler<DzReplace>(DzReplace.class));
  466 + String jzksql="select 病人ID as ID,卡号 as Cardno,登记记录 as CombTime from zlhis.jzkghjl where B病人ID='"+hisDzReplaceList.get(0).getID()+"'";
453 467  
  468 + allcardnoList = queryRunner.query(conn,jzksql,new BeanListHandler<DzReplace>(DzReplace.class));
  469 +
  470 + }catch (Exception e){
  471 +
  472 + e.printStackTrace();
  473 +
  474 + }
  475 +
  476 +
  477 + }
  478 +
  479 + return allcardnoList;
  480 + }
454 481  
455 482  
456 483  
platform-operate-api/src/main/java/com/lyms/hospitalapi/pojo/DzReplace.java View file @ a57805f
  1 +package com.lyms.hospitalapi.pojo;
  2 +
  3 +/**
  4 + * Created by Administrator on 2017/8/25.
  5 + */
  6 +public class DzReplace {
  7 +
  8 + private String ID;//病人ID
  9 + private String Cardno;//就诊卡号
  10 + private String CombTime;//发卡时间
  11 +
  12 + public String getID() {
  13 + return ID;
  14 + }
  15 +
  16 + public void setID(String ID) {
  17 + this.ID = ID;
  18 + }
  19 +
  20 + public String getCardno() {
  21 + return Cardno;
  22 + }
  23 +
  24 + public void setCardno(String cardno) {
  25 + Cardno = cardno;
  26 + }
  27 +
  28 + public String getCombTime() {
  29 + return CombTime;
  30 + }
  31 +
  32 + public void setCombTime(String combTime) {
  33 + CombTime = combTime;
  34 + }
  35 +}
platform-operate-api/src/main/resources/config.properties View file @ a57805f
1 1 #短信中心url
2   -#center_base_url=https://weixin-push-save.healthbaby.com.cn
3   -center_base_url=https://push.stage.platform.healthbaby.com.cn
  2 +#center_base_url=http://sms.healthbaby.com.cn/v1/
  3 +center_base_url=http://sms.api.stage.platform.healthbaby.com.cn/v1/
4 4  
  5 +#德州代金券地址
  6 +djq_url=http://127.0.0.1:9090/his/insertDzfyDjq
  7 +
5 8 #区域平台访问短信中心的token
6 9 center_token=e0c56363-00d6-42ee-bbe0-23c553583062
7 10  
  11 +#\u5C71\u4E1C\u5FB7\u5DDE\u4F18\u60E0\u5238\u91D1\u989D_shanDong dezhou youHuiQuan jinE
  12 +shanDong_Dezhou_youHuiQuan_money_Number=500
  13 +
  14 +
  15 +
8 16 #His系统版本 0:未使用,1:桓台,2:新乐,3:青龙县医院,4:秦皇岛妇幼,5:抚宁妇幼, 6: 德州妇幼,7:南充中心医院
9 17 his_version=0
10 18  
  19 +#统计中心url
  20 +center_statistics_url=http://api.healthbaby.com.cn/
  21 +
11 22 #TCP服务器端口
12 23 nio_server_port=8000
13 24 #TCP服务器是否启动 1:true,2:false
14 25  
15 26  
16 27  
... ... @@ -15,18 +26,57 @@
15 26 #TCP客户端是否启动 1:true,2:false
16 27 nio_client_start=2
17 28  
18   -#全量把某个区域的数据同步到下面地址配置的环境中
  29 +#postser_url=http://api.meishengbb.com/initdata/reser
19 30 postser_url=http://devmmsapi.qinhuangdao.healthbaby.com.cn:18019/initdata/reser
20 31  
21   -#线上才配置,同步mysql数据到各个区域的地址,多个用逗号隔开
22   -sync_mysql_data_url=
23 32  
24 33 #区域统计地址
25 34 area_count_url=192.168.1.32:1521
26 35  
  36 +#同步mysql数据到各个区域的地址,多个用逗号隔开 如:https://area-qhd-api.healthbaby.com.cn:18019/syncMysqlData,https://area-dz-api.healthbaby.com.cn:12356/syncMysqlData
  37 +sync_mysql_data_url=
  38 +
27 39 #数据源相关配置
28 40 jdbc.0.driver=oracle.jdbc.driver.OracleDriver
29 41 jdbc.0.url=jdbc:oracle:thin:@192.168.1.32:1521:orcl
30 42 jdbc.0.username=LYMS_ODS
31 43 jdbc.0.password=Welcome1
  44 +
  45 +jdbc.1.driver=oracle.jdbc.driver.OracleDriver
  46 +jdbc.1.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl
  47 +jdbc.1.username=LYMS_ODS
  48 +jdbc.1.password=Welcome1
  49 +
  50 +jdbc.2.driver=oracle.jdbc.driver.OracleDriver
  51 +jdbc.2.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl
  52 +jdbc.2.username=LYMS_ODS
  53 +jdbc.2.password=Welcome1
  54 +
  55 +jdbc.3.driver=oracle.jdbc.driver.OracleDriver
  56 +jdbc.3.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl
  57 +jdbc.3.username=LYMS_ODS
  58 +jdbc.3.password=Welcome1
  59 +
  60 +jdbc.4.driver=oracle.jdbc.driver.OracleDriver
  61 +jdbc.4.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl
  62 +jdbc.4.username=LYMS_ODS
  63 +jdbc.4.password=Welcome1
  64 +
  65 +jdbc.5.driver=oracle.jdbc.driver.OracleDriver
  66 +jdbc.5.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl
  67 +jdbc.5.username=LYMS_ODS
  68 +jdbc.5.password=Welcome1
  69 +
  70 +jdbc.6.driver=oracle.jdbc.driver.OracleDriver
  71 +jdbc.6.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl
  72 +jdbc.6.username=LYMS_ODS
  73 +jdbc.6.password=Welcome1
  74 +
  75 +
  76 +jdbc.7.driver=oracle.jdbc.driver.OracleDriver
  77 +jdbc.7.url=jdbc:oracle:thin:@119.90.57.26:1522:orcl
  78 +jdbc.7.username=LYMS_ODS
  79 +jdbc.7.password=Welcome1
  80 +
  81 +platform.operate.api.validate.url=http://localhost:8080/