parent
16232b76e6
commit
6772f8942a
47 changed files with 2224 additions and 358 deletions
Binary file not shown.
@ -0,0 +1,64 @@ |
|||||||
|
package com.ynxbd.push.config; |
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.springframework.amqp.core.*; |
||||||
|
import org.springframework.amqp.rabbit.annotation.EnableRabbit; |
||||||
|
import org.springframework.amqp.rabbit.core.RabbitTemplate; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.beans.factory.annotation.Qualifier; |
||||||
|
import org.springframework.context.annotation.Bean; |
||||||
|
import org.springframework.context.annotation.Configuration; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName RabbitMQConfig |
||||||
|
* @Description TODO |
||||||
|
* @date 2024/01/23 13:28:00 |
||||||
|
*/ |
||||||
|
@Configuration |
||||||
|
@EnableRabbit |
||||||
|
@Slf4j |
||||||
|
public class RabbitMQConfig { |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private RabbitTemplate rabbitTemplate; |
||||||
|
|
||||||
|
@Bean |
||||||
|
public AmqpTemplate amqpTemplate(){ |
||||||
|
rabbitTemplate.setEncoding("UTF-8"); |
||||||
|
rabbitTemplate.setMandatory(true); |
||||||
|
rabbitTemplate.setReturnCallback(((message, replyCode, replyText, exchange, routingKey) -> { |
||||||
|
String correlationId = message.getMessageProperties().getCorrelationId(); |
||||||
|
log.info("消息:{} 发送失败, 应答码:{} 原因:{} 交换机: {} 路由键: {}", correlationId, replyCode, replyText, exchange, routingKey); |
||||||
|
})); |
||||||
|
//开启消息确认 yml 需要配置 publisher-returns: true
|
||||||
|
rabbitTemplate.setConfirmCallback(((correlationData, ack, cause) ->{ |
||||||
|
if (ack) { |
||||||
|
assert correlationData != null; |
||||||
|
log.info("消息发送到交换机成功,correlationId:{}",correlationData.getId()); |
||||||
|
} else { |
||||||
|
log.info("消息发送到交换机失败,原因:{}",cause); |
||||||
|
} |
||||||
|
} )); |
||||||
|
return rabbitTemplate; |
||||||
|
} |
||||||
|
/** |
||||||
|
* 声明直连交换机 支持持久化. |
||||||
|
* @return the exchange |
||||||
|
*/ |
||||||
|
@Bean("wxPushExchange") |
||||||
|
public Exchange wxPushExchange() { |
||||||
|
return ExchangeBuilder.directExchange("wxPushExchange").durable(true).build(); |
||||||
|
} |
||||||
|
|
||||||
|
@Bean("wxPushQueue") |
||||||
|
public Queue wxPushQueue(){ |
||||||
|
return new Queue("wxPushQueue", true, true, true); |
||||||
|
} |
||||||
|
|
||||||
|
@Bean |
||||||
|
public Binding wxPushBinding(){ |
||||||
|
return BindingBuilder.bind(wxPushQueue()).to(wxPushExchange()).with("wxPushRouting").noargs(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
package com.ynxbd.push.config; |
||||||
|
|
||||||
|
import org.apache.catalina.connector.Connector; |
||||||
|
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; |
||||||
|
import org.springframework.context.annotation.Bean; |
||||||
|
import org.springframework.context.annotation.Configuration; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName TomcatConfig |
||||||
|
* @Description TODO |
||||||
|
* @date 2023/10/12 10:27:00 |
||||||
|
*/ |
||||||
|
@Configuration |
||||||
|
public class TomcatConfig { |
||||||
|
@Bean |
||||||
|
public TomcatServletWebServerFactory webServerFactory() { |
||||||
|
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(); |
||||||
|
factory.addConnectorCustomizers((Connector connector) -> { |
||||||
|
connector.setProperty("relaxedPathChars", "\"<>[\\]^`{|}"); |
||||||
|
connector.setProperty("relaxedQueryChars", "\"<>[\\]^`{|}"); |
||||||
|
}); |
||||||
|
return factory; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,30 @@ |
|||||||
|
package com.ynxbd.push.controller.BI; |
||||||
|
|
||||||
|
import com.ynxbd.push.pushJob.BI.BiPush; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName BiController |
||||||
|
* @Description description |
||||||
|
* @date 2022/9/7 14:26 |
||||||
|
*/ |
||||||
|
@Slf4j |
||||||
|
@RestController |
||||||
|
@RequestMapping("Bi") |
||||||
|
public class BiController { |
||||||
|
@GetMapping("workLoadPush") |
||||||
|
public String workLoadPush(String openId) { |
||||||
|
try { |
||||||
|
BiPush.runJob(openId); |
||||||
|
return "Success"; |
||||||
|
} |
||||||
|
catch (Exception e){ |
||||||
|
log.error(e.toString()); |
||||||
|
return e.getMessage(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,146 @@ |
|||||||
|
package com.ynxbd.push.controller; |
||||||
|
|
||||||
|
import com.ynxbd.push.entity.type.MessageTypeEnum; |
||||||
|
import com.ynxbd.push.entity.response.ResponseResult; |
||||||
|
import com.ynxbd.push.helper.BusinessHelper; |
||||||
|
import com.ynxbd.push.rabbit.send.RabbitSender; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.stereotype.Controller; |
||||||
|
import org.springframework.web.bind.annotation.*; |
||||||
|
import weixin.popular.bean.message.MessageSendResult; |
||||||
|
|
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName BusinessController |
||||||
|
* @Description 发送lis报告单结果推送 |
||||||
|
* @date 2021/12/6 3:23 下午 |
||||||
|
*/ |
||||||
|
@Controller |
||||||
|
@Slf4j |
||||||
|
@RequestMapping(value = "business") |
||||||
|
public class BusinessController { |
||||||
|
@Autowired |
||||||
|
private RabbitSender rabbitSender; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping(value = "report") |
||||||
|
@ResponseBody |
||||||
|
public MessageSendResult reportTip(String organizeName, String patientId,String idCard, String reportId, String itemName, String reportTime, String patientName,String sex, String age, String applyDept, String applyDoctor) { |
||||||
|
log.info("进入接口-[检验检查报告通知]organizeName-{},patientId-{},idCard-{},reportId-{}, itemName-{},reportTime-{},patientName-{},sex-{},age-{},applyDept-{},applyDoctor-{}",organizeName,patientId,idCard,reportId,itemName,reportTime,patientName,sex,age,applyDept,applyDoctor); |
||||||
|
MessageSendResult check = BusinessHelper.ParamsCheck(organizeName,patientId,idCard,null); |
||||||
|
if(!check.getErrcode().equals("0")){ |
||||||
|
return check; |
||||||
|
} |
||||||
|
Map<String,String> message = new HashMap<>(); |
||||||
|
message.put("tip", MessageTypeEnum.REPORT_TIP.CODE); |
||||||
|
message.put("organizeName",organizeName); |
||||||
|
message.put("patientId",patientId); |
||||||
|
message.put("idCard",idCard); |
||||||
|
message.put("reportId",reportId); |
||||||
|
message.put("itemName",itemName); |
||||||
|
message.put("reportTime",reportTime); |
||||||
|
message.put("patientName",patientName); |
||||||
|
message.put("sex",sex); |
||||||
|
message.put("age",age); |
||||||
|
message.put("applyDept",applyDept); |
||||||
|
message.put("applyDoctor",applyDoctor); |
||||||
|
rabbitSender.TipSend(message); |
||||||
|
return ResponseResult.JOIN_QUEUE.toMessResult(); |
||||||
|
} |
||||||
|
|
||||||
|
@GetMapping(value = "queue") |
||||||
|
@ResponseBody |
||||||
|
public MessageSendResult queueTip(String organizeName, String patientId, String idCard, String patientName, String deptName, String doctorName, String currentNumber, String selfNumber, String waitNumber) { |
||||||
|
log.info("进入接口-[排队叫号提醒]organizeName-{},patientId-{},idCard-{},patientName-{},deptName-{},doctorName-{},currentNumber-{},selfNumber-{},waitNumber-{}", organizeName, patientId, idCard, patientName, deptName, doctorName, currentNumber, selfNumber, waitNumber); |
||||||
|
MessageSendResult check = BusinessHelper.ParamsCheck(organizeName, patientId, idCard,null); |
||||||
|
if (!check.getErrcode().equals("0")) { |
||||||
|
return check; |
||||||
|
} |
||||||
|
Map<String,String> message = new HashMap<>(); |
||||||
|
message.put("tip",MessageTypeEnum.QUEUE_TIP.CODE); |
||||||
|
message.put("organizeName", organizeName); |
||||||
|
message.put("patientId", patientId); |
||||||
|
message.put("idCard", idCard); |
||||||
|
message.put("patientName", patientName); |
||||||
|
message.put("deptName", deptName); |
||||||
|
message.put("doctorName", doctorName); |
||||||
|
message.put("currentNumber", currentNumber); |
||||||
|
message.put("selfNumber", selfNumber); |
||||||
|
message.put("waitNumber", waitNumber); |
||||||
|
rabbitSender.TipSend(message); |
||||||
|
return ResponseResult.JOIN_QUEUE.toMessResult(); |
||||||
|
} |
||||||
|
|
||||||
|
@PostMapping("medicalRecord") |
||||||
|
@ResponseBody |
||||||
|
public MessageSendResult medicalRecord(String organizeName, String patientId, String applyId) { |
||||||
|
log.info("进入接口-[病历复印] 病历复印可付费通知(医院通知)organizeName-{}, patientId-{} , applyId-{}",organizeName,patientId,applyId); |
||||||
|
MessageSendResult check = BusinessHelper.ParamsCheck(organizeName, patientId, null,null); |
||||||
|
if (!check.getErrcode().equals("0")) { |
||||||
|
return check; |
||||||
|
} |
||||||
|
Map<String,String> message = new HashMap<>(); |
||||||
|
message.put("tip",MessageTypeEnum.MEDICAL_RECORD.CODE); |
||||||
|
message.put("organizeName", organizeName); |
||||||
|
message.put("patientId", patientId); |
||||||
|
message.put("applyId",applyId); |
||||||
|
rabbitSender.TipSend(message); |
||||||
|
return ResponseResult.JOIN_QUEUE.toMessResult(); |
||||||
|
} |
||||||
|
|
||||||
|
@PostMapping("treatPlan") |
||||||
|
@ResponseBody |
||||||
|
public MessageSendResult treatPlan(String title, String name, String planTime,String content,String patientId, String organizeName,String remark,String url) { |
||||||
|
log.info("进入接口-[诊疗计划提醒] organizeName-{}, patientId-{} , title-{},name-{},planTime-{},content-{},remark-{},url-{}",organizeName,patientId,title,name,planTime,content,remark,url); |
||||||
|
MessageSendResult check = BusinessHelper.ParamsCheck(organizeName, patientId, null,null); |
||||||
|
if (!check.getErrcode().equals("0")) { |
||||||
|
return check; |
||||||
|
} |
||||||
|
if(name==null||planTime==null||content==null){ |
||||||
|
log.info("[诊疗计划提醒] 必填字段为空,name-{},planTime-{},content-{}",name,planTime,content); |
||||||
|
return ResponseResult.PARAMETER_IS_NULL.toMessResult(); |
||||||
|
} |
||||||
|
Map<String,String> message = new HashMap<>(); |
||||||
|
message.put("tip",MessageTypeEnum.TREAT_PLAN.CODE); |
||||||
|
message.put("title",title==null?"":title); |
||||||
|
message.put("name",name); |
||||||
|
message.put("patientId", patientId); |
||||||
|
message.put("organizeName", organizeName); |
||||||
|
message.put("planTime",planTime); |
||||||
|
message.put("content",content); |
||||||
|
message.put("url",url==null?"":url); |
||||||
|
message.put("remark",remark==null?"":remark); |
||||||
|
rabbitSender.TipSend(message); |
||||||
|
return ResponseResult.JOIN_QUEUE.toMessResult(); |
||||||
|
} |
||||||
|
|
||||||
|
@PostMapping("universal") |
||||||
|
@ResponseBody |
||||||
|
public MessageSendResult universal(String content,String patientId, String url, String organizeName, String IdCard,String doctorCode){ |
||||||
|
log.info("进入接口-[通用推送接口]-绑定通知,content-{},patientId-{},url-{},organizeName-{},IdCard-{},doctorCode-{}",content,patientId,url,organizeName,IdCard,doctorCode); |
||||||
|
MessageSendResult check = BusinessHelper.ParamsCheck(organizeName, patientId, null,doctorCode); |
||||||
|
if (!check.getErrcode().equals("0")) { |
||||||
|
return check; |
||||||
|
} |
||||||
|
if(content==null){ |
||||||
|
log.info("[通用推送接口]-绑定通知, 必填字段为空"); |
||||||
|
return ResponseResult.PARAMETER_IS_NULL.toMessResult(); |
||||||
|
} |
||||||
|
Map<String,String> message = new HashMap<>(); |
||||||
|
message.put("tip",MessageTypeEnum.UNIVERSAL.CODE); |
||||||
|
message.put("organizeName", organizeName); |
||||||
|
message.put("patientId", patientId); |
||||||
|
message.put("doctorCode",doctorCode); |
||||||
|
message.put("IdCard",IdCard); |
||||||
|
message.put("content",content); |
||||||
|
message.put("url",url==null?"":url); |
||||||
|
rabbitSender.TipSend(message); |
||||||
|
return ResponseResult.JOIN_QUEUE.toMessResult(); |
||||||
|
} |
||||||
|
} |
@ -1,66 +0,0 @@ |
|||||||
package com.ynxbd.push.controller; |
|
||||||
|
|
||||||
import com.ynxbd.push.config.IniConfig; |
|
||||||
import com.ynxbd.push.entity.tencent.SendMessageTemplate; |
|
||||||
import com.ynxbd.push.entity.tencent.WeChatResponse; |
|
||||||
import com.ynxbd.push.helper.DesEncryptHelper; |
|
||||||
import com.ynxbd.push.helper.MessageApiHelper; |
|
||||||
import org.apache.http.Header; |
|
||||||
import org.apache.http.client.methods.HttpUriRequest; |
|
||||||
import org.apache.http.client.methods.RequestBuilder; |
|
||||||
import org.springframework.stereotype.Controller; |
|
||||||
import org.springframework.web.bind.annotation.GetMapping; |
|
||||||
import org.springframework.web.bind.annotation.ResponseBody; |
|
||||||
import weixin.popular.bean.message.MessageSendResult; |
|
||||||
import weixin.popular.client.LocalHttpClient; |
|
||||||
|
|
||||||
import java.io.IOException; |
|
||||||
|
|
||||||
/** |
|
||||||
* @author 李进才 |
|
||||||
* @ClassName ReportController |
|
||||||
* @Description 发送lis报告单结果推送 |
|
||||||
* @date 2021/12/6 3:23 下午 |
|
||||||
*/ |
|
||||||
@Controller |
|
||||||
public class ReportController { |
|
||||||
|
|
||||||
public static final String NOT_FIND_DATA = "40004"; |
|
||||||
protected static Header jsonHeader; |
|
||||||
|
|
||||||
@GetMapping(value = "Report") |
|
||||||
@ResponseBody |
|
||||||
public MessageSendResult ReportTip(String patientId, String itemName, String collectTime, String patientName) throws IOException { |
|
||||||
String reportTemplateId = IniConfig.getInstance("lisReportTemplateId"); |
|
||||||
String weChatUrl = IniConfig.getInstance("weChatUrl"); |
|
||||||
HttpUriRequest httpUriRequest = RequestBuilder |
|
||||||
.get() |
|
||||||
.setHeader(jsonHeader) |
|
||||||
.setUri(new StringBuilder() |
|
||||||
.append(weChatUrl) |
|
||||||
.append("patient/getOpenIdsByPatientId.do").toString()) |
|
||||||
.addParameter("patientId", patientId) |
|
||||||
.addParameter("algorithm", "des") |
|
||||||
.addParameter("isEncryptComma", "false") |
|
||||||
.addParameter("isLastBind", "true") |
|
||||||
.build(); |
|
||||||
WeChatResponse weChatResponse = LocalHttpClient.executeJsonResult(httpUriRequest, WeChatResponse.class); |
|
||||||
if (weChatResponse.getData() == null) { |
|
||||||
MessageSendResult messageSendResult = new MessageSendResult(); |
|
||||||
messageSendResult.setErrcode(NOT_FIND_DATA); |
|
||||||
messageSendResult.setMsg_status("NOT_FIND_DATA"); |
|
||||||
return messageSendResult; |
|
||||||
} |
|
||||||
String openId = DesEncryptHelper.deCode(weChatResponse.getData()); |
|
||||||
SendMessageTemplate sendMessageTemplate = SendMessageTemplate.builder() |
|
||||||
.template_id(reportTemplateId) |
|
||||||
.keyword1(itemName) |
|
||||||
.keyword2(patientName) |
|
||||||
.keyword3(collectTime) |
|
||||||
.first("您的检验报告结果已经出来了") |
|
||||||
.openId(openId) |
|
||||||
.url(new StringBuilder().append(weChatUrl).append("web/all-result.html#/lis-report-inspect").toString()) |
|
||||||
.build(); |
|
||||||
return MessageApiHelper.templateMessageSend(sendMessageTemplate); |
|
||||||
} |
|
||||||
} |
|
@ -0,0 +1,46 @@ |
|||||||
|
package com.ynxbd.push.entity.response; |
||||||
|
|
||||||
|
import weixin.popular.bean.message.MessageSendResult; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName ResponseResult |
||||||
|
* @Description TODO |
||||||
|
* @date 2023/07/04 14:02:00 |
||||||
|
*/ |
||||||
|
public enum ResponseResult { |
||||||
|
|
||||||
|
JOIN_QUEUE("0","已经接收消息,进入处理程序"), |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ORGANIZE_IS_NULL("50001","组织机构代码无效"), |
||||||
|
|
||||||
|
PARAMETER_IS_NULL("50003","参数无效"), |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DOCTOR_NOT_BIND("50004","医生未绑定"), |
||||||
|
|
||||||
|
CODE_INVALIDATION("40001","token无效"), |
||||||
|
|
||||||
|
NOT_FIND_DATA("40004","未找到数据"), |
||||||
|
CODE_EXPIRED("42001","token过期"), |
||||||
|
|
||||||
|
MESSAGE_RESULT_ERROR_CODE("4002","结果返回错误"); |
||||||
|
|
||||||
|
public final String ERR_CODE; |
||||||
|
public final String ERR_MSG; |
||||||
|
|
||||||
|
ResponseResult(String errCode,String errMsg){ |
||||||
|
this.ERR_CODE = errCode; |
||||||
|
this.ERR_MSG = errMsg; |
||||||
|
} |
||||||
|
|
||||||
|
public MessageSendResult toMessResult(){ |
||||||
|
MessageSendResult result = new MessageSendResult(); |
||||||
|
result.setErrmsg(this.ERR_MSG); |
||||||
|
result.setErrcode(this.ERR_CODE); |
||||||
|
return result; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,17 @@ |
|||||||
|
package com.ynxbd.push.entity.tencent; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName AllDoctorCode |
||||||
|
* @Description TODO |
||||||
|
* @date 2023/08/03 11:35:00 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class AllDoctorCode { |
||||||
|
private String doctCode; |
||||||
|
private List<String> openIds; |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
package com.ynxbd.push.entity.tencent; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName WeChatAllDoctResponse |
||||||
|
* @Description TODO |
||||||
|
* @date 2023/08/03 10:30:00 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class WeChatAllDoctorResponse { |
||||||
|
private String code; |
||||||
|
private List<AllDoctorCode> data; |
||||||
|
private String message; |
||||||
|
private Boolean success; |
||||||
|
} |
@ -0,0 +1,28 @@ |
|||||||
|
package com.ynxbd.push.entity.type; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName MessageTypeEnum |
||||||
|
* @Description TODO |
||||||
|
* @date 2023/07/04 14:39:00 |
||||||
|
*/ |
||||||
|
public enum MessageTypeEnum { |
||||||
|
|
||||||
|
REPORT_TIP("ReportTip","检验检查报告通知"), |
||||||
|
QUEUE_TIP("QueueTip","排队叫号提醒"), |
||||||
|
MEDICAL_RECORD("MedicalRecord","病历复印"), |
||||||
|
TREAT_PLAN("treatPlan","诊疗计划提醒"), |
||||||
|
|
||||||
|
UNIVERSAL("Universal","通用模版推送-绑定通知"); |
||||||
|
|
||||||
|
|
||||||
|
public final String CODE; |
||||||
|
public final String MESSAGE; |
||||||
|
|
||||||
|
|
||||||
|
MessageTypeEnum(String code,String message){ |
||||||
|
this.CODE=code; |
||||||
|
this.MESSAGE = message; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,30 @@ |
|||||||
|
package com.ynxbd.push.entity.type; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName OrganizeTypeEnum |
||||||
|
* @Description TODO |
||||||
|
* @date 2023/07/04 15:20:00 |
||||||
|
*/ |
||||||
|
public enum OrganizeTypeEnum { |
||||||
|
|
||||||
|
HIS("AE8EB2249EDD9093","xbd_his","公司内部对接时使用代码,包含pacs等"), |
||||||
|
|
||||||
|
|
||||||
|
WEI_MAI("D9113BC820E4C6FF","微脉对接诊疗计划提醒","芒市妇幼微脉对接诊疗计划提醒"), |
||||||
|
|
||||||
|
CVMS("D7FAEFB46E8F5FEF","危机值管理系统","新八达危机值管理系统"), |
||||||
|
|
||||||
|
HONGHE01("","深圳市理邦精密仪器股份有限公司","智慧产科系统"); |
||||||
|
|
||||||
|
public final String CODE; |
||||||
|
public final String NAME; |
||||||
|
|
||||||
|
public final String DESCRIPTION; |
||||||
|
|
||||||
|
OrganizeTypeEnum(String code,String name,String description){ |
||||||
|
this.CODE = code; |
||||||
|
this.NAME = name; |
||||||
|
this.DESCRIPTION = description; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,16 @@ |
|||||||
|
package com.ynxbd.push.entity.xbd.his; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName WorkLoad |
||||||
|
* @Description description |
||||||
|
* @date 2022/8/3 15:06 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class HIsWorkLoad { |
||||||
|
private String doc_code; |
||||||
|
private String doc_name; |
||||||
|
private String description; |
||||||
|
} |
@ -0,0 +1,16 @@ |
|||||||
|
package com.ynxbd.push.entity.xbd.wx; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName WorkLoad |
||||||
|
* @Description description |
||||||
|
* @date 2022/8/3 15:28 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class WorkLoad { |
||||||
|
private String doctCode; |
||||||
|
private String token; |
||||||
|
private String openid; |
||||||
|
} |
@ -0,0 +1,17 @@ |
|||||||
|
package com.ynxbd.push.entity.xbd.wx; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName WorkLoad |
||||||
|
* @Description description |
||||||
|
* @date 2022/8/3 15:26 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class WorkLoadData { |
||||||
|
private String link; |
||||||
|
private List<WorkLoad> list; |
||||||
|
} |
@ -0,0 +1,16 @@ |
|||||||
|
package com.ynxbd.push.entity.xbd.wx; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName WorkLoadResponse |
||||||
|
* @Description description |
||||||
|
* @date 2022/8/3 15:32 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class WorkLoadResponse { |
||||||
|
private String code; |
||||||
|
private String message; |
||||||
|
private WorkLoadData data; |
||||||
|
} |
@ -0,0 +1,79 @@ |
|||||||
|
package com.ynxbd.push.helper; |
||||||
|
|
||||||
|
|
||||||
|
import org.apache.commons.codec.binary.Hex; |
||||||
|
|
||||||
|
import javax.crypto.Cipher; |
||||||
|
import javax.crypto.spec.IvParameterSpec; |
||||||
|
import javax.crypto.spec.SecretKeySpec; |
||||||
|
import java.nio.charset.StandardCharsets; |
||||||
|
|
||||||
|
/** |
||||||
|
* AES加密算法 |
||||||
|
*/ |
||||||
|
public class AesCodeHelper { |
||||||
|
|
||||||
|
private final static String KEY = "ynxbdysdssjtwrin"; |
||||||
|
|
||||||
|
private final static String IV = "ynxbdqsdsbjtwrin"; |
||||||
|
|
||||||
|
public static String enCode(String data) { |
||||||
|
if (data == null) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
return encryptHex(data, KEY, IV); |
||||||
|
} |
||||||
|
|
||||||
|
public static String deCode(String data) { |
||||||
|
if (data == null) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
return decryptHex(data, KEY, IV); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public static String decryptHex(String data, String key, String iv) { |
||||||
|
try { |
||||||
|
SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "AES"); |
||||||
|
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); |
||||||
|
cipher.init(Cipher.DECRYPT_MODE, secretKey, new IvParameterSpec(iv.getBytes(StandardCharsets.UTF_8))); |
||||||
|
|
||||||
|
return new String(cipher.doFinal(Hex.decodeHex(data.toCharArray()))); |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Aes加密算法( Hex) |
||||||
|
* |
||||||
|
* @param data 加密数据 |
||||||
|
* @param key 密钥(16位) |
||||||
|
* @param iv 密钥偏移量 |
||||||
|
* @return 加密后的数据 |
||||||
|
*/ |
||||||
|
public static String encryptHex(String data, String key, String iv) { |
||||||
|
try { |
||||||
|
if (key == null || key.length() != 16) { |
||||||
|
throw new Exception("Key长度不是16位"); |
||||||
|
} |
||||||
|
|
||||||
|
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); //"算法/模式/补码方式"
|
||||||
|
cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "AES"), new IvParameterSpec(iv.getBytes())); |
||||||
|
byte[] encrypted = cipher.doFinal(data.getBytes()); |
||||||
|
String hexPass = Hex.encodeHexString(encrypted); |
||||||
|
return hexPass.toUpperCase(); |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// public static void main(String[] args) throws Exception {
|
||||||
|
// String a = decryptHex("", "wsqysqsdssjtwmaa", "xbzynydykkxxkkbb");
|
||||||
|
// System.out.println(a);
|
||||||
|
// }
|
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
package com.ynxbd.push.helper; |
||||||
|
|
||||||
|
import com.ynxbd.push.entity.response.ResponseResult; |
||||||
|
import weixin.popular.bean.message.MessageSendResult; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName BusinessHelper |
||||||
|
* @Description TODO |
||||||
|
* @date 2023/05/11 11:54:00 |
||||||
|
*/ |
||||||
|
public class BusinessHelper { |
||||||
|
|
||||||
|
public static MessageSendResult ParamsCheck(String organizeName ,String patientId,String idCard,String doctorCode ) { |
||||||
|
MessageSendResult messageSendResult = new MessageSendResult(); |
||||||
|
if(patientId==null&&idCard==null&&doctorCode==null){ |
||||||
|
return ResponseResult.PARAMETER_IS_NULL.toMessResult(); |
||||||
|
} |
||||||
|
if(DesEncryptHelper.deCode(organizeName).equals("error:null")){ |
||||||
|
return ResponseResult.ORGANIZE_IS_NULL.toMessResult(); |
||||||
|
} |
||||||
|
messageSendResult.setErrcode("0"); |
||||||
|
return messageSendResult; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,804 @@ |
|||||||
|
package com.ynxbd.push.helper; |
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON; |
||||||
|
import com.alibaba.fastjson.JSONArray; |
||||||
|
import com.alibaba.fastjson.JSONObject; |
||||||
|
import com.ynxbd.push.entity.xbd.his.HIsWorkLoad; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.NoArgsConstructor; |
||||||
|
import lombok.ToString; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
|
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
@Slf4j |
||||||
|
public class HisResultFormat { |
||||||
|
|
||||||
|
@Data |
||||||
|
@NoArgsConstructor |
||||||
|
@ToString |
||||||
|
public static class TestDoctor { |
||||||
|
private String docCode; |
||||||
|
private String docName; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public static void main(String[] args) { |
||||||
|
String json = "{\n" + |
||||||
|
" \"Code\": \"200\",\n" + |
||||||
|
" \"Msg\": \"SUCCESS\",\n" + |
||||||
|
" \"Data\": [\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0002\",\n" + |
||||||
|
" \"doc_name\": \"李卫\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0003\",\n" + |
||||||
|
" \"doc_name\": \"杨淑\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0005\",\n" + |
||||||
|
" \"doc_name\": \"马晓琳\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0011\",\n" + |
||||||
|
" \"doc_name\": \"蔡连勇\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0017\",\n" + |
||||||
|
" \"doc_name\": \"江为民\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0019\",\n" + |
||||||
|
" \"doc_name\": \"何丽芬\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0023\",\n" + |
||||||
|
" \"doc_name\": \"龙红\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0030\",\n" + |
||||||
|
" \"doc_name\": \"向梅\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0036\",\n" + |
||||||
|
" \"doc_name\": \"杨聪\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0044\",\n" + |
||||||
|
" \"doc_name\": \"汤进伟\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0050\",\n" + |
||||||
|
" \"doc_name\": \"王跃强\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0054\",\n" + |
||||||
|
" \"doc_name\": \"刘炜\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0059\",\n" + |
||||||
|
" \"doc_name\": \"马刚\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0062\",\n" + |
||||||
|
" \"doc_name\": \"普伦庆\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0066\",\n" + |
||||||
|
" \"doc_name\": \"佘艳军\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0068\",\n" + |
||||||
|
" \"doc_name\": \"孔洁\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0069\",\n" + |
||||||
|
" \"doc_name\": \"赵悦涛\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0072\",\n" + |
||||||
|
" \"doc_name\": \"崔金鹏\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0073\",\n" + |
||||||
|
" \"doc_name\": \"李艳华\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0074\",\n" + |
||||||
|
" \"doc_name\": \"王俊青\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0114\",\n" + |
||||||
|
" \"doc_name\": \"霍松\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0134\",\n" + |
||||||
|
" \"doc_name\": \"丁俊\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0151\",\n" + |
||||||
|
" \"doc_name\": \"马锦霞\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0156\",\n" + |
||||||
|
" \"doc_name\": \"陈朝明\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"018 \",\n" + |
||||||
|
" \"doc_name\": \"张娜\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0194\",\n" + |
||||||
|
" \"doc_name\": \"钟兴伟\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0199\",\n" + |
||||||
|
" \"doc_name\": \"沈曼\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0208\",\n" + |
||||||
|
" \"doc_name\": \"马韬\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0226\",\n" + |
||||||
|
" \"doc_name\": \"卢俊\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0241\",\n" + |
||||||
|
" \"doc_name\": \"蒙艳\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0248\",\n" + |
||||||
|
" \"doc_name\": \"王璟\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0255\",\n" + |
||||||
|
" \"doc_name\": \"赵德斌\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0269\",\n" + |
||||||
|
" \"doc_name\": \"普福顺\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0469\",\n" + |
||||||
|
" \"doc_name\": \"谭永兴\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0473\",\n" + |
||||||
|
" \"doc_name\": \"白云辉\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0475\",\n" + |
||||||
|
" \"doc_name\": \"苗蔚\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0705\",\n" + |
||||||
|
" \"doc_name\": \"吉惠\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0731\",\n" + |
||||||
|
" \"doc_name\": \"徐俊\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0805\",\n" + |
||||||
|
" \"doc_name\": \"王长林\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0808\",\n" + |
||||||
|
" \"doc_name\": \"董艳玲\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1025\",\n" + |
||||||
|
" \"doc_name\": \"代建能\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1118\",\n" + |
||||||
|
" \"doc_name\": \"赵悦涛*\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1135\",\n" + |
||||||
|
" \"doc_name\": \"李桂芬\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1233\",\n" + |
||||||
|
" \"doc_name\": \"毕燕\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1251\",\n" + |
||||||
|
" \"doc_name\": \"普虹丽(康\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1349\",\n" + |
||||||
|
" \"doc_name\": \"蒋俊**\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1460\",\n" + |
||||||
|
" \"doc_name\": \"赵艳红\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1462\",\n" + |
||||||
|
" \"doc_name\": \"赵林\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1491\",\n" + |
||||||
|
" \"doc_name\": \"白建平\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1618\",\n" + |
||||||
|
" \"doc_name\": \"王蕾\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1669\",\n" + |
||||||
|
" \"doc_name\": \"胡琳\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1688\",\n" + |
||||||
|
" \"doc_name\": \"张丽红*\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1737\",\n" + |
||||||
|
" \"doc_name\": \"沈海荣\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1845\",\n" + |
||||||
|
" \"doc_name\": \"陈淑媛*\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1951\",\n" + |
||||||
|
" \"doc_name\": \"赵永贵*\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2079\",\n" + |
||||||
|
" \"doc_name\": \"田劲猛*\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2280\",\n" + |
||||||
|
" \"doc_name\": \"赵永贵.\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2337\",\n" + |
||||||
|
" \"doc_name\": \"郭鹏\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2390\",\n" + |
||||||
|
" \"doc_name\": \"普兴林\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2423\",\n" + |
||||||
|
" \"doc_name\": \"魏进云\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2495\",\n" + |
||||||
|
" \"doc_name\": \"李仁伟\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2641\",\n" + |
||||||
|
" \"doc_name\": \"赵青\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2676\",\n" + |
||||||
|
" \"doc_name\": \"袁乔英\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2687\",\n" + |
||||||
|
" \"doc_name\": \"杨金有\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2747\",\n" + |
||||||
|
" \"doc_name\": \"何黎\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2754\",\n" + |
||||||
|
" \"doc_name\": \"李雪梅.\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2784\",\n" + |
||||||
|
" \"doc_name\": \"张艳.\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2959\",\n" + |
||||||
|
" \"doc_name\": \"申永林*\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"3553\",\n" + |
||||||
|
" \"doc_name\": \"孔洁.\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"3717\",\n" + |
||||||
|
" \"doc_name\": \"王俊青.*\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"3764\",\n" + |
||||||
|
" \"doc_name\": \"蒙艳.\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"4041\",\n" + |
||||||
|
" \"doc_name\": \"李始秀\",\n" + |
||||||
|
" \"titleName\": \"科主任\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0274\",\n" + |
||||||
|
" \"doc_name\": \"刘翠\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0278\",\n" + |
||||||
|
" \"doc_name\": \"龙莉\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0297\",\n" + |
||||||
|
" \"doc_name\": \"毛颖懿\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0313\",\n" + |
||||||
|
" \"doc_name\": \"王雯秀\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0314\",\n" + |
||||||
|
" \"doc_name\": \"杨金凤\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0315\",\n" + |
||||||
|
" \"doc_name\": \"白云芬\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0323\",\n" + |
||||||
|
" \"doc_name\": \"骆钰玺\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0333\",\n" + |
||||||
|
" \"doc_name\": \"袁慧\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0339\",\n" + |
||||||
|
" \"doc_name\": \"王雪华\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0355\",\n" + |
||||||
|
" \"doc_name\": \"卢宝丽\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0361\",\n" + |
||||||
|
" \"doc_name\": \"胡海燕\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0381\",\n" + |
||||||
|
" \"doc_name\": \"高云丽\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0393\",\n" + |
||||||
|
" \"doc_name\": \"柏雪\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0477\",\n" + |
||||||
|
" \"doc_name\": \"张翠兰\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0491\",\n" + |
||||||
|
" \"doc_name\": \"赵文娟\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0521\",\n" + |
||||||
|
" \"doc_name\": \"钱润润\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0604\",\n" + |
||||||
|
" \"doc_name\": \"何劲梅\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0608\",\n" + |
||||||
|
" \"doc_name\": \"官丽亚\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"0789\",\n" + |
||||||
|
" \"doc_name\": \"沈成荣\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1286\",\n" + |
||||||
|
" \"doc_name\": \"黄梦诗\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1423\",\n" + |
||||||
|
" \"doc_name\": \"高姝\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1453\",\n" + |
||||||
|
" \"doc_name\": \"高丽萍\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1687\",\n" + |
||||||
|
" \"doc_name\": \"邹婷\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"1985\",\n" + |
||||||
|
" \"doc_name\": \"王迪一\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2131\",\n" + |
||||||
|
" \"doc_name\": \"孙海燕\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2175\",\n" + |
||||||
|
" \"doc_name\": \"邓延华\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2461\",\n" + |
||||||
|
" \"doc_name\": \"罗艳\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2513\",\n" + |
||||||
|
" \"doc_name\": \"马兰兰\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2557\",\n" + |
||||||
|
" \"doc_name\": \"郑虞华.\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2588\",\n" + |
||||||
|
" \"doc_name\": \"李金艳\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2602\",\n" + |
||||||
|
" \"doc_name\": \"蒋金芳\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2610\",\n" + |
||||||
|
" \"doc_name\": \"蒋艳梅\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2651\",\n" + |
||||||
|
" \"doc_name\": \"李凤.\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2696\",\n" + |
||||||
|
" \"doc_name\": \"易玲\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"2710\",\n" + |
||||||
|
" \"doc_name\": \"李艳.\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"3241\",\n" + |
||||||
|
" \"doc_name\": \"罗效萍\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" },\n" + |
||||||
|
" {\n" + |
||||||
|
" \"doc_code\": \"3550\",\n" + |
||||||
|
" \"doc_name\": \"王迪一.\",\n" + |
||||||
|
" \"titleName\": \"护士长\",\n" + |
||||||
|
" \"description\": \"昨日门诊:3697人次;非核酸门诊:2302人次;在院:1377人;入院:224人;出院:191人;危重:0人;手术人次:61人次;微创手术人次:16人次;四级手术人次:6人次;\\\\r\\\\n今年截至昨日门诊:794298人次;非核酸门诊:423528人次;出院:32130人;实际开放床:1224张;病床使用率:91.512%;手术:8809人次,占比:28%;四级手术占比:19.01%;微创手术占比:17.31%;\"\n" + |
||||||
|
" }\n" + |
||||||
|
" ],\n" + |
||||||
|
" \"Note\": {\n" + |
||||||
|
" \"funcName\": \"DeanSearch_wechatDataPush\",\n" + |
||||||
|
" \"funcNote\": \"微信推送数据\",\n" + |
||||||
|
" \"connTime\": 30,\n" + |
||||||
|
" \"inParams\": {},\n" + |
||||||
|
" \"isListOutParams\": true,\n" + |
||||||
|
" \"outParams\": {\n" + |
||||||
|
" \"doc_code\": \"医生代码\",\n" + |
||||||
|
" \"doc_name\": \"医生名称\",\n" + |
||||||
|
" \"titleName\": \"职位\",\n" + |
||||||
|
" \"description\": \"推送信息描述\"\n" + |
||||||
|
" }\n" + |
||||||
|
" }\n" + |
||||||
|
"}"; |
||||||
|
|
||||||
|
String respData = getRespData(json); |
||||||
|
List<HIsWorkLoad> testDoctors = jsonToList(respData, HIsWorkLoad.class); |
||||||
|
System.out.println(testDoctors); |
||||||
|
|
||||||
|
List<String> doctCodeList = jsonToList(respData, "docCode"); |
||||||
|
System.out.println(doctCodeList); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取请求中的数据 |
||||||
|
*/ |
||||||
|
public static String getRespData(String respData) { |
||||||
|
if (respData == null) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
JSONObject jsonResp = JSON.parseObject(respData); |
||||||
|
String code = jsonResp.getString("Code"); |
||||||
|
String message = jsonResp.getString("Msg"); |
||||||
|
if ("200".equals(code) && "SUCCESS".equals(message)) { |
||||||
|
String data = jsonResp.getString("Data"); |
||||||
|
return "".equals(data) ? null : data; |
||||||
|
} |
||||||
|
log.info("[请求失败]code={}, message={}", code, message); |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
public static <T> List<T> jsonToList(String data, Class<T> clazz) { |
||||||
|
if (data == null) { |
||||||
|
return new ArrayList<>(); |
||||||
|
} |
||||||
|
String jsonStr = JSON.toJSONString(data); |
||||||
|
if ("".equals(jsonStr)) { |
||||||
|
return new ArrayList<>(); |
||||||
|
} |
||||||
|
try { |
||||||
|
return JSON.parseArray(data, clazz); |
||||||
|
} catch (Exception e) { |
||||||
|
log.error(e.getMessage()); |
||||||
|
return new ArrayList<>(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取对象数组中某个名称的值,加入集合 |
||||||
|
* |
||||||
|
* @param data json数据 |
||||||
|
* @param name 属性名称 |
||||||
|
* @return 属性List |
||||||
|
*/ |
||||||
|
public static List<String> jsonToList(String data, String name) { |
||||||
|
List<String> resultList = new ArrayList<>(); |
||||||
|
if (data == null) { |
||||||
|
return resultList; |
||||||
|
} |
||||||
|
String jsonStr = JSON.toJSONString(data); |
||||||
|
if ("".equals(jsonStr)) { |
||||||
|
return resultList; |
||||||
|
} |
||||||
|
|
||||||
|
try { |
||||||
|
JSONArray jsonArr = JSON.parseArray(data); |
||||||
|
JSONObject itemObj; |
||||||
|
String val; |
||||||
|
for (int i = 0; i < jsonArr.size(); i++) { |
||||||
|
itemObj = jsonArr.getJSONObject(i); |
||||||
|
if (itemObj == null) { |
||||||
|
continue; |
||||||
|
} |
||||||
|
val = itemObj.getString(name); |
||||||
|
if (val != null && !"".equals(val)) { |
||||||
|
resultList.add(val); |
||||||
|
} |
||||||
|
} |
||||||
|
return resultList; |
||||||
|
} catch (Exception e) { |
||||||
|
log.error(e.getMessage()); |
||||||
|
} |
||||||
|
return resultList; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* json转实体类 |
||||||
|
* @param data 数据 |
||||||
|
* @param clazz 类型 |
||||||
|
* @return 对象 |
||||||
|
*/ |
||||||
|
public static <T> T jsonToBean(String data, Class<T> clazz) { |
||||||
|
if (data == null) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
String jsonStr = JSON.toJSONString(data); |
||||||
|
if ("".equals(jsonStr)) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
try { |
||||||
|
return JSON.parseObject(data, clazz); |
||||||
|
} catch (Exception e) { |
||||||
|
log.error(e.getMessage()); |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,63 @@ |
|||||||
|
package com.ynxbd.push.helper; |
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject; |
||||||
|
import io.lettuce.core.RedisClient; |
||||||
|
import io.lettuce.core.api.StatefulRedisConnection; |
||||||
|
import io.lettuce.core.api.sync.RedisCommands; |
||||||
|
|
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName RedisHelper |
||||||
|
* @Description TODO |
||||||
|
* @date 2023/05/06 16:33:00 |
||||||
|
*/ |
||||||
|
public class RedisHelper { |
||||||
|
|
||||||
|
private static final String PASSWORD = "wx.xbd.cn"; |
||||||
|
private static final String HOST = "127.0.0.1"; |
||||||
|
private static final String PORT = "6379"; |
||||||
|
private static RedisCommands<String, String> redis; |
||||||
|
|
||||||
|
private static StatefulRedisConnection<String, String> connection; |
||||||
|
private static RedisClient redisClient; |
||||||
|
|
||||||
|
|
||||||
|
private RedisHelper() { |
||||||
|
redisClient = RedisClient.create("redis://"+PASSWORD+"@"+HOST+":"+PORT+"/0"); |
||||||
|
connection = redisClient.connect(); |
||||||
|
redis = connection.sync(); |
||||||
|
} |
||||||
|
public static RedisHelper getRedis() { |
||||||
|
return Inner.instance; |
||||||
|
} |
||||||
|
private static class Inner{ |
||||||
|
private static final RedisHelper instance = new RedisHelper(); |
||||||
|
} |
||||||
|
|
||||||
|
public String set(String name, String key, Integer expire){ |
||||||
|
String result = redis.set(name,key); |
||||||
|
redis.expire(name,expire); |
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
public String get(String name){ |
||||||
|
return redis.get(name); |
||||||
|
} |
||||||
|
public void close() { |
||||||
|
connection.close(); |
||||||
|
redisClient.shutdown(); |
||||||
|
} |
||||||
|
|
||||||
|
public static void main(String[] args) { |
||||||
|
Map<String,String> params = new HashMap<>(); |
||||||
|
params.put("description", "昨日门诊2217人;非核酸门诊2184人;在院1188人;入院156人;出院186人;手术16台;微创手术4台;四级手术1台;\\\\r\\\\n今年截至昨日门诊286674人;非核酸门诊271307人;出院20271人;实际开放床1224张;病床使用率97.03%;手术5482台,占比28%;四级手术占比20.38%;微创手术占比18.02%;"); |
||||||
|
params.put("url", "https://wx.hhzyy.com//wx3302/tickets/GetPage?t=A95C0ACF523B396D48857B85B82D3A47CA3DC877FEAAE4C6AB1A462C0F18D6BA5757732FA6B8C07234D62391B46725A05152BA217FAB03BAAFEA62592BE23CA74940A3A2CC82F6C4FEA21A67140C1348B1C523EA989469DED47DFD0EE2D029FF9B52C8877A18BF0FC158125764E615376029DD33461D4083C1D1A0CF78FFEAC36F6836E1BB05E7779D165D315EAEEA9EDA71819D3F356436BF59C21FB29EBA4C83DB68514B07BFC951C432A0923F5DD71457F9A9A424400ADB506C43617FF83DEDAB1E337567927557D704325AF06160966B0A66B6F1C5470A3776ACC30730C65994D3B3AB879A728C07268B14E6B7371B1D3EE533018A92C8E871A85C6887285D3A39A660CD87AB6CD5FE759E87445228D519359B1D8C925BECD80FC466FA6C"); |
||||||
|
for(int i = 0; i<200; i++){ |
||||||
|
System.out.println(Integer.toString(i) +":"+ RedisHelper.getRedis().set(Integer.toString(i), JSONObject.toJSONString(params),86400)); |
||||||
|
} |
||||||
|
RedisHelper.getRedis().close(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,39 @@ |
|||||||
|
package com.ynxbd.push.helper; |
||||||
|
|
||||||
|
import org.springframework.util.ObjectUtils; |
||||||
|
|
||||||
|
import java.nio.charset.StandardCharsets; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName StringHelper |
||||||
|
* @Description description |
||||||
|
* @date 2023/1/28 09:41 |
||||||
|
*/ |
||||||
|
public class StringHelper { |
||||||
|
/** |
||||||
|
* 数字倒序排列 |
||||||
|
* |
||||||
|
* @param num 被排序数字 |
||||||
|
*/ |
||||||
|
public static String numDesc(String num) { |
||||||
|
StringBuilder sb = new StringBuilder(); |
||||||
|
if (ObjectUtils.isEmpty(num)) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
for (int i = num.length() - 1; i >= 0; i--) { |
||||||
|
sb.append(num.charAt(i)); |
||||||
|
} |
||||||
|
return sb.toString(); |
||||||
|
} |
||||||
|
/** |
||||||
|
* BASE64加密 |
||||||
|
* |
||||||
|
* @param data 需要加密的字符串 |
||||||
|
* @return 加密后的字符串 |
||||||
|
*/ |
||||||
|
public static String encode(String data) { |
||||||
|
return java.util.Base64.getEncoder().encodeToString(data.getBytes(StandardCharsets.UTF_8)); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -1,188 +0,0 @@ |
|||||||
package com.ynxbd.push.helper; |
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON; |
|
||||||
import com.alibaba.fastjson.JSONArray; |
|
||||||
import com.alibaba.fastjson.JSONObject; |
|
||||||
import lombok.Data; |
|
||||||
import lombok.NoArgsConstructor; |
|
||||||
import lombok.ToString; |
|
||||||
import lombok.extern.slf4j.Slf4j; |
|
||||||
|
|
||||||
import java.util.ArrayList; |
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
@Slf4j |
|
||||||
public class TestResult { |
|
||||||
|
|
||||||
@Data |
|
||||||
@NoArgsConstructor |
|
||||||
@ToString |
|
||||||
public static class TestDoctor { |
|
||||||
private String docCode; |
|
||||||
private String docName; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) { |
|
||||||
String json = "{\n" + |
|
||||||
" \"Code\": \"200\",\n" + |
|
||||||
" \"Msg\": \"SUCCESS\",\n" + |
|
||||||
" \"Data\": [\n" + |
|
||||||
" {\n" + |
|
||||||
" \"docCode\": \"0002\",\n" + |
|
||||||
" \"docName\": \"李卫\"\n" + |
|
||||||
" },\n" + |
|
||||||
" {\n" + |
|
||||||
" \"docCode\": \"0003\",\n" + |
|
||||||
" \"docName\": \"杨淑\"\n" + |
|
||||||
" },\n" + |
|
||||||
" {\n" + |
|
||||||
" \"docCode\": \"0005\",\n" + |
|
||||||
" \"docName\": \"马晓琳\"\n" + |
|
||||||
" },\n" + |
|
||||||
" {\n" + |
|
||||||
" \"docCode\": \"0010\",\n" + |
|
||||||
" \"docName\": \"张永云\"\n" + |
|
||||||
" },\n" + |
|
||||||
" {\n" + |
|
||||||
" \"docCode\": \"0011\",\n" + |
|
||||||
" \"docName\": \"蔡连勇\"\n" + |
|
||||||
" },\n" + |
|
||||||
" {\n" + |
|
||||||
" \"docCode\": \"0012\",\n" + |
|
||||||
" \"docName\": \"罗琳辉\"\n" + |
|
||||||
" },\n" + |
|
||||||
" {\n" + |
|
||||||
" \"docCode\": \"0013\",\n" + |
|
||||||
" \"docName\": \"屈继波\"\n" + |
|
||||||
" },\n" + |
|
||||||
" {\n" + |
|
||||||
" \"docCode\": \"0015\",\n" + |
|
||||||
" \"docName\": \"李瀛\"\n" + |
|
||||||
" },\n" + |
|
||||||
" {\n" + |
|
||||||
" \"docCode\": \"0016\",\n" + |
|
||||||
" \"docName\": \"杨阳\"\n" + |
|
||||||
" },\n" + |
|
||||||
" {\n" + |
|
||||||
" \"docCode\": \"0017\",\n" + |
|
||||||
" \"docName\": \"江为民\"\n" + |
|
||||||
" }\n" + |
|
||||||
" ],\n" + |
|
||||||
" \"Note\": {\n" + |
|
||||||
" \"funcName\": \"DeanSearch_wechatDataPush\",\n" + |
|
||||||
" \"funcNote\": \"微信推送数据\",\n" + |
|
||||||
" \"connTime\": 30,\n" + |
|
||||||
" \"inParams\": {},\n" + |
|
||||||
" \"isListOutParams\": true,\n" + |
|
||||||
" \"outParams\": {\n" + |
|
||||||
" \"docCode\": \"医生code\",\n" + |
|
||||||
" \"docName\": \"医生name\"\n" + |
|
||||||
" }\n" + |
|
||||||
" }\n" + |
|
||||||
"}"; |
|
||||||
|
|
||||||
String respData = getRespData(json); |
|
||||||
System.out.println(respData); |
|
||||||
List<TestDoctor> testDoctors = jsonToList(respData, TestDoctor.class); |
|
||||||
System.out.println(testDoctors); |
|
||||||
|
|
||||||
List<String> doctCodeList = jsonToList(respData, "docCode"); |
|
||||||
System.out.println(doctCodeList); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取请求中的数据 |
|
||||||
*/ |
|
||||||
public static String getRespData(String respData) { |
|
||||||
if (respData == null) { |
|
||||||
return null; |
|
||||||
} |
|
||||||
JSONObject jsonResp = JSON.parseObject(respData); |
|
||||||
String code = jsonResp.getString("Code"); |
|
||||||
String message = jsonResp.getString("Msg"); |
|
||||||
if ("200".equals(code) && "SUCCESS".equals(message)) { |
|
||||||
String data = jsonResp.getString("Data"); |
|
||||||
return "".equals(data) ? null : data; |
|
||||||
} |
|
||||||
log.info("[请求失败]code={}, message={}", code, message); |
|
||||||
return null; |
|
||||||
} |
|
||||||
|
|
||||||
public static <T> List<T> jsonToList(String data, Class<T> clazz) { |
|
||||||
if (data == null) { |
|
||||||
return new ArrayList<>(); |
|
||||||
} |
|
||||||
String jsonStr = JSON.toJSONString(data); |
|
||||||
if ("".equals(jsonStr)) { |
|
||||||
return new ArrayList<>(); |
|
||||||
} |
|
||||||
try { |
|
||||||
return JSON.parseArray(data, clazz); |
|
||||||
} catch (Exception e) { |
|
||||||
log.error(e.getMessage()); |
|
||||||
return new ArrayList<>(); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* 获取对象数组中某个名称的值,加入集合 |
|
||||||
* |
|
||||||
* @param data json数据 |
|
||||||
* @param name 属性名称 |
|
||||||
* @return 属性List |
|
||||||
*/ |
|
||||||
public static List<String> jsonToList(String data, String name) { |
|
||||||
List<String> resultList = new ArrayList<>(); |
|
||||||
if (data == null) { |
|
||||||
return resultList; |
|
||||||
} |
|
||||||
String jsonStr = JSON.toJSONString(data); |
|
||||||
if ("".equals(jsonStr)) { |
|
||||||
return resultList; |
|
||||||
} |
|
||||||
|
|
||||||
try { |
|
||||||
JSONArray jsonArr = JSON.parseArray(data); |
|
||||||
JSONObject itemObj; |
|
||||||
String val; |
|
||||||
for (int i = 0; i < jsonArr.size(); i++) { |
|
||||||
itemObj = jsonArr.getJSONObject(i); |
|
||||||
if (itemObj == null) { |
|
||||||
continue; |
|
||||||
} |
|
||||||
val = itemObj.getString(name); |
|
||||||
if (val != null && !"".equals(val)) { |
|
||||||
resultList.add(val); |
|
||||||
} |
|
||||||
} |
|
||||||
return resultList; |
|
||||||
} catch (Exception e) { |
|
||||||
log.error(e.getMessage()); |
|
||||||
} |
|
||||||
return resultList; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* json转实体类 |
|
||||||
* @param data 数据 |
|
||||||
* @param clazz 类型 |
|
||||||
* @return 对象 |
|
||||||
*/ |
|
||||||
public static <T> T jsonToBean(String data, Class<T> clazz) { |
|
||||||
if (data == null) { |
|
||||||
return null; |
|
||||||
} |
|
||||||
String jsonStr = JSON.toJSONString(data); |
|
||||||
if ("".equals(jsonStr)) { |
|
||||||
return null; |
|
||||||
} |
|
||||||
try { |
|
||||||
return JSON.parseObject(data, clazz); |
|
||||||
} catch (Exception e) { |
|
||||||
log.error(e.getMessage()); |
|
||||||
return null; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
Binary file not shown.
@ -0,0 +1,97 @@ |
|||||||
|
package com.ynxbd.push.pushJob.BI; |
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject; |
||||||
|
import com.ynxbd.push.config.IniConfig; |
||||||
|
import com.ynxbd.push.entity.tencent.AllDoctorCode; |
||||||
|
import com.ynxbd.push.entity.tencent.SendMessageTemplate; |
||||||
|
import com.ynxbd.push.entity.tencent.WeChatAllDoctorResponse; |
||||||
|
import com.ynxbd.push.entity.xbd.his.HIsWorkLoad; |
||||||
|
import com.ynxbd.push.entity.xbd.wx.WorkLoad; |
||||||
|
import com.ynxbd.push.entity.xbd.wx.WorkLoadData; |
||||||
|
import com.ynxbd.push.helper.*; |
||||||
|
import com.ynxbd.push.httpRequest.tencent.WeChatDataRequest; |
||||||
|
import com.ynxbd.push.httpRequest.xbd.his.HisRequest; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
|
||||||
|
import java.text.SimpleDateFormat; |
||||||
|
import java.time.LocalDate; |
||||||
|
import java.time.format.DateTimeFormatter; |
||||||
|
import java.util.*; |
||||||
|
import java.util.stream.Collectors; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName BiPush |
||||||
|
* @Description description |
||||||
|
* @date 2022/9/7 14:23 |
||||||
|
*/ |
||||||
|
@Slf4j |
||||||
|
public class BiPush { |
||||||
|
public static void runJob(String openId){ |
||||||
|
if(IniConfig.getInstance("leaderTemplateId")==null){ |
||||||
|
return; |
||||||
|
} |
||||||
|
Boolean isTest = false; |
||||||
|
if(IniConfig.getInstance("leaderTest")!=null){ |
||||||
|
isTest = true; |
||||||
|
} |
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat(); |
||||||
|
sdf.applyPattern("yyyy-MM-dd"); |
||||||
|
Date date = new Date(); |
||||||
|
List<HIsWorkLoad> targetList = HisResultFormat.jsonToList(HisResultFormat.getRespData(HisRequest.getWorkLoad()), HIsWorkLoad.class); |
||||||
|
List<AllDoctorCode> allDoctorCodeList = WeChatDataRequest.getAllOpenIdForDoctorCode().getData(); |
||||||
|
Map<String,String> params = new HashMap<>(); |
||||||
|
params.put("description", targetList.get(0).getDescription()); |
||||||
|
SimpleDateFormat formatter = new SimpleDateFormat(); |
||||||
|
formatter.applyPattern("yyyyMMdd"); |
||||||
|
RedisHelper.getRedis().set(formatter.format(date),JSONObject.toJSONString(params),86400); |
||||||
|
for (HIsWorkLoad target: targetList) { |
||||||
|
Optional<AllDoctorCode> allDoctorCodeStream =allDoctorCodeList.stream().filter(item -> item.getDoctCode().equals(target.getDoc_code())).findFirst(); |
||||||
|
if (!allDoctorCodeStream.isPresent()){ |
||||||
|
log.info("[领导推送工作量]{}未绑定微官网,openId:{}",target.getDoc_name(),target.getDoc_code()); |
||||||
|
continue; |
||||||
|
} |
||||||
|
SendMessageTemplate sendMessageTemplate = SendMessageTemplate.builder() |
||||||
|
.template_id(IniConfig.getInstance("leaderTemplateId")) |
||||||
|
.keyword1(Objects.equals(IniConfig.getInstance("leaderTemplateMode"), "2") ?target.getDescription():sdf.format(date)) |
||||||
|
.keyword2(Objects.equals(IniConfig.getInstance("leaderTemplateMode"), "2") ?sdf.format(date):target.getDescription()) |
||||||
|
// .first(new StringBuilder().append("尊敬的").append(target.getDoc_name()).append("您好").toString())
|
||||||
|
.url(IniConfig.getInstance("domain")+"wx/"+IniConfig.getInstance("weChatUIPath")+"push-info.html#/bi-info") |
||||||
|
// .openId(replenish.getOpenid())
|
||||||
|
.build(); |
||||||
|
if(isTest){ |
||||||
|
for (String testOpenId:IniConfig.getInstance("leaderTest").split(";")) { |
||||||
|
sendMessageTemplate.setOpenId(""); |
||||||
|
sendMessageTemplate.setOpenId(testOpenId); |
||||||
|
log.info("[领导推送工作量-测试项目]:openId={}, ErrCode={}, ", |
||||||
|
sendMessageTemplate.getOpenId(), |
||||||
|
// 推送
|
||||||
|
MessageApiHelper.templateMessageSend(sendMessageTemplate).getMsg_status()); |
||||||
|
} |
||||||
|
break; |
||||||
|
} |
||||||
|
if(openId!=null){ |
||||||
|
for (String paramsOpenId:openId.split(";")) { |
||||||
|
sendMessageTemplate.setOpenId(""); |
||||||
|
sendMessageTemplate.setOpenId(paramsOpenId); |
||||||
|
log.info("[领导推送工作量-接口传参项目]:openId={}, ErrCode={}, ", |
||||||
|
sendMessageTemplate.getOpenId(), |
||||||
|
// 推送
|
||||||
|
MessageApiHelper.templateMessageSend(sendMessageTemplate).getMsg_status()); |
||||||
|
} |
||||||
|
break; |
||||||
|
} |
||||||
|
Integer index = 1; |
||||||
|
for (String interfaceOpenId:allDoctorCodeStream.get().getOpenIds()){ |
||||||
|
sendMessageTemplate.setOpenId(AesCodeHelper.deCode(interfaceOpenId)); |
||||||
|
log.info("[领导推送工作量]:openId={}, DoctorCode-{}-{}, ErrCode={}", |
||||||
|
sendMessageTemplate.getOpenId(), |
||||||
|
allDoctorCodeStream.get().getDoctCode(), |
||||||
|
index, |
||||||
|
// 推送
|
||||||
|
MessageApiHelper.templateMessageSend(sendMessageTemplate).getMsg_status()); |
||||||
|
index++; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -1,23 +1,38 @@ |
|||||||
package com.ynxbd.push.quartz.job; |
package com.ynxbd.push.quartz.job; |
||||||
|
|
||||||
|
import com.ynxbd.push.config.IniConfig; |
||||||
|
import com.ynxbd.push.entity.tencent.SendMessageTemplate; |
||||||
|
import com.ynxbd.push.entity.xbd.his.HIsWorkLoad; |
||||||
|
import com.ynxbd.push.entity.xbd.wx.WorkLoad; |
||||||
|
import com.ynxbd.push.entity.xbd.wx.WorkLoadData; |
||||||
|
import com.ynxbd.push.helper.HisResultFormat; |
||||||
|
import com.ynxbd.push.helper.MessageApiHelper; |
||||||
|
import com.ynxbd.push.httpRequest.tencent.WeChatDataRequest; |
||||||
|
import com.ynxbd.push.httpRequest.xbd.his.HisRequest; |
||||||
|
import com.ynxbd.push.pushJob.BI.BiPush; |
||||||
import lombok.SneakyThrows; |
import lombok.SneakyThrows; |
||||||
import lombok.extern.slf4j.Slf4j; |
import lombok.extern.slf4j.Slf4j; |
||||||
import org.quartz.Job; |
import org.quartz.Job; |
||||||
import org.quartz.JobExecutionContext; |
import org.quartz.JobExecutionContext; |
||||||
import org.quartz.JobExecutionException; |
import org.quartz.JobExecutionException; |
||||||
|
|
||||||
|
import java.text.SimpleDateFormat; |
||||||
|
import java.util.Date; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Optional; |
||||||
|
import java.util.regex.Matcher; |
||||||
|
|
||||||
/** |
/** |
||||||
* @author 李进才 |
* @author 李进才 |
||||||
* @ClassName WorkLoadJob |
* @ClassName WorkLoadJob |
||||||
* @Description description |
* @Description description |
||||||
* @date 2022/7/22 11:01 |
* @date 2022/7/22 11:01 |
||||||
*/ |
*/ |
||||||
@Slf4j |
|
||||||
public class WorkLoadJob implements Job { |
public class WorkLoadJob implements Job { |
||||||
|
|
||||||
@SneakyThrows |
@SneakyThrows |
||||||
@Override |
@Override |
||||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { |
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { |
||||||
|
BiPush.runJob(null); |
||||||
} |
} |
||||||
} |
} |
||||||
|
@ -0,0 +1,187 @@ |
|||||||
|
package com.ynxbd.push.rabbit.receive; |
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON; |
||||||
|
import com.ynxbd.push.config.IniConfig; |
||||||
|
import com.ynxbd.push.entity.response.ResponseResult; |
||||||
|
import com.ynxbd.push.helper.MessageApiHelper; |
||||||
|
import com.ynxbd.push.rabbit.send.RabbitSender; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.springframework.amqp.rabbit.annotation.RabbitHandler; |
||||||
|
import org.springframework.amqp.rabbit.annotation.RabbitListener; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.stereotype.Component; |
||||||
|
import org.springframework.web.util.UriUtils; |
||||||
|
import weixin.popular.bean.message.MessageSendResult; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
import java.nio.charset.StandardCharsets; |
||||||
|
import java.text.SimpleDateFormat; |
||||||
|
import java.util.Base64; |
||||||
|
import java.util.Date; |
||||||
|
import java.util.Map; |
||||||
|
import java.util.UUID; |
||||||
|
import java.util.concurrent.TimeoutException; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName RabbitReceiver |
||||||
|
* @Description TODO |
||||||
|
* @date 2024/01/23 13:54:00 |
||||||
|
*/ |
||||||
|
@Component |
||||||
|
@Slf4j |
||||||
|
@RabbitListener(queues = {"wxPushQueue"}) |
||||||
|
public class RabbitReceiver { |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private RabbitSender rabbitSender; |
||||||
|
|
||||||
|
private final static String REPORT_TIP = "ReportTip"; |
||||||
|
private final static String QUEUE_TIP = "QueueTip"; |
||||||
|
private final static String MEDICAL_RECORD = "MedicalRecord"; |
||||||
|
private final static String TREAT_PLAN = "treatPlan"; |
||||||
|
|
||||||
|
private final static String UNIVERSAL = "Universal"; |
||||||
|
|
||||||
|
|
||||||
|
@RabbitHandler |
||||||
|
public void receive(Map<String, String> receiveMessage) { |
||||||
|
try { |
||||||
|
log.info("rabbit开始消费消息,内容-{}", receiveMessage); |
||||||
|
if (Integer.parseInt(receiveMessage.get("count")) > 2) { |
||||||
|
return; |
||||||
|
} |
||||||
|
switch (receiveMessage.get("tip")) { |
||||||
|
case REPORT_TIP: |
||||||
|
reportTip(receiveMessage); |
||||||
|
break; |
||||||
|
case QUEUE_TIP: |
||||||
|
queueTip(receiveMessage); |
||||||
|
break; |
||||||
|
case MEDICAL_RECORD: |
||||||
|
medicalRecord(receiveMessage); |
||||||
|
break; |
||||||
|
case TREAT_PLAN: |
||||||
|
treatPlan(receiveMessage); |
||||||
|
break; |
||||||
|
case UNIVERSAL: |
||||||
|
universal(receiveMessage); |
||||||
|
break; |
||||||
|
default: |
||||||
|
log.info("未找到消息类型进行推送,类型-{}", receiveMessage.get("tip")); |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
catch (Exception e){ |
||||||
|
log.error("消息消费出错:{},内容-{}",e,receiveMessage); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
private void reportTip(Map<String,String> receiveMessage) { |
||||||
|
String organizeName = receiveMessage.get("organizeName"); |
||||||
|
String messageId = receiveMessage.get("message_id"); |
||||||
|
String code = receiveMessage.get("tip"); |
||||||
|
String patientId = receiveMessage.get("patientId") == null ? "" : receiveMessage.get("patientId"); |
||||||
|
String idCard = receiveMessage.get("idCard") == null ? "" : receiveMessage.get("idCard"); |
||||||
|
String reportId = receiveMessage.get("reportId") == null ? "" : receiveMessage.get("reportId"); |
||||||
|
String itemName = receiveMessage.get("itemName") == null ? "" : receiveMessage.get("itemName"); |
||||||
|
String reportTime = receiveMessage.get("reportTime") == null ? "" : receiveMessage.get("reportTime"); |
||||||
|
String patientName = receiveMessage.get("patientName") == null ? "" : receiveMessage.get("patientName"); |
||||||
|
String sex = receiveMessage.get("sex") == null ? "" : receiveMessage.get("sex"); |
||||||
|
String age = receiveMessage.get("age") == null ? "" : receiveMessage.get("age"); |
||||||
|
String applyDept = receiveMessage.get("applyDept") == null ? "" : receiveMessage.get("applyDept"); |
||||||
|
String applyDoctor = receiveMessage.get("applyDoctor") == null ? "" : receiveMessage.get("applyDoctor"); |
||||||
|
String weChatUrl = IniConfig.getInstance("weChatUrl") == null ? "" : receiveMessage.get("weChatUrl"); |
||||||
|
retry(MessageApiHelper.TemplateMessageForCode(organizeName,code, idCard, "检验检查报告通知", |
||||||
|
patientId, null, "您有新的报告。" + patientName + (age.equals("") ? "" : "(" + age + ")"), |
||||||
|
patientId, patientName + (sex.equals("") ? "" : "(" + sex + ")"), reportId, reportTime, itemName, |
||||||
|
"您的报告结果已经出具。" + (applyDoctor.equals("") ? "" : "申请医生:" + applyDoctor + ";") + (applyDept.equals("") ? "" : "申请科室:" + applyDept), |
||||||
|
weChatUrl + IniConfig.getInstance("reportUrl") + "/all-result.html", messageId), receiveMessage); |
||||||
|
|
||||||
|
} |
||||||
|
private void queueTip(Map<String,String> receiveMessage) { |
||||||
|
try { |
||||||
|
String organizeName = receiveMessage.get("organizeName"); |
||||||
|
String messageId = receiveMessage.get("message_id"); |
||||||
|
String code = receiveMessage.get("tip"); |
||||||
|
String patientId = receiveMessage.get("patientId")==null?"":receiveMessage.get("patientId"); |
||||||
|
String idCard = receiveMessage.get("idCard")==null?"":receiveMessage.get("idCard"); |
||||||
|
String patientName = receiveMessage.get("patientName")==null?"":receiveMessage.get("patientName"); |
||||||
|
String deptName = receiveMessage.get("deptName")==null?"":receiveMessage.get("deptName"); |
||||||
|
String doctorName = receiveMessage.get("doctorName")==null?"":receiveMessage.get("doctorName"); |
||||||
|
String currentNumber = receiveMessage.get("currentNumber")==null?"":receiveMessage.get("currentNumber"); |
||||||
|
String selfNumber = receiveMessage.get("selfNumber")==null?"":receiveMessage.get("selfNumber"); |
||||||
|
String waitNumber = receiveMessage.get("waitNumber")==null?"":receiveMessage.get("waitNumber"); |
||||||
|
retry(MessageApiHelper.TemplateMessageForCode(organizeName,code,idCard,"排队叫号提醒", patientId,null,patientName+",您已进入候诊队列,请及时查看",deptName,doctorName,currentNumber,selfNumber,waitNumber,"请合理安排好时间就诊,以免过号",null,messageId),receiveMessage); |
||||||
|
} |
||||||
|
catch (Exception e){ |
||||||
|
log.error("[推送消息组织出错]params-{}, error-{}",receiveMessage, e.toString()); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
private void medicalRecord(Map<String,String> receiveMessage) { |
||||||
|
String organizeName = receiveMessage.get("organizeName"); |
||||||
|
String messageId = receiveMessage.get("message_id"); |
||||||
|
String code = receiveMessage.get("tip"); |
||||||
|
String patientId = receiveMessage.get("patientId"); |
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat(); |
||||||
|
sdf.applyPattern("yyyy-MM-dd"); |
||||||
|
Date date = new Date(); |
||||||
|
String url =IniConfig.getInstance("domain")+"wx/"+IniConfig.getInstance("weChatUIPath")+"medical-record.html#/medical-record-history"; |
||||||
|
retry(MessageApiHelper.TemplateMessageForCode(organizeName,code,null,"医院通知",patientId,null,"病历复印申请已通过",sdf.format(date),"病历复印申请已通过,请点击跳转付费",null,null,null,"查看详情",url,messageId),receiveMessage); |
||||||
|
} |
||||||
|
|
||||||
|
private void treatPlan(Map<String,String> receiveMessage){ |
||||||
|
String messageId = receiveMessage.get("message_id"); |
||||||
|
String code = receiveMessage.get("tip"); |
||||||
|
String organizeName = receiveMessage.get("organizeName"); |
||||||
|
String patientId = receiveMessage.get("patientId"); |
||||||
|
String name = receiveMessage.get("name"); |
||||||
|
String title = receiveMessage.get("title"); |
||||||
|
String planTime = receiveMessage.get("planTime"); |
||||||
|
String content = receiveMessage.get("content"); |
||||||
|
String url = receiveMessage.get("url"); |
||||||
|
String remark = receiveMessage.get("remark"); |
||||||
|
retry(MessageApiHelper.TemplateMessageForCode(organizeName,code,null,"诊疗计划提醒",patientId,null,title,name,planTime,content,null,null,remark,url,messageId),receiveMessage); |
||||||
|
} |
||||||
|
|
||||||
|
private void universal(Map<String,String> receiveMessage) { |
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat(); |
||||||
|
sdf.applyPattern("yyyy-MM-dd"); |
||||||
|
Date date = new Date(); |
||||||
|
String organizeName = receiveMessage.get("organizeName"); |
||||||
|
String code = receiveMessage.get("tip"); |
||||||
|
String messageId = receiveMessage.get("message_id"); |
||||||
|
String patientId = receiveMessage.get("patientId"); |
||||||
|
String content = receiveMessage.get("content"); |
||||||
|
String url = receiveMessage.get("url"); |
||||||
|
String IdCard = receiveMessage.get("IdCard"); |
||||||
|
String doctorCode = receiveMessage.get("doctorCode"); |
||||||
|
String viewUrl; |
||||||
|
if(!"".equals(url)){ |
||||||
|
viewUrl = url; |
||||||
|
}else { |
||||||
|
viewUrl = IniConfig.getInstance("domain")+"wx/"+IniConfig.getInstance("weChatUIPath")+"push-universal.html?patientId="+ ("".equals(patientId)? Base64.getEncoder().encodeToString(patientId.getBytes()): "") + "&content="+Base64.getEncoder().encodeToString(UriUtils.encode(content, StandardCharsets.UTF_8.toString()).getBytes())+"&time="+Base64.getEncoder().encodeToString(sdf.format(date).getBytes()); |
||||||
|
} |
||||||
|
if(IniConfig.getInstance("templateVersion")!=null){ |
||||||
|
content = content.substring(0,16)+"……"; |
||||||
|
} |
||||||
|
retry(MessageApiHelper.TemplateMessageForCode(organizeName,code,IdCard,IniConfig.getInstance("templateVersion")==null?"绑定通知":"工单处理提醒",patientId,doctorCode,null,sdf.format(date),content,null,null,null,null,viewUrl,messageId),receiveMessage); |
||||||
|
} |
||||||
|
|
||||||
|
private void retry(MessageSendResult messageSendResult, Map<String,String> message) { |
||||||
|
if(!(messageSendResult.getErrcode().equals("0")||messageSendResult.getErrcode().equals(ResponseResult.ORGANIZE_IS_NULL.ERR_CODE)||messageSendResult.getErrcode().equals(ResponseResult.PARAMETER_IS_NULL.ERR_CODE)||messageSendResult.getErrcode().equals(ResponseResult.NOT_FIND_DATA.ERR_CODE))){ |
||||||
|
int count = Integer.parseInt(message.get("count")); |
||||||
|
log.info("[微信消息推送]进入重试机制,重试次数-{},重试参数-{},失败原因-{}",count,message,messageSendResult.getErrcode()); |
||||||
|
message.put("count",String.valueOf((count+1))); |
||||||
|
rabbitSender.send(message); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
public static void main(String[] args) throws IOException, TimeoutException { |
||||||
|
System.out.println(Base64.getEncoder().encodeToString("尊敬的患者,您本次就诊有如下费用需要支付:\\n 药品处方:\\n 共1张,金额:0.13元;\\n".getBytes(StandardCharsets.UTF_8))); |
||||||
|
System.out.println(new String(Base64.getDecoder().decode("JUU1JUIwJThBJUU2JTk1JUFDJUU3JTlBJTg0JUU2JTgyJUEzJUU4JTgwJTg1JUU2JTgyJUE4JUU1JUE1JUJEJUVGJUJDJThDJUU2JTgyJUE4JUU3JTlBJTg0JUU1JUE0JTg0JUU2JTk2JUI5JUU1JUI3JUIyJUU3JUJCJThGJUU1JTg3JUJBJUU1JTg1JUI3JUVGJUJDJThDJUU4JUFGJUI3JUU0JUJEJUEwJUU1JTlDJUE4JUU4JUE3JTg0JUU1JUFFJTlBJUU2JTk3JUI2JUU5JTk3JUI0JUU1JTg2JTg1JUU1JTg5JThEJUU1JUJFJTgwJUU1JUE0JTg0JUU2JTk2JUI5JUU4JUJGJTlCJUU4JUExJThDJUU2JTk0JUFGJUU0JUJCJTk4JUVGJUJDJThDJUU4JUIwJUEyJUU4JUIwJUEyJUU5JTg1JThEJUU1JTkwJTg4"))); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,33 @@ |
|||||||
|
package com.ynxbd.push.rabbit.send; |
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON; |
||||||
|
import org.springframework.amqp.rabbit.connection.CorrelationData; |
||||||
|
import org.springframework.amqp.rabbit.core.RabbitTemplate; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.stereotype.Component; |
||||||
|
|
||||||
|
import java.util.Map; |
||||||
|
import java.util.UUID; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author 李进才 |
||||||
|
* @ClassName RabbitSender |
||||||
|
* @Description TODO |
||||||
|
* @date 2024/01/23 13:53:00 |
||||||
|
*/ |
||||||
|
@Component |
||||||
|
public class RabbitSender { |
||||||
|
@Autowired |
||||||
|
private RabbitTemplate rabbitTemplate; |
||||||
|
|
||||||
|
public void TipSend(Map<String,String> message){ |
||||||
|
message.put("count","0"); |
||||||
|
send(message); |
||||||
|
} |
||||||
|
public void send(Map<String,String> message) { |
||||||
|
String uuid = UUID.randomUUID().toString(); |
||||||
|
CorrelationData correlationData = new CorrelationData(uuid); |
||||||
|
message.put("message_id", uuid); |
||||||
|
this.rabbitTemplate.convertAndSend("wxPushExchange","wxPushRouting",message,correlationData); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue