ViewController.java 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. package com.zskk.control;
  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.io.OutputStreamWriter;
  6. import java.net.MalformedURLException;
  7. import java.net.URL;
  8. import java.net.URLConnection;
  9. import java.text.ParseException;
  10. import java.text.SimpleDateFormat;
  11. import java.util.ArrayList;
  12. import java.util.Date;
  13. import java.util.HashMap;
  14. import java.util.List;
  15. import java.util.Map;
  16. import java.util.UUID;
  17. import java.util.regex.Matcher;
  18. import org.apache.commons.io.IOUtils;
  19. import org.apache.http.NameValuePair;
  20. import org.apache.http.client.ClientProtocolException;
  21. import org.apache.http.client.entity.UrlEncodedFormEntity;
  22. import org.apache.http.client.methods.CloseableHttpResponse;
  23. import org.apache.http.client.methods.HttpPost;
  24. import org.apache.http.impl.client.CloseableHttpClient;
  25. import org.apache.http.impl.client.HttpClients;
  26. import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
  27. import org.apache.http.message.BasicNameValuePair;
  28. import com.alibaba.fastjson.JSON;
  29. import com.jfinal.core.Controller;
  30. import com.jfinal.kit.HttpKit;
  31. import com.jfinal.plugin.activerecord.Db;
  32. import com.jfinal.plugin.activerecord.Record;
  33. import com.zskk.model.Doctors;
  34. import com.zskk.model.Exams;
  35. import com.zskk.model.PatientInfos;
  36. import com.zskk.model.Report;
  37. import com.zskk.model.Studies;
  38. import com.zskk.tools.XmlHelper;
  39. public class ViewController extends Controller {
  40. private static final PoolingHttpClientConnectionManager POOL_CM = new PoolingHttpClientConnectionManager();
  41. private static final String CAHR_CODE = "UTF-8";
  42. /**
  43. * 在被连接数据库执行sql语句
  44. */
  45. public void executeSql() {
  46. try {
  47. List<Record> d = Db.use("connected").find("select * from (select * from reportinfo order by REPORTDATE desc) where rownum <= 20");
  48. this.renderJson(d);
  49. } catch (Exception e) {
  50. // TODO: handle exception
  51. this.renderText(e.toString());
  52. }
  53. }
  54. /**
  55. * 在被连接数据库执行sql语句
  56. */
  57. public void test() {
  58. // Map<String, String> params = new HashMap<String, String>();
  59. // params.put("studyuid", "1.2.840.1424321.23532.201804071725566372");
  60. try {
  61. String cotentString = creatPostAndTransData("http://10.84.138.254:8080/rest/getReportByStudyuid");
  62. renderText(cotentString);
  63. } catch (Exception e) {
  64. // TODO: handle exception
  65. this.renderText(e.toString());
  66. }
  67. // testPost("http://10.84.138.254:8080/rest/getReportByStudyuid");
  68. }
  69. public void executeSql2() {
  70. try {
  71. String sqlString = this.getPara("str");
  72. List<Record> d = Db.use("connected").find(sqlString);
  73. this.renderJson(d);
  74. } catch (Exception e) {
  75. // TODO: handle exception
  76. this.renderText(e.toString());
  77. }
  78. }
  79. public void testTask() {
  80. List<Exams> exams;
  81. try {
  82. exams = Exams.dao.use("zskk").find("SELECT * FROM pacsonline.exams where exam_status=3 and institution_id=73090006 order by createdAt desc limit 50");
  83. for (Exams exams2 : exams) {
  84. Studies studies = Studies.dao.use("zskk").findById(exams2.getStudyId());
  85. // WeixinService wService = ServiceFactory.getService(WeixinService.class);
  86. // wService.requestWeixinQrcode(report.getId());
  87. Map headerString = new HashMap();
  88. headerString.put("Content-Type","text/xml");
  89. String content = HttpKit.post("http://10.84.138.254:8080/rest/getReportByStudyuid", getXmlInfo(studies.getStudyuid()), headerString);
  90. XmlHelper xmlHelper = XmlHelper.of(content);
  91. Report report = new Report().use("zskk");
  92. report.setId(creatId());
  93. report.setReportDatetime(parseStringToDate(xmlHelper.getString("//ReportBean[1]/reportdate")));
  94. if (xmlHelper.getString("//code[1]").equals("0")) {
  95. continue;
  96. }
  97. report.setImpression(xmlHelper.getString("//ReportBean[1]/impression"));
  98. report.setDescription(xmlHelper.getString("//ReportBean[1]/description"));
  99. report.setExamId(exams2.getId());
  100. report.setCreatedAt(new Date());
  101. report.setReportDoctorId(getDoctorIdByName(xmlHelper.getString("//ReportBean[1]/reportdoctor")));
  102. report.setReviewDoctorId(getDoctorIdByName(xmlHelper.getString("//ReportBean[1]/reviewdoctor")));
  103. report.setReviewDatetime(parseStringToDate(xmlHelper.getString("//ReportBean[1]/reportdate")));
  104. report.setConfirmDoctorId(getDoctorIdByName(xmlHelper.getString("//ReportBean[1]/reviewdoctor")));
  105. report.setConfirmDatetime(parseStringToDate(xmlHelper.getString("//ReportBean[1]/reportdate")));
  106. report.save();
  107. PatientInfos patientInfos = PatientInfos.dao.use("zskk").findById(exams2.getPatientId());
  108. patientInfos.setName(xmlHelper.getString("//ReportBean[1]/patientname"));
  109. patientInfos.setPhone(xmlHelper.getString("//ReportBean[1]/phone"));
  110. // patientInfos.setCardNum(record.getStr("IDCARD"));
  111. patientInfos.update();
  112. exams2.setExamStatus(9);
  113. exams2.update();
  114. }
  115. this.renderJson(exams);
  116. } catch (Exception e) {
  117. // TODO: handle exception
  118. this.renderText(e.toString());
  119. }
  120. }
  121. private String getXmlInfo(String studyuid) {
  122. StringBuilder sb = new StringBuilder();
  123. sb.append("<request>");
  124. sb.append("<studyuid>");
  125. sb.append(studyuid);
  126. sb.append("</studyuid>");
  127. sb.append("</request>");
  128. return sb.toString();
  129. }
  130. private Date parseStringToDate(String dateStr) {
  131. if (dateStr == null) {
  132. return new Date();
  133. }
  134. SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  135. Date date = null;
  136. try {
  137. date = sdf.parse(dateStr);
  138. } catch (ParseException e) {
  139. // TODO Auto-generated catch block
  140. e.printStackTrace();
  141. }
  142. return date;
  143. }
  144. private String creatId() {
  145. UUID id = UUID.randomUUID();
  146. String[] idd =id.toString().split("-");
  147. return idd[0]+idd[1]+idd[2];
  148. }
  149. private String getDoctorIdByName(String name) {
  150. if (name == null) {
  151. return "1";
  152. }
  153. Doctors doctors = Doctors.dao.use("zskk").findFirst("SELECT * FROM doctors where instr(?,realname) and institution_id=73090001",name);
  154. if (doctors == null) {
  155. return "1";
  156. }
  157. return doctors.getId();
  158. }
  159. private Date aaa(String timestr) {
  160. if (timestr == null) {
  161. return new Date();
  162. }
  163. SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  164. Date date = null;
  165. try {
  166. date = sdf.parse(timestr);
  167. } catch (ParseException e) {
  168. // TODO Auto-generated catch block
  169. e.printStackTrace();
  170. }
  171. return date;
  172. }
  173. private String doPost(String url,Map<String, String> params){
  174. StringBuilder apiLog = new StringBuilder();
  175. apiLog.append(url).append("\t").append("params:").append(JSON.toJSONString(params));
  176. CloseableHttpClient client = HttpClients.custom().setConnectionManager(POOL_CM).build();
  177. String content = null;
  178. try{
  179. HttpPost post = new HttpPost(url);
  180. if (params != null){
  181. List<NameValuePair> list = new ArrayList<NameValuePair>();
  182. for(Map.Entry<String, String> entry: params.entrySet()){
  183. list.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
  184. }
  185. post.setEntity(new UrlEncodedFormEntity(list, "UTF-8"));
  186. }
  187. post.addHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
  188. CloseableHttpResponse response = null;
  189. try{
  190. response = client.execute(post);
  191. int code = response.getStatusLine().getStatusCode();
  192. if (code == 200){
  193. content = IOUtils.toString(response.getEntity().getContent(), CAHR_CODE);
  194. }else{
  195. content = "{\"code\":" + code + "}";
  196. }
  197. }finally{
  198. if (response != null){
  199. response.close();
  200. }
  201. }
  202. }catch(Exception e){
  203. }
  204. return content;
  205. }
  206. public String creatPostAndTransData(String urlString) {
  207. Map headerString = new HashMap();
  208. headerString.put("Content-Type","text/xml");
  209. String respoString = HttpKit.post(urlString, getXmlInfo(), headerString);
  210. return respoString;
  211. }
  212. private String getXmlInfo() {
  213. StringBuilder sb = new StringBuilder();
  214. sb.append("<request>");
  215. sb.append("<studyuid>1.2.840.1424321.23532.201804071725566372</studyuid>");
  216. sb.append("</request>");
  217. return sb.toString();
  218. }
  219. }