|  | @ -5,14 +5,18 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 | 
	
		
			
				|  |  | import com.yihu.jw.dict.dao.DictHospitalDeptDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.doctor.dao.BaseDoctorDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.doctor.dao.BaseDoctorPatientDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.doctor.service.BaseDoctorInfoService;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.dict.DictHospitalDeptDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.org.BaseDoctorPatientFollowDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.org.BaseOrgDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.patient.BasePatientDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.patient.PatientMedicareCardDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.wx.BasePatientWechatDo;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.wx.WxWechatDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.consult.WlyyDoctorClinicRoomDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.consult.WlyyHospitalWaitingRoomDO;
 | 
	
	
		
			
				|  | @ -22,6 +26,7 @@ import com.yihu.jw.entity.hospital.doctor.WlyyDoctorWorkTimeDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.doctor.WlyyPatientRegisterTimeDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.httplog.WlyyHttpLogDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.mapping.DoctorMappingDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.mapping.PatientMappingDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.message.SystemMessageDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.prescription.*;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.order.BusinessOrderDO;
 | 
	
	
		
			
				|  | @ -35,20 +40,24 @@ import com.yihu.jw.hospital.doctor.dao.DoctorWorkTimeDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.doctor.dao.PatientRegisterTimeDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.doctor.dao.WlyyDoctorOnlineTimeDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.httplog.dao.WlyyHttpLogDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.mapping.dao.PatientMappingDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.mapping.service.DoctorMappingService;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.mapping.service.PatientMappingService;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.message.service.SystemMessageService;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.prescription.dao.*;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.prescription.service.entrance.EntranceService;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.prescription.service.entrance.YkyyEntranceService;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.prescription.service.useragent.BaseUserAgent;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.ykyy.service.YkyyService;
 | 
	
		
			
				|  |  | import com.yihu.jw.order.BusinessOrderService;
 | 
	
		
			
				|  |  | import com.yihu.jw.order.dao.BusinessOrderDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.order.pay.ylz.YlzPayService;
 | 
	
		
			
				|  |  | import com.yihu.jw.org.dao.BaseOrgDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.patient.dao.BaseDoctorPatientFollowDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.patient.dao.BasePatientDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.patient.dao.BasePatientMedicareCardDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.base.dict.DictHospitalDeptVO;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.base.doctor.BaseDoctorVO;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.base.org.BaseOrgVO;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.hospital.archive.ArchiveVO;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.hospital.consult.WlyyHospitalSysDictVO;
 | 
	
	
		
			
				|  | @ -56,11 +65,18 @@ import com.yihu.jw.restmodel.hospital.doctor.WlyyDoctorWorkTimeVO;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.hospital.prescription.*;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.Envelop;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.MixEnvelop;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.ObjEnvelop;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.PageEnvelop;
 | 
	
		
			
				|  |  | import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
 | 
	
		
			
				|  |  | import com.yihu.jw.rm.iot.IotRequestMapping;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.common.IdCardUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.common.LatitudeUtils;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.date.DateUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.utils.StringUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.utils.WebserviceUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.utils.hibernate.HibenateUtils;
 | 
	
		
			
				|  |  | import com.yihu.jw.wechat.dao.BasePatientWechatDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.wechat.dao.WechatDao;
 | 
	
		
			
				|  |  | import com.yihu.mysql.query.BaseJpaService;
 | 
	
		
			
				|  |  | import com.yihu.utils.security.MD5;
 | 
	
		
			
				|  |  | import com.ylzinfo.ehc.EhcHandler;
 | 
	
	
		
			
				|  | @ -70,8 +86,12 @@ import com.ylzinfo.ehc.trans.TransResponse;
 | 
	
		
			
				|  |  | import jxl.write.*;
 | 
	
		
			
				|  |  | import net.sf.json.JSONArray;
 | 
	
		
			
				|  |  | import net.sf.json.JSONObject;
 | 
	
		
			
				|  |  | import net.sf.json.xml.XMLSerializer;
 | 
	
		
			
				|  |  | import org.apache.commons.collections.map.HashedMap;
 | 
	
		
			
				|  |  | import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  | import org.jsoup.Jsoup;
 | 
	
		
			
				|  |  | import org.jsoup.nodes.Document;
 | 
	
		
			
				|  |  | import org.jsoup.select.Elements;
 | 
	
		
			
				|  |  | import org.slf4j.Logger;
 | 
	
		
			
				|  |  | import org.slf4j.LoggerFactory;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
	
		
			
				|  | @ -187,8 +207,23 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     private PrescriptionEmrDao prescriptionEmrDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private WlyyConsultAdviceDao wlyyConsultAdviceDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private BaseDoctorPatientDao baseDoctorPatientDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private BaseUserAgent userAgent;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private WlyyHospitalSysDictDao hospitalSysDictDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private YlzPayService ylzPayService;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private BasePatientMedicareCardDao patientMedicareCardDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private PatientMappingDao patientMappingDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private WechatDao wechatDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private BasePatientWechatDao patientWechatDao;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Value("${demo.flag}")
 | 
	
	
		
			
				|  | @ -489,10 +524,10 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |      * @param size
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public MixEnvelop findPrescriptionList(String patient, String status,String startTime, String endTime, Integer page, Integer size){
 | 
	
		
			
				|  |  |     public MixEnvelop findPrescriptionList(String patient, String status,String startTime, String endTime, Integer page, Integer size,String wxId){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String totalSql ="SELECT " +
 | 
	
		
			
				|  |  |                 " count(1) AS total " +
 | 
	
		
			
				|  |  |                 " count(1) AS \"total\" " +
 | 
	
		
			
				|  |  |                 " FROM " +
 | 
	
		
			
				|  |  |                 " wlyy_prescription p ";
 | 
	
		
			
				|  |  |         totalSql += " WHERE 1=1 ";
 | 
	
	
		
			
				|  | @ -503,10 +538,20 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |             totalSql+=" AND p.status IN ("+status+")";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(startTime)){
 | 
	
		
			
				|  |  |             totalSql += " AND create_time >='"+startTime+" 00:00:00'";
 | 
	
		
			
				|  |  |             if("xm_ykyy_wx".equals(wxId)){
 | 
	
		
			
				|  |  |                 totalSql +=" and create_time >= to_date('"+startTime+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 totalSql += " AND create_time >='"+startTime+" 00:00:00'";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(endTime)){
 | 
	
		
			
				|  |  |             totalSql += " AND create_time <='"+endTime+" 23:59:59'";
 | 
	
		
			
				|  |  |             if("xm_ykyy_wx".equals(wxId)){
 | 
	
		
			
				|  |  |                 totalSql +=" and create_time <= to_date('"+startTime+" 23:59:59','YYYY-MM-DD HH24:MI:SS')";
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 totalSql += " AND create_time <='"+endTime+" 23:59:59'";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(totalSql);
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -516,48 +561,48 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String sql ="SELECT " +
 | 
	
		
			
				|  |  |                 " p.id, " +
 | 
	
		
			
				|  |  |                 " p.real_order AS realOrder," +
 | 
	
		
			
				|  |  |                 " p.origin_real_order AS originRealOrder," +
 | 
	
		
			
				|  |  |                 " p.adm_no AS admNo," +
 | 
	
		
			
				|  |  |                 " p.origin_adm_no AS originAdmNo," +
 | 
	
		
			
				|  |  |                 " p.serial_no AS serialNo," +
 | 
	
		
			
				|  |  |                 " p.type AS type, " +
 | 
	
		
			
				|  |  |                 " p.patient_code AS patientCode, " +
 | 
	
		
			
				|  |  |                 " p.patient_name AS patientName, " +
 | 
	
		
			
				|  |  |                 " p.ssc AS ssc, " +
 | 
	
		
			
				|  |  |                 " p.doctor AS doctor, " +
 | 
	
		
			
				|  |  |                 " p.doctor_name AS doctorName, " +
 | 
	
		
			
				|  |  |                 " p.`status` AS `status`, " +
 | 
	
		
			
				|  |  |                 " p.mk_fail_reason AS mkFailReason, " +
 | 
	
		
			
				|  |  |                 " p.mk_time AS mk_time, " +
 | 
	
		
			
				|  |  |                 " p.prescribe_reason AS prescribeReason, " +
 | 
	
		
			
				|  |  |                 " p.prescribe_time AS prescribeTime, " +
 | 
	
		
			
				|  |  |                 " p.pay_time AS payTime, " +
 | 
	
		
			
				|  |  |                 " p.dosage_time AS dosageTime, " +
 | 
	
		
			
				|  |  |                 " p.finish_time AS finishTime, " +
 | 
	
		
			
				|  |  |                 " p.create_time AS createTime, " +
 | 
	
		
			
				|  |  |                 " p.dept AS dept, " +
 | 
	
		
			
				|  |  |                 " p.dept_name AS deptName, " +
 | 
	
		
			
				|  |  |                 " p.hospital AS hospital, " +
 | 
	
		
			
				|  |  |                 " p.hospital_name AS hospitalName, " +
 | 
	
		
			
				|  |  |                 " p.consult AS consult, " +
 | 
	
		
			
				|  |  |                 " p.dispensary_type AS dispensaryType, " +
 | 
	
		
			
				|  |  |                 " p.reason AS reason, " +
 | 
	
		
			
				|  |  |                 " p.remark AS remark, " +
 | 
	
		
			
				|  |  |                 " p.cancel_reason AS cancelReason, " +
 | 
	
		
			
				|  |  |                 " p.ca_cert_data AS caCertData, " +
 | 
	
		
			
				|  |  |                 " p.ca_message AS caMessage, " +
 | 
	
		
			
				|  |  |                 " p.digital_sign_no AS digitalSignNo, " +
 | 
	
		
			
				|  |  |                 " p.original_data_abstract AS originalDataAbstract, " +
 | 
	
		
			
				|  |  |                 " p.str_original_data AS strOriginalData, " +
 | 
	
		
			
				|  |  |                 " p.his_dept_code AS hisDeptCode, " +
 | 
	
		
			
				|  |  |                 " p.his_doctor_code AS hisDoctorCode, " +
 | 
	
		
			
				|  |  |                 " p.his_gister_type_code AS hisGisterTypeCode, " +
 | 
	
		
			
				|  |  |                 " p.his_rate_type_code AS hisRateTypeCode, " +
 | 
	
		
			
				|  |  |                 " p.his_hospital AS hisHospital, " +
 | 
	
		
			
				|  |  |                 " p.his_register_fee AS hisRegisterFee, " +
 | 
	
		
			
				|  |  |                 " p.pay_status AS payStatus " +
 | 
	
		
			
				|  |  |                 " p.id as \"id\", " +
 | 
	
		
			
				|  |  |                 " p.real_order AS \"realOrder\"," +
 | 
	
		
			
				|  |  |                 " p.origin_real_order AS \"originRealOrder\"," +
 | 
	
		
			
				|  |  |                 " p.adm_no AS \"admNo\"," +
 | 
	
		
			
				|  |  |                 " p.origin_adm_no AS \"originAdmNo\"," +
 | 
	
		
			
				|  |  |                 " p.serial_no AS \"serialNo\"," +
 | 
	
		
			
				|  |  |                 " p.type AS \"type\", " +
 | 
	
		
			
				|  |  |                 " p.patient_code AS \"patientCode\", " +
 | 
	
		
			
				|  |  |                 " p.patient_name AS \"patientName\", " +
 | 
	
		
			
				|  |  |                 " p.ssc AS \"ssc\", " +
 | 
	
		
			
				|  |  |                 " p.doctor AS \"doctor\", " +
 | 
	
		
			
				|  |  |                 " p.doctor_name AS \"doctorName\", " +
 | 
	
		
			
				|  |  |                 " p.status AS \"status\", " +
 | 
	
		
			
				|  |  |                 " p.mk_fail_reason AS \"mkFailReason\", " +
 | 
	
		
			
				|  |  |                 " p.mk_time AS \"mk_time\", " +
 | 
	
		
			
				|  |  |                 " p.prescribe_reason AS \"prescribeReason\", " +
 | 
	
		
			
				|  |  |                 " p.prescribe_time AS \"prescribeTime\", " +
 | 
	
		
			
				|  |  |                 " p.pay_time AS \"payTime\", " +
 | 
	
		
			
				|  |  |                 " p.dosage_time AS \"dosageTime\", " +
 | 
	
		
			
				|  |  |                 " p.finish_time AS \"finishTime\", " +
 | 
	
		
			
				|  |  |                 " p.create_time AS \"createTime\", " +
 | 
	
		
			
				|  |  |                 " p.dept AS \"dept\", " +
 | 
	
		
			
				|  |  |                 " p.dept_name AS \"deptName\", " +
 | 
	
		
			
				|  |  |                 " p.hospital AS \"hospital\", " +
 | 
	
		
			
				|  |  |                 " p.hospital_name AS \"hospitalName\", " +
 | 
	
		
			
				|  |  |                 " p.consult AS \"consult\", " +
 | 
	
		
			
				|  |  |                 " p.dispensary_type AS \"dispensaryType\", " +
 | 
	
		
			
				|  |  |                 " p.reason AS \"reason\", " +
 | 
	
		
			
				|  |  |                 " p.remark AS \"remark\", " +
 | 
	
		
			
				|  |  |                 " p.cancel_reason AS \"cancelReason\", " +
 | 
	
		
			
				|  |  |                 " p.ca_cert_data AS \"caCertData\", " +
 | 
	
		
			
				|  |  |                 " p.ca_message AS \"caMessage\", " +
 | 
	
		
			
				|  |  |                 " p.digital_sign_no AS \"digitalSignNo\", " +
 | 
	
		
			
				|  |  |                 " p.original_data_abstract AS \"originalDataAbstract\", " +
 | 
	
		
			
				|  |  |                 " p.str_original_data AS \"strOriginalData\", " +
 | 
	
		
			
				|  |  |                 " p.his_dept_code AS \"hisDeptCode\", " +
 | 
	
		
			
				|  |  |                 " p.his_doctor_code AS \"hisDoctorCode\", " +
 | 
	
		
			
				|  |  |                 " p.his_gister_type_code AS \"hisGisterTypeCode\", " +
 | 
	
		
			
				|  |  |                 " p.his_rate_type_code AS \"hisRateTypeCode\", " +
 | 
	
		
			
				|  |  |                 " p.his_hospital AS \"hisHospital\", " +
 | 
	
		
			
				|  |  |                 " p.his_register_fee AS \"hisRegisterFee\", " +
 | 
	
		
			
				|  |  |                 " p.pay_status AS \"payStatus\" " +
 | 
	
		
			
				|  |  |                 " FROM " +
 | 
	
		
			
				|  |  |                 " wlyy_prescription p " +
 | 
	
		
			
				|  |  |                 " WHERE 1=1 ";
 | 
	
	
		
			
				|  | @ -568,10 +613,18 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |             sql+=" AND p.status IN ("+status+")";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(startTime)){
 | 
	
		
			
				|  |  |             sql += " AND create_time >='"+startTime+" 00:00:00'";
 | 
	
		
			
				|  |  |             if("xm_ykyy_wx".equals(wxId)){
 | 
	
		
			
				|  |  |                 sql +=" and create_time >= to_date('"+startTime+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 sql += " AND create_time >='"+startTime+" 00:00:00'";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(endTime)){
 | 
	
		
			
				|  |  |             sql += " AND create_time <='"+endTime+" 23:59:59'";
 | 
	
		
			
				|  |  |             if("xm_ykyy_wx".equals(wxId)){
 | 
	
		
			
				|  |  |                 sql +=" and create_time <= to_date('"+startTime+" 23:59:59','YYYY-MM-DD HH24:MI:SS')";
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 sql += " AND create_time <='"+endTime+" 23:59:59'";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         sql += " LIMIT " + (page - 1) * size + "," + size + "";
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionVO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(WlyyPrescriptionVO.class));
 | 
	
	
		
			
				|  | @ -647,6 +700,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         //1.保存就诊实体
 | 
	
		
			
				|  |  |         WlyyOutpatientDO outpatientDO = objectMapper.readValue(outpatientJson,WlyyOutpatientDO.class);
 | 
	
		
			
				|  |  |         BasePatientDO patientDO = basePatientDao.findById(outpatientDO.getPatient());
 | 
	
		
			
				|  |  |         BaseDoctorDO doctorDO = baseDoctorDao.findById(outpatientDO.getDoctor());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         outpatientDO.setMjz("mz");
 | 
	
		
			
				|  |  |         outpatientDO.setStatus("0");
 | 
	
	
		
			
				|  | @ -654,15 +708,24 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         outpatientDO.setIdcard(patientDO.getIdcard());
 | 
	
		
			
				|  |  |         outpatientDO.setOutpatientType("1");
 | 
	
		
			
				|  |  |         outpatientDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |         outpatientDO.setPayStatus(0);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(outpatientDO.getRegisterDate()==null){
 | 
	
		
			
				|  |  |             outpatientDO.setRegisterDate(new Date());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         WlyyOutpatientDO outpatient = outpatientDao.save(outpatientDO);
 | 
	
		
			
				|  |  |         Double price = 0.0;
 | 
	
		
			
				|  |  |         if(doctorDO!=null&&StringUtils.isNoneBlank(doctorDO.getFee())){
 | 
	
		
			
				|  |  |              price = Double.parseDouble(doctorDO.getFee());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(price==0.0){
 | 
	
		
			
				|  |  |             outpatientDO.setPayStatus(1);
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             outpatientDO.setPayStatus(0);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Double price = 0.01;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         businessOrderService.recharge(outpatient.getId(),"复诊-诊查费","2","复诊-诊查费",patientDO.getId(),patientDO.getName(),outpatient.getDoctor(),price);
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -2006,7 +2069,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 result.put("mes", "诊断完成");
 | 
	
		
			
				|  |  |                 return result;
 | 
	
		
			
				|  |  |             }else if (wechatId.equalsIgnoreCase("xm_zsyy_wx")){
 | 
	
		
			
				|  |  |                 Double price = 0.01;
 | 
	
		
			
				|  |  |                 Double price = prescription.getDrugFee();
 | 
	
		
			
				|  |  |                 businessOrderService.recharge(prescription.getId(),"处方收费","4","处方收费",prescription.getPatientCode(),prescription.getPatientName(),prescription.getDoctor(),price);
 | 
	
		
			
				|  |  |                 //上传his开方
 | 
	
		
			
				|  |  |                 //sendHisDiagnosis(jsonData, outpatientDO, prescription)
 | 
	
	
		
			
				|  | @ -2961,9 +3024,15 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | //            //协同门诊量
 | 
	
		
			
				|  |  | //            Integer coordinationCout = outpatientDao.countByDoctorAndStatusAndOutpatientType(doctor,"2","2");
 | 
	
		
			
				|  |  | //            rs.put("coordinationCout",coordinationCout);
 | 
	
		
			
				|  |  |             //医生关注
 | 
	
		
			
				|  |  |             List<BaseDoctorPatientFollowDO> doctorPatientFollowDOS = baseOrgPatientDao.findByDoctor(doctor);
 | 
	
		
			
				|  |  |             if (doctorPatientFollowDOS!=null&&doctorPatientFollowDOS.size()>0){
 | 
	
		
			
				|  |  |                 rs.put("attention","1");
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 rs.put("attention","0");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |             //专家咨询
 | 
	
		
			
				|  |  |             String zjCountsql = "SELECT id AS \"id\" FROM wlyy_consult_team WHERE doctor='"+doctor+"' AND (type=1 OR type=15)";
 | 
	
		
			
				|  |  |             List<Map<String,Object>> zjList = jdbcTemplate.queryForList(zjCountsql);
 | 
	
	
		
			
				|  | @ -2982,7 +3051,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                     "WHERE " +
 | 
	
		
			
				|  |  |                     "a.relation_code=b.id " +
 | 
	
		
			
				|  |  |                     "AND b.doctor='"+doctor+"' " +
 | 
	
		
			
				|  |  |                     "GROUP BY a.score_type";
 | 
	
		
			
				|  |  |                     "GROUP BY a.score_type ORDER BY  a.score_type ASC ";
 | 
	
		
			
				|  |  |             List<Map<String,Object>> listscore = jdbcTemplate.queryForList(sqlscore);
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |             Double doctorScore = new Double("0");
 | 
	
	
		
			
				|  | @ -3130,7 +3199,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |      * @param operator 1居民 2医生
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public Map<String,Object> cancelOutPatient(String outPatientId,String cancelType,String cancelValue,String cancelRemark,Integer operator){
 | 
	
		
			
				|  |  |     public Map<String,Object> cancelOutPatient(String outPatientId,String cancelType,String cancelValue,String cancelRemark,Integer operator,String wxId) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Map<String,Object> rs = new HashedMap();
 | 
	
		
			
				|  |  |         //判断医生是否接诊
 | 
	
	
		
			
				|  | @ -3151,16 +3220,19 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         //更改门诊状态
 | 
	
		
			
				|  |  |         WlyyOutpatientDO wlyyOutpatientDO = outpatientDao.findOne(outPatientId);
 | 
	
		
			
				|  |  |         wlyyOutpatientDO.setStatus("-1");
 | 
	
		
			
				|  |  |         String description = null;
 | 
	
		
			
				|  |  |         if (1 == operator){
 | 
	
		
			
				|  |  |             //居民取消
 | 
	
		
			
				|  |  |             wlyyOutpatientDO.setPatientCancelRemark(cancelRemark);
 | 
	
		
			
				|  |  |             wlyyOutpatientDO.setPatientCancelType(cancelType);
 | 
	
		
			
				|  |  |             wlyyOutpatientDO.setPatientCancelValue(cancelValue);
 | 
	
		
			
				|  |  |             description = "居民取消";
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             //医生拒绝接诊
 | 
	
		
			
				|  |  |             wlyyOutpatientDO.setDoctorCancelRemark(cancelRemark);
 | 
	
		
			
				|  |  |             wlyyOutpatientDO.setDoctorCancelType(cancelType);
 | 
	
		
			
				|  |  |             wlyyOutpatientDO.setDoctorCancelValue(cancelValue);
 | 
	
		
			
				|  |  |             description = "医生拒绝接诊";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         outpatientDao.save(wlyyOutpatientDO);
 | 
	
	
		
			
				|  | @ -3170,7 +3242,17 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         if(list!=null&&list.size()>0){
 | 
	
		
			
				|  |  |             patientRegisterTimeDao.delete(list);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(outPatientId);
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             if (wxId.equalsIgnoreCase("xm_ykyy_wx")){
 | 
	
		
			
				|  |  |                 businessOrderService.orderRefund(wxId,wlyyOutpatientDO.getPatient(),businessOrderDO.getOrderNo(),businessOrderDO.getPayPrice(),description);
 | 
	
		
			
				|  |  |             }else if (wxId.equalsIgnoreCase("xm_zsyy_wx")){
 | 
	
		
			
				|  |  |                 businessOrderService.ylzOrderRefund(wxId,wlyyOutpatientDO.getPatient(),businessOrderDO.getOrderNo(),businessOrderDO.getPayPrice(),description);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         rs.put("code",1);
 | 
	
		
			
				|  |  |         rs.put("mes","取消成功");
 | 
	
		
			
				|  |  |         return  rs;
 | 
	
	
		
			
				|  | @ -3323,14 +3405,14 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     public List<Map<String,Object>> findWaitingRoomPatient(String dept, Integer type) {
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  |         String sql ="SELECT " +
 | 
	
		
			
				|  |  |                 "patient.id AS id," +
 | 
	
		
			
				|  |  |                 "patient.name AS name," +
 | 
	
		
			
				|  |  |                 "patient.sex AS sex," +
 | 
	
		
			
				|  |  |                 "patient.idcard AS idcard," +
 | 
	
		
			
				|  |  |                 "patient.photo AS photo," +
 | 
	
		
			
				|  |  |                 "waitingroom.reservation_type AS type," +
 | 
	
		
			
				|  |  |                 "waitingroom.consult_type AS consult_type," +
 | 
	
		
			
				|  |  |                 "waitingroom.reservation_time AS reservation_time " +
 | 
	
		
			
				|  |  |                 "patient.id AS \"id\"," +
 | 
	
		
			
				|  |  |                 "patient.name AS \"name\"," +
 | 
	
		
			
				|  |  |                 "patient.sex AS \"sex\"," +
 | 
	
		
			
				|  |  |                 "patient.idcard AS \"idcard\"," +
 | 
	
		
			
				|  |  |                 "patient.photo AS \"photo\"," +
 | 
	
		
			
				|  |  |                 "waitingroom.reservation_type AS \"type\"," +
 | 
	
		
			
				|  |  |                 "waitingroom.consult_type AS \"consult_type\"," +
 | 
	
		
			
				|  |  |                 "waitingroom.reservation_time AS \"reservation_time\" " +
 | 
	
		
			
				|  |  |                 "FROM " +
 | 
	
		
			
				|  |  |                 "wlyy_hospital_waiting_room waitingroom," +
 | 
	
		
			
				|  |  |                 "base_patient patient " +
 | 
	
	
		
			
				|  | @ -3348,11 +3430,16 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         return list;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |     public JSONObject findWaitingRoomStatusCount(String dept) {
 | 
	
		
			
				|  |  |     public JSONObject findWaitingRoomStatusCount(String dept,String wxId) {
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  |         String totalSql = "SELECT count(id) AS total FROM wlyy_hospital_waiting_room WHERE visit_status=1 ";
 | 
	
		
			
				|  |  |         totalSql += " AND reservation_time >='"+DateUtil.dateToStrShort(new Date())+" 00:00:00'";
 | 
	
		
			
				|  |  |         totalSql += " AND reservation_time <='"+DateUtil.dateToStrShort(new Date())+" 23:59:59'";
 | 
	
		
			
				|  |  |         String totalSql = "SELECT count(id) AS \"total\" FROM wlyy_hospital_waiting_room WHERE visit_status=1 ";
 | 
	
		
			
				|  |  |         if("xm_ykyy_wx".equals(wxId)){
 | 
	
		
			
				|  |  |             totalSql +=" and reservation_time >= to_date('"+DateUtil.dateToStrShort(new Date())+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
 | 
	
		
			
				|  |  |             totalSql +=" and reservation_time <= to_date('"+DateUtil.dateToStrShort(new Date())+" 23:59:59','YYYY-MM-DD HH24:MI:SS')";
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             totalSql += " AND reservation_time >='"+DateUtil.dateToStrShort(new Date())+" 00:00:00'";
 | 
	
		
			
				|  |  |             totalSql += " AND reservation_time <='"+DateUtil.dateToStrShort(new Date())+" 23:59:59'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(totalSql);
 | 
	
		
			
				|  |  |         Long count = 0L;
 | 
	
		
			
				|  |  |         if (rstotal != null && rstotal.size() > 0) {
 | 
	
	
		
			
				|  | @ -3369,7 +3456,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         return result;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |     public List<JSONObject> findClinicRoomList(String dept,String date,String consult_status) {
 | 
	
		
			
				|  |  |     public List<JSONObject> findClinicRoomList(String dept,String date,String consult_status,String wxId) {
 | 
	
		
			
				|  |  |         if(StringUtils.isBlank(date)){
 | 
	
		
			
				|  |  |             date = DateUtil.getStringDateShort();
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -3380,7 +3467,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         if(StringUtils.isNoneBlank(dept)){
 | 
	
		
			
				|  |  |             doctorsql = doctorsql + " and dept = '"+dept+"' ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         doctorsql = doctorsql+ " GROUP BY doctor";
 | 
	
		
			
				|  |  |         doctorsql = doctorsql+ " GROUP BY doctor,doctor_name,dept,dept_name";
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |         List<Map<String,Object>> doctorlist = jdbcTemplate.queryForList(doctorsql);
 | 
	
		
			
				|  |  |     
 | 
	
	
		
			
				|  | @ -3408,24 +3495,30 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  |         //获取预约了今天的候诊居民
 | 
	
		
			
				|  |  |         String waitingSql ="SELECT count(op.id) AS waitCount," +
 | 
	
		
			
				|  |  |                 "room.doctor AS doctor, " +
 | 
	
		
			
				|  |  |                 "room.doctor_name AS doctorName " +
 | 
	
		
			
				|  |  |         String waitingSql ="SELECT count(op.id) AS \"waitCount\"," +
 | 
	
		
			
				|  |  |                 "room.doctor AS \"doctor\", " +
 | 
	
		
			
				|  |  |                 "room.doctor_name AS \"doctorName\" " +
 | 
	
		
			
				|  |  |                 "FROM wlyy_outpatient op,wlyy_hospital_waiting_room room " +
 | 
	
		
			
				|  |  |                 "WHERE op.status=0 AND room.outpatient_id=op.id AND room.consult_type=2 " +
 | 
	
		
			
				|  |  |                 "AND room.doctor IS NOT NULL ";
 | 
	
		
			
				|  |  |         if(StringUtils.isNoneBlank(dept)){
 | 
	
		
			
				|  |  |             waitingSql = waitingSql + " and op.dept = '"+dept+"' ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         waitingSql = waitingSql + "AND room.reservation_time>='"+date+" 00:00:00' AND room.reservation_time<='"+date+" 23:59:59' GROUP BY room.doctor; ";
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if("xm_ykyy_wx".equals(wxId)){
 | 
	
		
			
				|  |  |             waitingSql +=" AND room.reservation_time >= to_date('"+date+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
 | 
	
		
			
				|  |  |             waitingSql +=" AND room.reservation_time <= to_date('"+date+" 23:59:59','YYYY-MM-DD HH24:MI:SS') GROUP BY room.doctor,room.doctor_name";
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             waitingSql = waitingSql + "AND room.reservation_time>='"+date+" 00:00:00' AND room.reservation_time<='"+date+" 23:59:59' GROUP BY room.doctor,room.doctor_name; ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<Map<String,Object>> waitinglist = jdbcTemplate.queryForList(waitingSql);
 | 
	
		
			
				|  |  |         if(waitinglist!=null&&waitinglist.size()>0){
 | 
	
		
			
				|  |  |             //根据身份证计算年龄
 | 
	
		
			
				|  |  |             for(Map<String,Object> waitObj :waitinglist){
 | 
	
		
			
				|  |  |                 String doctor = (String) waitObj.get("doctor");
 | 
	
		
			
				|  |  |                 if(StringUtils.isNoneBlank(doctor)){
 | 
	
		
			
				|  |  |                     Long waitCount = (Long) waitObj.get("waitCount");
 | 
	
		
			
				|  |  |                     Long waitCount = Long.parseLong(waitObj.get("waitCount").toString()) ;
 | 
	
		
			
				|  |  |                     if(result.keySet().contains(doctor)){
 | 
	
		
			
				|  |  |                         result.get(doctor).put("waiting_count",waitCount);
 | 
	
		
			
				|  |  |                     }else{
 | 
	
	
		
			
				|  | @ -3448,18 +3541,21 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  |         //获取进行中的居民
 | 
	
		
			
				|  |  |         String onlineSql ="SELECT " +
 | 
	
		
			
				|  |  |                 "room.outpatient_id AS id," +
 | 
	
		
			
				|  |  |                 "room.patient_id AS patient_id," +
 | 
	
		
			
				|  |  |                 "room.patient_name AS patient_name," +
 | 
	
		
			
				|  |  |                 "patient.sex AS sex," +
 | 
	
		
			
				|  |  |                 "patient.idcard AS idcard," +
 | 
	
		
			
				|  |  |                 "patient.photo AS photo," +
 | 
	
		
			
				|  |  |                 "patient.birthday AS birthday," +
 | 
	
		
			
				|  |  |                 "room.consult_type AS consult_type," +
 | 
	
		
			
				|  |  |                 "date_format(room.reservation_time ,'%Y-%m-%d %H:%i:%S' ) AS time," +
 | 
	
		
			
				|  |  |                 "TIMESTAMPDIFF(MINUTE, room.reservation_time,NOW()) AS time_cost," +
 | 
	
		
			
				|  |  |                 "room.doctor AS doctor, " +
 | 
	
		
			
				|  |  |                 "room.doctor_name AS doctorName " +
 | 
	
		
			
				|  |  |                 "room.outpatient_id AS \"id\"," +
 | 
	
		
			
				|  |  |                 "room.patient_id AS \"patient_id\"," +
 | 
	
		
			
				|  |  |                 "room.patient_name AS \"patient_name\"," +
 | 
	
		
			
				|  |  |                 "patient.sex AS \"sex\"," +
 | 
	
		
			
				|  |  |                 "patient.idcard AS \"idcard\"," +
 | 
	
		
			
				|  |  |                 "patient.photo AS \"photo\"," +
 | 
	
		
			
				|  |  |                 "patient.birthday AS \"birthday\"," +
 | 
	
		
			
				|  |  |                 "room.consult_type AS \"consult_type\",";
 | 
	
		
			
				|  |  |         if("xm_ykyy_wx".equals(wxId)){
 | 
	
		
			
				|  |  |             onlineSql = onlineSql + "to_char(room.reservation_time,'YYYY-MM-DD hh24:mi:ss')  AS \"time\",ceil((sysdate-to_date(to_char(room.reservation_time,'YYYY-MM-DD hh24:mi:ss'),'YYYY-MM-DD hh24:mi:ss'))* 24 * 60) AS \"time_cost\",";
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             onlineSql = onlineSql + "date_format(room.reservation_time,'%Y-%m-%d %H:%i:%S' )  AS \"time\",TIMESTAMPDIFF(MINUTE, room.reservation_time,NOW()) AS \"time_cost\",";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |                 onlineSql=onlineSql+"room.doctor AS \"doctor\", " +
 | 
	
		
			
				|  |  |                 "room.doctor_name AS \"doctorName\" " +
 | 
	
		
			
				|  |  |                 "FROM " +
 | 
	
		
			
				|  |  |                 "wlyy_hospital_waiting_room room," +
 | 
	
		
			
				|  |  |                 "base_patient patient," +
 | 
	
	
		
			
				|  | @ -3474,18 +3570,40 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         if(StringUtils.isNoneBlank(dept)){
 | 
	
		
			
				|  |  |             onlineSql = onlineSql + " and outpatient.dept = '"+dept+"' ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | /*
 | 
	
		
			
				|  |  |         onlineSql = onlineSql+ "AND room.reservation_time>='"+date+" 00:00:00' AND room.reservation_time<='"+date+" 23:59:59' GROUP BY room.doctor";
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  | */
 | 
	
		
			
				|  |  |         if("xm_ykyy_wx".equalsIgnoreCase(wxId)){
 | 
	
		
			
				|  |  |             onlineSql +=" AND room.reservation_time >= to_date('"+date+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
 | 
	
		
			
				|  |  |             onlineSql +=" AND room.reservation_time <= to_date('"+date+" 23:59:59','YYYY-MM-DD HH24:MI:SS') ";
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             onlineSql = onlineSql+ "AND room.reservation_time>='"+date+" 00:00:00' AND room.reservation_time<='"+date+" 23:59:59' ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<Map<String,Object>> onlinelist = jdbcTemplate.queryForList(onlineSql);
 | 
	
		
			
				|  |  |         if(onlinelist!=null&&onlinelist.size()>0){
 | 
	
		
			
				|  |  |             //根据身份证计算年龄
 | 
	
		
			
				|  |  |             for(Map<String,Object> onlineObj :onlinelist){
 | 
	
		
			
				|  |  |             List<String> doctors = new ArrayList<>();
 | 
	
		
			
				|  |  |             List<Map<String,Object>> onlines = new ArrayList<>();
 | 
	
		
			
				|  |  |             for (Map<String,Object> onlineObj :onlinelist){
 | 
	
		
			
				|  |  |                 String doctor = (String) onlineObj.get("doctor");
 | 
	
		
			
				|  |  |                 if (doctors!=null&&doctors.size()!=0){
 | 
	
		
			
				|  |  |                     if (!doctors.contains(doctor)){
 | 
	
		
			
				|  |  |                         doctors.add(doctor);
 | 
	
		
			
				|  |  |                         onlines.add(onlineObj);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     doctors.add(doctor);
 | 
	
		
			
				|  |  |                     onlines.add(onlineObj);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             for(Map<String,Object> onlineObj :onlines){
 | 
	
		
			
				|  |  |                 String doctor = (String) onlineObj.get("doctor");
 | 
	
		
			
				|  |  |                 if(StringUtils.isNoneBlank(doctor)){
 | 
	
		
			
				|  |  |                     if(result.keySet().contains(doctor)){
 | 
	
		
			
				|  |  |                         result.get(doctor).put("visit_status",2);
 | 
	
		
			
				|  |  |                         result.get(doctor).put("patient_name",(String) onlineObj.get("patient_name"));
 | 
	
		
			
				|  |  |                         result.get(doctor).put("time_cost",(Long) onlineObj.get("time_cost"));
 | 
	
		
			
				|  |  |                         result.get(doctor).put("time_cost",Long.parseLong(onlineObj.get("time_cost").toString()));
 | 
	
		
			
				|  |  |                     }else{
 | 
	
		
			
				|  |  |                         JSONObject jsonObject = new JSONObject();
 | 
	
		
			
				|  |  |                         jsonObject.put("id",doctor);
 | 
	
	
		
			
				|  | @ -3498,7 +3616,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                         jsonObject.put("visit_status",2);
 | 
	
		
			
				|  |  |                         jsonObject.put("waiting_count",0);
 | 
	
		
			
				|  |  |                         jsonObject.put("patient_name",(String) onlineObj.get("patient_name"));
 | 
	
		
			
				|  |  |                         jsonObject.put("time_cost",(Long) onlineObj.get("time_cost"));
 | 
	
		
			
				|  |  |                         jsonObject.put("time_cost",Long.parseLong(onlineObj.get("time_cost").toString()));
 | 
	
		
			
				|  |  |                         result.put(doctor,jsonObject);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
	
		
			
				|  | @ -3592,7 +3710,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     public List<Map<String,Object>> findDoctorByHospitalAndDiseaseAndDept(String iswork,String patientid,String orgCode, String dept,
 | 
	
		
			
				|  |  |                                                                           String diseaseKey, String doctorNameKey,
 | 
	
		
			
				|  |  |                                                                           String jobTitleNameKey, String outpatientType,
 | 
	
		
			
				|  |  |                                                                           String keyName, String workingTime, String consultStatus,String chargType,String consutlSort,Integer page,Integer pagesize) {
 | 
	
		
			
				|  |  |                                                                           String keyName, String workingTime, String consultStatus,String chargType,String consutlSort,String isAttention,Integer page,Integer pagesize) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |       /*  if(page >=1){
 | 
	
		
			
				|  |  |             page --;
 | 
	
	
		
			
				|  | @ -3616,14 +3734,18 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 " d.outpatient_type AS \"outpatientType\"," +
 | 
	
		
			
				|  |  |                 " a.total AS \"consultTotal\"," +
 | 
	
		
			
				|  |  |                 " h.org_name AS \"orgName\"," +
 | 
	
		
			
				|  |  |                 " follow.patient AS \"followid\"," +
 | 
	
		
			
				|  |  |                 " h.org_code AS \"orgCode\"" +
 | 
	
		
			
				|  |  |                 " FROM " +
 | 
	
		
			
				|  |  |                 " base_doctor d " +
 | 
	
		
			
				|  |  |                 " JOIN base_doctor_hospital h ON h.doctor_code = d.id "+
 | 
	
		
			
				|  |  |                 " Left join base_doctor_patient_follow follow on follow.doctor = d.id and follow.patient='"+patientid+"'"+
 | 
	
		
			
				|  |  |                 " Left join ( select count(id) as total,doctor from wlyy_outpatient where status = 2 GROUP BY doctor ) a on a.doctor = d.id ";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if ("1".equalsIgnoreCase(isAttention)){
 | 
	
		
			
				|  |  |             sql+=" join base_doctor_patient_follow follow on follow.doctor = d.id and follow.patient ='"+patientid+"' ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if ("0".equalsIgnoreCase(isAttention)) {
 | 
	
		
			
				|  |  |             sql += " join base_doctor_patient_follow follow on follow.doctor = d.id and follow.patient !='" + patientid + "' ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(diseaseKey)){
 | 
	
		
			
				|  |  |             sql+=" left join wlyy_doctor_special_disease sp on d.id = sp.doctor_code ";
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -3715,7 +3837,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(workingTime)){
 | 
	
		
			
				|  |  |             sql+=" AND wk.date = :workingTime ";
 | 
	
		
			
				|  |  |             sql+=" AND wk.work_date = :workingTime ";
 | 
	
		
			
				|  |  |             params.put("workingTime",workingTime);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     
 | 
	
	
		
			
				|  | @ -3956,6 +4078,8 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         rs.put("idcard",basePatientDO.getIdcard());
 | 
	
		
			
				|  |  |         rs.put("age",IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()));
 | 
	
		
			
				|  |  |         rs.put("mobile",basePatientDO.getMobile());
 | 
	
		
			
				|  |  |         rs.put("photo",basePatientDO.getPhoto());
 | 
	
		
			
				|  |  |         rs.put("address",basePatientDO.getAddress());
 | 
	
		
			
				|  |  |         if (patientMedicareCardDO!=null){
 | 
	
		
			
				|  |  |             rs.put("ssc",patientMedicareCardDO.getCode());
 | 
	
		
			
				|  |  |         }else {
 | 
	
	
		
			
				|  | @ -3965,12 +4089,58 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public Map<String,Object> updatePatientInfo(String patient,String name,String idcard,String ssc){
 | 
	
		
			
				|  |  |     public Map<String,Object> updatePatientInfo(String patient,String name,String idcard,String ssc,Integer sex,String townCode,String townName,String committeeCode,String committeeName,String address,String photo,String mobile,String province,String provinceName,String city,String cityName){
 | 
	
		
			
				|  |  |         Map<String,Object> rs = new HashedMap();
 | 
	
		
			
				|  |  |         BasePatientDO basePatientDO = basePatientDao.findById(patient);
 | 
	
		
			
				|  |  |         PatientMedicareCardDO patientMedicareCardDO = basePatientMedicareCardDao.findByTypeAndPatientCodeAndDel("A_01",patient,"1");
 | 
	
		
			
				|  |  |         basePatientDO.setName(name);
 | 
	
		
			
				|  |  |         basePatientDO.setIdcard(idcard);
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(name)){
 | 
	
		
			
				|  |  |             basePatientDO.setName(name);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(idcard)){
 | 
	
		
			
				|  |  |             basePatientDO.setIdcard(idcard);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (sex!=null){
 | 
	
		
			
				|  |  |             basePatientDO.setSex(sex);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(province)){
 | 
	
		
			
				|  |  |             basePatientDO.setProvinceCode(province);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(provinceName)){
 | 
	
		
			
				|  |  |             basePatientDO.setProvinceName(provinceName);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(city)){
 | 
	
		
			
				|  |  |             basePatientDO.setCityCode(city);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(cityName)){
 | 
	
		
			
				|  |  |             basePatientDO.setCityName(cityName);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(townCode)){
 | 
	
		
			
				|  |  |             basePatientDO.setTownCode(townCode);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(townName)){
 | 
	
		
			
				|  |  |             basePatientDO.setTownName(townName);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(committeeCode)){
 | 
	
		
			
				|  |  |             basePatientDO.setCommitteeCode(committeeCode);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(committeeName)){
 | 
	
		
			
				|  |  |             basePatientDO.setCommitteeName(committeeName);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(address)){
 | 
	
		
			
				|  |  |             basePatientDO.setAddress(address);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(photo)){
 | 
	
		
			
				|  |  |             basePatientDO.setPhoto(photo);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneBlank(mobile)){
 | 
	
		
			
				|  |  |             basePatientDO.setMobile(mobile);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         basePatientDO = basePatientDao.save(basePatientDO);
 | 
	
		
			
				|  |  |         if (patientMedicareCardDO!=null){
 | 
	
		
			
				|  |  |             patientMedicareCardDO.setCode(ssc);
 | 
	
	
		
			
				|  | @ -3996,6 +4166,8 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         rs.put("idcard",basePatientDO.getIdcard());
 | 
	
		
			
				|  |  |         rs.put("age",IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()));
 | 
	
		
			
				|  |  |         rs.put("mobile",basePatientDO.getMobile());
 | 
	
		
			
				|  |  |         rs.put("photo",basePatientDO.getPhoto());
 | 
	
		
			
				|  |  |         rs.put("address",basePatientDO.getAddress());
 | 
	
		
			
				|  |  |         if (patientMedicareCardDO!=null){
 | 
	
		
			
				|  |  |             rs.put("ssc",patientMedicareCardDO.getCode());
 | 
	
		
			
				|  |  |         }else {
 | 
	
	
		
			
				|  | @ -4285,7 +4457,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |         Long videoOnlineCount = 0l;
 | 
	
		
			
				|  |  |         if (rstotal != null && rstotal.size() > 0) {
 | 
	
		
			
				|  |  |             videoOnlineCount = (Long) rstotal.get(0).get("total");
 | 
	
		
			
				|  |  |             videoOnlineCount = Long.parseLong(rstotal.get(0).get("total").toString()) ;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |         return videoOnlineCount;
 | 
	
	
		
			
				|  | @ -4396,9 +4568,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |      * @param type 1图文 2视频
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public Long getWaitVideoCount(String doctor,String type,String outpatient_type) {
 | 
	
		
			
				|  |  |     public Long getWaitVideoCount(String doctor,String type,String outpatient_type,String wxId) {
 | 
	
		
			
				|  |  |         String sql ="SELECT " +
 | 
	
		
			
				|  |  |                 "count(outpatient.id) AS total " +
 | 
	
		
			
				|  |  |                 "count(outpatient.id) AS \"total\" " +
 | 
	
		
			
				|  |  |                 "FROM " +
 | 
	
		
			
				|  |  |                 "wlyy_outpatient outpatient," +
 | 
	
		
			
				|  |  |                 "base_patient patient " +
 | 
	
	
		
			
				|  | @ -4411,11 +4583,19 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         if("1".equals(outpatient_type)){//复诊
 | 
	
		
			
				|  |  |             sql =  sql + " AND outpatient.type= '"+type+"' ";
 | 
	
		
			
				|  |  |             if("2".equals(type)){//视频复诊才需要判断时间,
 | 
	
		
			
				|  |  |                 sql =  sql + " AND outpatient.register_date is not null AND  outpatient.register_date >= '"+DateUtil.dateToStrShort(new Date())+" 00:00:00' ";
 | 
	
		
			
				|  |  |                 if("xm_ykyy_wx".equals(wxId)){
 | 
	
		
			
				|  |  |                     sql +=" AND outpatient.register_date is not null and outpatient.register_date >= to_date('"+DateUtil.dateToStrShort(new Date())+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     sql =  sql + " AND outpatient.register_date is not null AND  outpatient.register_date >= '"+DateUtil.dateToStrShort(new Date())+" 00:00:00' ";
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }else if("2".equals(outpatient_type)){
 | 
	
		
			
				|  |  |             //协同门诊也需要判断时间
 | 
	
		
			
				|  |  |             sql =  sql + " AND outpatient.register_date is not null AND  outpatient.register_date >= '"+DateUtil.dateToStrShort(new Date())+" 00:00:00' ";
 | 
	
		
			
				|  |  |             if("xm_ykyy_wx".equals(wxId)){
 | 
	
		
			
				|  |  |                 sql +=" AND outpatient.register_date is not null and outpatient.register_date >= to_date('"+DateUtil.dateToStrShort(new Date())+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 sql =  sql + " AND outpatient.register_date is not null AND  outpatient.register_date >= '"+DateUtil.dateToStrShort(new Date())+" 00:00:00' ";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |     
 | 
	
	
		
			
				|  | @ -4527,9 +4707,11 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 if("1".equals(outpatient.getType())){
 | 
	
		
			
				|  |  |                     systemMessageDO.setTitle("图文复诊");
 | 
	
		
			
				|  |  |                     systemMessageDO.setType("1");
 | 
	
		
			
				|  |  |                     saveInquirySystemMessage(outpatient);
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     systemMessageDO.setTitle("视频复诊");
 | 
	
		
			
				|  |  |                     systemMessageDO.setTitle("视频复诊预约成功");
 | 
	
		
			
				|  |  |                     systemMessageDO.setType("2");
 | 
	
		
			
				|  |  |                     saveInquirySystemMessage(outpatient);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             systemMessageDO.setReceiver(outpatient.getDoctor());
 | 
	
	
		
			
				|  | @ -4544,6 +4726,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |             data.put("age",IdCardUtil.getAgeForIdcard(outpatient.getIdcard()));
 | 
	
		
			
				|  |  |             data.put("gender",IdCardUtil.getSexForIdcard_new(outpatient.getIdcard()));
 | 
	
		
			
				|  |  |             data.put("question",outpatient.getDescription());
 | 
	
		
			
				|  |  |             String msg="您的视频复诊已预约成功。\n" +
 | 
	
		
			
				|  |  |                     "预计"+outpatient.getDoctorName()+"医生将于"+outpatient.getRegisterDate()+" 与您进行视频咨询。请留意系统消息或微信公众号消息。咨询开始时,医生将邀请您进行视频通话,请您关注消息提醒,及时接受医生视频邀请。";
 | 
	
		
			
				|  |  |             data.put("msg",msg);
 | 
	
		
			
				|  |  |             systemMessageDO.setData(data.toString());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             systemMessageService.saveMessage(systemMessageDO);
 | 
	
	
		
			
				|  | @ -4555,6 +4740,43 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         return systemMessageDO;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public void saveInquirySystemMessage(WlyyOutpatientDO outpatient){
 | 
	
		
			
				|  |  |         SystemMessageDO systemMessageDO = new SystemMessageDO();
 | 
	
		
			
				|  |  |         String msg="";
 | 
	
		
			
				|  |  |         String type="";
 | 
	
		
			
				|  |  |         if("1".equals(outpatient.getType())){
 | 
	
		
			
				|  |  |             type="9";
 | 
	
		
			
				|  |  |             msg=outpatient.getPatientName()+",您好!您有一个图文复诊订单待支付,请及时支付。点击完成支付,如您已支付请忽略本条信息。";
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             type="16";
 | 
	
		
			
				|  |  |             msg=outpatient.getPatientName()+",您好!您有一个视频复诊订单待支付,请及时支付。点击完成支付,如您已支付请忽略本条信息。";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         systemMessageDO.setTitle("支付提醒");
 | 
	
		
			
				|  |  |         systemMessageDO.setType("11");
 | 
	
		
			
				|  |  |         systemMessageDO.setSender(outpatient.getDoctor());
 | 
	
		
			
				|  |  |         systemMessageDO.setSenderName(outpatient.getDoctorName());
 | 
	
		
			
				|  |  |         systemMessageDO.setRelationCode(outpatient.getId());
 | 
	
		
			
				|  |  |         systemMessageDO.setReceiver(outpatient.getPatient());
 | 
	
		
			
				|  |  |         systemMessageDO.setReceiverName(outpatient.getPatientName());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         JSONObject data = new JSONObject();
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             data.put("name",outpatient.getPatientName());
 | 
	
		
			
				|  |  |             data.put("age",IdCardUtil.getAgeForIdcard(outpatient.getIdcard()));
 | 
	
		
			
				|  |  |             data.put("gender",IdCardUtil.getSexForIdcard_new(outpatient.getIdcard()));
 | 
	
		
			
				|  |  |             data.put("question",outpatient.getDescription());
 | 
	
		
			
				|  |  |             data.put("msg",msg);
 | 
	
		
			
				|  |  |             data.put("type",type);
 | 
	
		
			
				|  |  |             systemMessageDO.setData(data.toString());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             systemMessageService.saveMessage(systemMessageDO);
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 指定门诊医生医生
 | 
	
		
			
				|  |  |      * @param outpatientJson
 | 
	
	
		
			
				|  | @ -4716,7 +4938,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |      * @param status
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public Envelop findByGeneralDoctor(String generalDoctor,String startDate,String endDate,String status,String sort,Integer page,Integer size){
 | 
	
		
			
				|  |  |     public Envelop findByGeneralDoctor(String generalDoctor,String startDate,String endDate,String status,String sort,Integer page,Integer size,String wxId){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String sqlTotal ="SELECT " +
 | 
	
		
			
				|  |  |                 " count(1) AS total "+
 | 
	
	
		
			
				|  | @ -4725,10 +4947,20 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 " WHERE " +
 | 
	
		
			
				|  |  |                 " o.general_doctor = '"+generalDoctor+"'";
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(startDate)){
 | 
	
		
			
				|  |  |             sqlTotal += " AND o.register_date >='"+startDate+" 00:00:00' ";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             if("xm_ykyy_wx".equals(wxId)){
 | 
	
		
			
				|  |  |                 sqlTotal +=" and o.register_date >= to_date('"+startDate+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 sqlTotal += " AND o.register_date >='"+startDate+" 00:00:00' ";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(endDate)){
 | 
	
		
			
				|  |  |             sqlTotal += " AND o.register_date <='"+endDate+" 23:59:59' ";
 | 
	
		
			
				|  |  |             if("xm_ykyy_wx".equals(wxId)){
 | 
	
		
			
				|  |  |                 sqlTotal +=" and o.register_date <= to_date('"+endDate+" 23:59:59','YYYY-MM-DD HH24:MI:SS')";
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 sqlTotal += " AND o.register_date <='"+endDate+" 23:59:59' ";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(status)){
 | 
	
		
			
				|  |  |             sqlTotal += " AND o.status ='"+status+"'";
 | 
	
	
		
			
				|  | @ -4738,66 +4970,74 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Long total = 0l;
 | 
	
		
			
				|  |  |         if (rstotal != null && rstotal.size() > 0) {
 | 
	
		
			
				|  |  |             total = (Long) rstotal.get(0).get("total");
 | 
	
		
			
				|  |  |             total = Long.parseLong(rstotal.get(0).get("total").toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         String sql ="SELECT " +
 | 
	
		
			
				|  |  |                 " o.id AS id, " +
 | 
	
		
			
				|  |  |                 " o.adm_no AS admNo, " +
 | 
	
		
			
				|  |  |                 " o.origin_adm_no AS originAdmNo, " +
 | 
	
		
			
				|  |  |                 " o.register_no AS registerNo, " +
 | 
	
		
			
				|  |  |                 " o.origin_register_no AS originRegisterNo, " +
 | 
	
		
			
				|  |  |                 " o.origin_con_no AS originConNo, " +
 | 
	
		
			
				|  |  |                 " o.con_no AS conNo, " +
 | 
	
		
			
				|  |  |                 " o.outpatient_type AS outpatientType, " +
 | 
	
		
			
				|  |  |                 " o.type AS type, " +
 | 
	
		
			
				|  |  |                 " o.hospital AS hospital, " +
 | 
	
		
			
				|  |  |                 " o.hospital_name AS hospitalName, " +
 | 
	
		
			
				|  |  |                 " o.win_no AS winNo, " +
 | 
	
		
			
				|  |  |                 " o.dept AS dept, " +
 | 
	
		
			
				|  |  |                 " o.dept_name AS deptName, " +
 | 
	
		
			
				|  |  |                 " o.patient AS patient, " +
 | 
	
		
			
				|  |  |                 " o.patient_name AS patientName, " +
 | 
	
		
			
				|  |  |                 " o.doctor AS doctor, " +
 | 
	
		
			
				|  |  |                 " o.doctor_name AS doctorName, " +
 | 
	
		
			
				|  |  |                 " o.general_doctor AS generalDoctor, " +
 | 
	
		
			
				|  |  |                 " o.general_doctor_name AS generalDoctorName, " +
 | 
	
		
			
				|  |  |                 " o.idcard AS idcard, " +
 | 
	
		
			
				|  |  |                 " o.card_no AS cardNo, " +
 | 
	
		
			
				|  |  |                 " o.mjz AS mjz, " +
 | 
	
		
			
				|  |  |                 " o.icd10 AS icd10, "+
 | 
	
		
			
				|  |  |                 " o.icd10_name AS icd10Name, " +
 | 
	
		
			
				|  |  |                 " o.advice AS advice, " +
 | 
	
		
			
				|  |  |                 " o.adm_date AS admDate, " +
 | 
	
		
			
				|  |  |                 " o.description AS description, " +
 | 
	
		
			
				|  |  |                 " o.disease_img AS diseaseImg, " +
 | 
	
		
			
				|  |  |                 " o.create_time AS createTime, " +
 | 
	
		
			
				|  |  |                 " o.con_date AS conDate, " +
 | 
	
		
			
				|  |  |                 " o.patient_cancel_type AS patientCancelType, " +
 | 
	
		
			
				|  |  |                 " o.patient_cancel_value AS patientCancelValue, " +
 | 
	
		
			
				|  |  |                 " o.patient_cancel_remark AS patientCancelRemark, " +
 | 
	
		
			
				|  |  |                 " o.register_date AS registerDate, " +
 | 
	
		
			
				|  |  |                 " o.`status` AS STATUS, " +
 | 
	
		
			
				|  |  |                 " o.evaluate_status AS evaluateStatus " +
 | 
	
		
			
				|  |  |                 " o.id AS \"id\", " +
 | 
	
		
			
				|  |  |                 " o.adm_no AS \"admNo\", " +
 | 
	
		
			
				|  |  |                 " o.origin_adm_no AS \"originAdmNo\", " +
 | 
	
		
			
				|  |  |                 " o.register_no AS \"registerNo\", " +
 | 
	
		
			
				|  |  |                 " o.origin_register_no AS \"originRegisterNo\", " +
 | 
	
		
			
				|  |  |                 " o.origin_con_no AS \"originConNo\", " +
 | 
	
		
			
				|  |  |                 " o.con_no AS \"conNo\", " +
 | 
	
		
			
				|  |  |                 " o.outpatient_type AS \"outpatientType\", " +
 | 
	
		
			
				|  |  |                 " o.type AS \"type\", " +
 | 
	
		
			
				|  |  |                 " o.hospital AS \"hospital\", " +
 | 
	
		
			
				|  |  |                 " o.hospital_name AS \"hospitalName\", " +
 | 
	
		
			
				|  |  |                 " o.win_no AS \"winNo\", " +
 | 
	
		
			
				|  |  |                 " o.dept AS \"dept\", " +
 | 
	
		
			
				|  |  |                 " o.dept_name AS \"deptName\", " +
 | 
	
		
			
				|  |  |                 " o.patient AS \"patient\", " +
 | 
	
		
			
				|  |  |                 " o.patient_name AS \"patientName\", " +
 | 
	
		
			
				|  |  |                 " o.doctor AS \"doctor\", " +
 | 
	
		
			
				|  |  |                 " o.doctor_name AS \"doctorName\", " +
 | 
	
		
			
				|  |  |                 " o.general_doctor AS \"generalDoctor\", " +
 | 
	
		
			
				|  |  |                 " o.general_doctor_name AS \"generalDoctorName\", " +
 | 
	
		
			
				|  |  |                 " o.idcard AS \"idcard\", " +
 | 
	
		
			
				|  |  |                 " o.card_no AS \"cardNo\", " +
 | 
	
		
			
				|  |  |                 " o.mjz AS \"mjz\", " +
 | 
	
		
			
				|  |  |                 " o.icd10 AS \"icd10\", "+
 | 
	
		
			
				|  |  |                 " o.icd10_name AS \"icd10Name\", " +
 | 
	
		
			
				|  |  |                 " o.advice AS \"advice\", " +
 | 
	
		
			
				|  |  |                 " o.adm_date AS \"admDate\", " +
 | 
	
		
			
				|  |  |                 " o.description AS \"description\", " +
 | 
	
		
			
				|  |  |                 " o.disease_img AS \"diseaseImg\", " +
 | 
	
		
			
				|  |  |                 " o.create_time AS \"createTime\", " +
 | 
	
		
			
				|  |  |                 " o.con_date AS \"conDate\", " +
 | 
	
		
			
				|  |  |                 " o.patient_cancel_type AS \"patientCancelType\", " +
 | 
	
		
			
				|  |  |                 " o.patient_cancel_value AS \"patientCancelValue\", " +
 | 
	
		
			
				|  |  |                 " o.patient_cancel_remark AS \"patientCancelRemark\", " +
 | 
	
		
			
				|  |  |                 " o.register_date AS \"registerDate\", " +
 | 
	
		
			
				|  |  |                 " o.status AS \"STATUS\", " +
 | 
	
		
			
				|  |  |                 " o.evaluate_status AS \"evaluateStatus\" " +
 | 
	
		
			
				|  |  |                 " FROM " +
 | 
	
		
			
				|  |  |                 " wlyy_outpatient o " +
 | 
	
		
			
				|  |  |                 " WHERE " +
 | 
	
		
			
				|  |  |                 " o.general_doctor = '"+generalDoctor+"'";
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(startDate)){
 | 
	
		
			
				|  |  |             sql+=" AND o.register_date >='"+startDate+" 00:00:00'";
 | 
	
		
			
				|  |  |             if("xm_ykyy_wx".equals(wxId)){
 | 
	
		
			
				|  |  |                 sql +=" and o.register_date >= to_date('"+startDate+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 sql += " AND o.register_date >='"+startDate+" 00:00:00' ";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(endDate)){
 | 
	
		
			
				|  |  |             sql+=" AND o.register_date <='"+endDate+" 23:59:59'";
 | 
	
		
			
				|  |  |             if("xm_ykyy_wx".equals(wxId)){
 | 
	
		
			
				|  |  |                 sql +=" and o.register_date <= to_date('"+endDate+" 23:59:59','YYYY-MM-DD HH24:MI:SS')";
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 sql += " AND o.register_date <='"+endDate+" 23:59:59' ";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(status)){
 | 
	
		
			
				|  |  |             sql+=" AND o.status ='"+status+"'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(sort)){
 | 
	
		
			
				|  |  |             sql += " ORDER BY o.register_date "+sort+" LIMIT " + (page - 1) * size + "," + size + "";
 | 
	
		
			
				|  |  |             sql += " ORDER BY o.register_date "+sort;
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             sql += " ORDER BY o.register_date ASC LIMIT " + (page - 1) * size + "," + size + "";
 | 
	
		
			
				|  |  |             sql += " ORDER BY o.register_date ASC ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |         List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,page,size);
 | 
	
		
			
				|  |  |         //List<WlyyOutpatientDO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(WlyyOutpatientDO.class));
 | 
	
		
			
				|  |  |         return MixEnvelop.getSuccessListWithPage(BaseHospitalRequestMapping.Prescription.api_success, list, page, size, total);
 | 
	
		
			
				|  |  |     }
 | 
	
	
		
			
				|  | @ -4835,7 +5075,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //统计科预约医生
 | 
	
		
			
				|  |  |         String sql = "SELECT " +
 | 
	
		
			
				|  |  |                 " COUNT(1) AS total " +
 | 
	
		
			
				|  |  |                 " COUNT(1) AS \"total\" " +
 | 
	
		
			
				|  |  |                 " FROM " +
 | 
	
		
			
				|  |  |                 " base_doctor d " +
 | 
	
		
			
				|  |  |                 " JOIN base_doctor_role r ON d.id = r.doctor_code " +
 | 
	
	
		
			
				|  | @ -4854,7 +5094,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //统计在线医生
 | 
	
		
			
				|  |  |         String onlineSql="SELECT " +
 | 
	
		
			
				|  |  |                 " COUNT(1) AS total " +
 | 
	
		
			
				|  |  |                 " COUNT(1) AS \"total\" " +
 | 
	
		
			
				|  |  |                 " FROM " +
 | 
	
		
			
				|  |  |                 " base_doctor d " +
 | 
	
		
			
				|  |  |                 " JOIN base_doctor_role r ON d.id = r.doctor_code " +
 | 
	
	
		
			
				|  | @ -4867,7 +5107,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Long onlineTotal = 0l;
 | 
	
		
			
				|  |  |         if (oltotal != null && oltotal.size() > 0) {
 | 
	
		
			
				|  |  |             onlineTotal = (Long) oltotal.get(0).get("total");
 | 
	
		
			
				|  |  |             onlineTotal = Long.parseLong(oltotal.get(0).get("total").toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         rs.put("onlineTotal",onlineTotal);
 | 
	
	
		
			
				|  | @ -4888,7 +5128,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |         //总数
 | 
	
		
			
				|  |  |         String sqlAll = "SELECT " +
 | 
	
		
			
				|  |  |                 " COUNT(room.outpatient_id) AS total " +
 | 
	
		
			
				|  |  |                 " COUNT(room.outpatient_id) AS \"total\" " +
 | 
	
		
			
				|  |  |                 "FROM " +
 | 
	
		
			
				|  |  |                 "wlyy_hospital_waiting_room room," +
 | 
	
		
			
				|  |  |                 "wlyy_outpatient outpatient " +
 | 
	
	
		
			
				|  | @ -4907,7 +5147,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |         //图文复诊
 | 
	
		
			
				|  |  |         String imgAll = "SELECT " +
 | 
	
		
			
				|  |  |                 " COUNT(room.outpatient_id) AS total " +
 | 
	
		
			
				|  |  |                 " COUNT(room.outpatient_id) AS \"total\" " +
 | 
	
		
			
				|  |  |                 "FROM " +
 | 
	
		
			
				|  |  |                 "wlyy_hospital_waiting_room room," +
 | 
	
		
			
				|  |  |                 "wlyy_outpatient outpatient " +
 | 
	
	
		
			
				|  | @ -4926,7 +5166,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |         //视频复诊
 | 
	
		
			
				|  |  |         String spsql = "SELECT " +
 | 
	
		
			
				|  |  |                 " COUNT(room.outpatient_id) AS total " +
 | 
	
		
			
				|  |  |                 " COUNT(room.outpatient_id) AS \"total\" " +
 | 
	
		
			
				|  |  |                 "FROM " +
 | 
	
		
			
				|  |  |                 "wlyy_hospital_waiting_room room," +
 | 
	
		
			
				|  |  |                 "wlyy_outpatient outpatient " +
 | 
	
	
		
			
				|  | @ -4946,7 +5186,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  |         //协同门诊
 | 
	
		
			
				|  |  |         String xtsql = "SELECT " +
 | 
	
		
			
				|  |  |                 " COUNT(room.outpatient_id) AS total " +
 | 
	
		
			
				|  |  |                 " COUNT(room.outpatient_id) AS \"total\" " +
 | 
	
		
			
				|  |  |                 "FROM " +
 | 
	
		
			
				|  |  |                 "wlyy_hospital_waiting_room room," +
 | 
	
		
			
				|  |  |                 "wlyy_outpatient outpatient " +
 | 
	
	
		
			
				|  | @ -5469,11 +5709,11 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         if (status==2){
 | 
	
		
			
				|  |  |             /*prescriptionDao.updateCheckStatus(prescriptionId,2,reason,20);*/
 | 
	
		
			
				|  |  |             logger.info("开始====="+wlyyPrescriptionDO.getCheckStatus());
 | 
	
		
			
				|  |  |             WlyyOutpatientDO outpatientDO = outpatientDao.findById(wlyyPrescriptionDO.getOutpatientId());
 | 
	
		
			
				|  |  |             if (wxId.equalsIgnoreCase("xm_zsyy_wx")){
 | 
	
		
			
				|  |  |                 try {
 | 
	
		
			
				|  |  |                     List<WlyyPrescriptionInfoDO> infoDOS = prescriptionInfoDao.findByPrescriptionId(prescriptionId,1);
 | 
	
		
			
				|  |  |                     List<WlyyInspectionDO> inspectionDOS = wlyyInspectionDao.findByPrescriptionId(prescriptionId,1);
 | 
	
		
			
				|  |  |                     WlyyOutpatientDO outpatientDO = outpatientDao.findById(wlyyPrescriptionDO.getOutpatientId());
 | 
	
		
			
				|  |  |                     DoctorMappingDO doctorMappingDO = doctorMappingService.findMappingCode(outpatientDO.getDoctor(), outpatientDO.getHospital());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     //his处方拼接开方条件
 | 
	
	
		
			
				|  | @ -5482,12 +5722,37 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                         //设置his药品查询条件
 | 
	
		
			
				|  |  |                         setInfoJsonParam(jsonData, doctorMappingDO, outpatientDO, wlyyPrescriptionDO, info, outpatientDO.getIcd10());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     for (WlyyInspectionDO ins:inspectionDOS){
 | 
	
		
			
				|  |  |                         //设置his药品查询条件
 | 
	
		
			
				|  |  |                         setInspectionParam(jsonData, doctorMappingDO, outpatientDO, wlyyPrescriptionDO, ins, outpatientDO.getIcd10());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     sendHisDiagnosis(jsonData, outpatientDO, wlyyPrescriptionDO);
 | 
	
		
			
				|  |  |                     Map<String,Object> map = sendHisDiagnosis(jsonData, outpatientDO, wlyyPrescriptionDO);
 | 
	
		
			
				|  |  |                     if (map.get("code").toString().equalsIgnoreCase("0")){
 | 
	
		
			
				|  |  |                         //  * @param applyDepaName @param applyDoctorName
 | 
	
		
			
				|  |  |                         WlyyPrescriptionDO prescriptionDO = prescriptionDao.findOne(prescriptionId);
 | 
	
		
			
				|  |  |                         String patientCode = prescriptionDO.getPatientCode();
 | 
	
		
			
				|  |  |                         String realerOrder = prescriptionDO.getRealOrder();
 | 
	
		
			
				|  |  |                         String free  = prescriptionDO.getDrugFee()+"";
 | 
	
		
			
				|  |  |                         String recipeTime = DateUtil.dateToStr(prescriptionDO.getCreateTime(),"yyyyMMddHHmmss");
 | 
	
		
			
				|  |  |                         String applyDepaName = prescriptionDO.getDeptName();
 | 
	
		
			
				|  |  |                         String applyDoctorName = prescriptionDO.getDoctorName();
 | 
	
		
			
				|  |  |                         BasePatientDO patientDO = basePatientDao.findById(patientCode);
 | 
	
		
			
				|  |  |                         String userName = null;
 | 
	
		
			
				|  |  |                         String idcard = null;
 | 
	
		
			
				|  |  |                         if (patientDO!=null){
 | 
	
		
			
				|  |  |                             userName = patientDO.getName();
 | 
	
		
			
				|  |  |                             idcard = patientDO.getIdcard();
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         PatientMappingDO patientMappingDO = patientMappingDao.findByPatient(patientCode);
 | 
	
		
			
				|  |  |                         String userNo = null;
 | 
	
		
			
				|  |  |                         if (patientMappingDO!=null){
 | 
	
		
			
				|  |  |                             userNo = patientMappingDO.getMappingCode();
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         PatientMedicareCardDO patientMedicareCardDO = patientMedicareCardDao.findByTypeAndPatientCodeAndDel("A_01",patientCode,"1");
 | 
	
		
			
				|  |  |                         ylzPayService.msgPush("01",patientMedicareCardDO.getCode(),"01",patientDO.getMobile(),"03",userNo,userName,idcard,realerOrder,applyDepaName,applyDoctorName,recipeTime,free,"1");
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     //sendHisDiagnosis(jsonData, outpatientDO, wlyyPrescriptionDO);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 } catch (Exception e) {
 | 
	
		
			
				|  |  |                     e.printStackTrace();
 | 
	
		
			
				|  |  |                 }
 | 
	
	
		
			
				|  | @ -5496,6 +5761,31 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |             wlyyPrescriptionDO.setCheckStatus(2);
 | 
	
		
			
				|  |  |             wlyyPrescriptionDO.setCheckReason(reason);
 | 
	
		
			
				|  |  |             wlyyPrescriptionDO.setStatus(20);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //发送系统消息 处方支付提醒
 | 
	
		
			
				|  |  |             SystemMessageDO messageDO = new SystemMessageDO();
 | 
	
		
			
				|  |  |             messageDO.setType("6");
 | 
	
		
			
				|  |  |             messageDO.setTitle("处方支付提醒");
 | 
	
		
			
				|  |  |             messageDO.setSender(outpatientDO.getDoctor());
 | 
	
		
			
				|  |  |             messageDO.setSenderName(outpatientDO.getDoctorName());
 | 
	
		
			
				|  |  |             messageDO.setRelationCode(outpatientDO.getId()+","+wlyyPrescriptionDO.getId());
 | 
	
		
			
				|  |  |             messageDO.setReceiver(outpatientDO.getPatient());
 | 
	
		
			
				|  |  |             messageDO.setReceiverName(outpatientDO.getPatientName());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             try {
 | 
	
		
			
				|  |  |                 JSONObject data = new JSONObject();
 | 
	
		
			
				|  |  |                 data.put("name",outpatientDO.getPatientName());
 | 
	
		
			
				|  |  |                 data.put("age", IdCardUtil.getAgeForIdcard(outpatientDO.getIdcard()));
 | 
	
		
			
				|  |  |                 data.put("gender",IdCardUtil.getSexForIdcard_new(outpatientDO.getIdcard()));
 | 
	
		
			
				|  |  |                 data.put("question","");
 | 
	
		
			
				|  |  |                 String msg=outpatientDO.getPatientName()+",您好!医生已为您开具处方,请及时支付。如您已支付请忽略本条信息。";
 | 
	
		
			
				|  |  |                 data.put("msg",msg);
 | 
	
		
			
				|  |  |                 messageDO.setData(data.toString());
 | 
	
		
			
				|  |  |                 systemMessageService.saveMessage(messageDO);
 | 
	
		
			
				|  |  |             } catch (Exception e) {
 | 
	
		
			
				|  |  |                 e.printStackTrace();
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             wlyyPrescriptionDO.setCheckStatus(status);
 | 
	
		
			
				|  |  |             wlyyPrescriptionDO.setCheckReason(reason);
 | 
	
	
		
			
				|  | @ -5505,6 +5795,8 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         if (status==2||status==1){
 | 
	
		
			
				|  |  |             sendCheckMessage(status,wlyyPrescriptionDO,operate,operateName);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return prescriptionCheckDO;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -5762,7 +6054,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 保存排班规则
 | 
	
		
			
				|  |  |      * @param workRoleJsons
 | 
	
		
			
				|  |  |      * @param advicesJson
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public Boolean sendOutPatientSuggest(String advicesJson){
 | 
	
	
		
			
				|  | @ -5781,7 +6073,12 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 电子病历html
 | 
	
		
			
				|  |  |      * @param registerSn
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public String readOutPatient(String registerSn) throws Exception {
 | 
	
		
			
				|  |  |         String url = "";
 | 
	
		
			
				|  |  |         WlyyHospitalSysDictDO wlyyHospitalSysDictDO = hospitalSysDictDao.findById("HAI_TAI_URL");
 | 
	
	
		
			
				|  | @ -5804,7 +6101,47 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 params);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         logger.info("调用电子病历查询接口请求成功,返回值xmlstr:" + returnValue);
 | 
	
		
			
				|  |  |         return returnValue;
 | 
	
		
			
				|  |  |         XMLSerializer xmlSerializer = new XMLSerializer();
 | 
	
		
			
				|  |  |         net.sf.json.JSON json = xmlSerializer.read(returnValue);
 | 
	
		
			
				|  |  |         logger.info("返回json"+json);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return json.toString();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 电子病历xml
 | 
	
		
			
				|  |  |      * @param registerSn
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public String readOutPatientXml(String registerSn) throws Exception {
 | 
	
		
			
				|  |  |         String url = "";
 | 
	
		
			
				|  |  |         WlyyHospitalSysDictDO wlyyHospitalSysDictDO = hospitalSysDictDao.findById("HAI_TAI_URL");
 | 
	
		
			
				|  |  |         if (wlyyHospitalSysDictDO!=null){
 | 
	
		
			
				|  |  |             url = wlyyHospitalSysDictDO.getDictCode();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         String xmlStr = "<?xml version=\"1.0\" encoding=\"GBK\"?>\n" +
 | 
	
		
			
				|  |  |                 "<HtRequest>\n";
 | 
	
		
			
				|  |  |         xmlStr+="<REGISTER_SN>"+registerSn+"</REGISTER_SN>";
 | 
	
		
			
				|  |  |         String reqTime = DateUtil.dateToStr(new Date(),"yyyyMMddHHmmssSSS");
 | 
	
		
			
				|  |  |         xmlStr+="<REQ_TIME>"+reqTime+"</REQ_TIME>";
 | 
	
		
			
				|  |  |         xmlStr+="</HtRequest>";
 | 
	
		
			
				|  |  |         String returnValue = "";
 | 
	
		
			
				|  |  |         Map<String, String> params = new HashedMap();
 | 
	
		
			
				|  |  |         params.put("type","readOutPatientDetail");
 | 
	
		
			
				|  |  |         params.put("xmlStr",xmlStr);
 | 
	
		
			
				|  |  |         returnValue = com.yihu.jw.utils.WebserviceUtil.post(url,
 | 
	
		
			
				|  |  |                 "http://business.htemr.haitaiinc.com",
 | 
	
		
			
				|  |  |                 "manageOutRegister",
 | 
	
		
			
				|  |  |                 params);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         logger.info("调用电子病历查询接口请求成功,返回值xmlstr:" + returnValue);
 | 
	
		
			
				|  |  |         XMLSerializer xmlSerializer = new XMLSerializer();
 | 
	
		
			
				|  |  |         net.sf.json.JSON json = xmlSerializer.read(returnValue);
 | 
	
		
			
				|  |  |         logger.info("返回json"+json);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return json.toString();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public String writeOutPatient(String registerSn,String chiefComplaint,String hpi,String elapsemhis,String bodycheck,String assistanTcheck) throws Exception {
 | 
	
	
		
			
				|  | @ -5836,9 +6173,310 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 params);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         logger.info("调用电子病历写入接口请求成功,返回值xmlstr:" + returnValue);
 | 
	
		
			
				|  |  |         return returnValue;
 | 
	
		
			
				|  |  |         XMLSerializer xmlSerializer = new XMLSerializer();
 | 
	
		
			
				|  |  |         net.sf.json.JSON json = xmlSerializer.read(returnValue);
 | 
	
		
			
				|  |  |         logger.info("返回json"+json);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return json.toString();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 关注医生
 | 
	
		
			
				|  |  |      * @param doctorId
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  | //    public Envelop attentionDoctor(String doctorId){
 | 
	
		
			
				|  |  | //        BaseDoctorDO doctorDO = baseDoctorDao.findById(doctorId);
 | 
	
		
			
				|  |  | //        if (doctorDO==null){
 | 
	
		
			
				|  |  | //            return Envelop.getError("医生不存在");
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | //        BaseDoctorPatientDO doctorPatientDO = new BaseDoctorPatientDO();
 | 
	
		
			
				|  |  | //        doctorPatientDO.setDoctorCode(doctorId);
 | 
	
		
			
				|  |  | //        doctorPatientDO.setDoctorName(doctorDO.getName());
 | 
	
		
			
				|  |  | //        String uid = userAgent.getUID();
 | 
	
		
			
				|  |  | //        BasePatientDO patientDO = basePatientDao.findById(uid);
 | 
	
		
			
				|  |  | //        if (patientDO==null){
 | 
	
		
			
				|  |  | //            return ObjEnvelop.getError("患者不存在");
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | //        doctorPatientDO.setPatientCode(uid);
 | 
	
		
			
				|  |  | //        doctorPatientDO.setPatientName(patientDO.getName());
 | 
	
		
			
				|  |  | //        doctorPatientDO.setStatus(1);
 | 
	
		
			
				|  |  | //        baseDoctorPatientDao.save(doctorPatientDO);
 | 
	
		
			
				|  |  | //        return ObjEnvelop.getSuccess("关注成功");
 | 
	
		
			
				|  |  | //    }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      *查询患者关注的医生
 | 
	
		
			
				|  |  |      * @param keyWord
 | 
	
		
			
				|  |  |      * @param outPatient
 | 
	
		
			
				|  |  |      * @param jobTitleCode
 | 
	
		
			
				|  |  |      * @param shift
 | 
	
		
			
				|  |  |      * @param page
 | 
	
		
			
				|  |  |      * @param pagesize
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  | //    public PageEnvelop findAllAttentionDoctor(String keyWord, Integer outPatient, String jobTitleCode, Integer shift, Integer page, Integer pagesize) {
 | 
	
		
			
				|  |  | //        StringBuffer sql = new StringBuffer("SELECT DISTINCT\n" +
 | 
	
		
			
				|  |  | //                "\tc.*, e.org_name,\n" +
 | 
	
		
			
				|  |  | //                "\te.dept_name,\n" +
 | 
	
		
			
				|  |  | //                "\tIFNULL(k.disease_name,NULL)\n" +
 | 
	
		
			
				|  |  | //                "\tdisease_name\n" +
 | 
	
		
			
				|  |  | //                "FROM\n" +
 | 
	
		
			
				|  |  | //                "\tbase_doctor c\n" +
 | 
	
		
			
				|  |  | //                "RIGHT JOIN (\n" +
 | 
	
		
			
				|  |  | //                "\tSELECT\n" +
 | 
	
		
			
				|  |  | //                "\t\tdoctor_code\n" +
 | 
	
		
			
				|  |  | //                "\tFROM\n" +
 | 
	
		
			
				|  |  | //                "\t\tbase_doctor_paitent\n" +
 | 
	
		
			
				|  |  | //                "\tWHERE\n" + " patient_code = '"+userAgent.getUID()+"'\n" +
 | 
	
		
			
				|  |  | //                " ) d ON c.id = d.doctor_code\n" +
 | 
	
		
			
				|  |  | //                "LEFT JOIN (\n" +
 | 
	
		
			
				|  |  | //                "\tSELECT\n" +
 | 
	
		
			
				|  |  | //                "\t\t*\n" +
 | 
	
		
			
				|  |  | //                "\tFROM\n" +
 | 
	
		
			
				|  |  | //                "\t\twlyy_doctor_special_disease\n" +
 | 
	
		
			
				|  |  | //                ") k ON k.doctor_code = c.id\n" +
 | 
	
		
			
				|  |  | //                "LEFT JOIN (\n" +
 | 
	
		
			
				|  |  | //                "\tSELECT\n" +
 | 
	
		
			
				|  |  | //                "\t\t*\n" +
 | 
	
		
			
				|  |  | //                "\tFROM\n" +
 | 
	
		
			
				|  |  | //                "\t\tbase_doctor_hospital\n" +
 | 
	
		
			
				|  |  | //                ") e ON e.doctor_code = c.id");
 | 
	
		
			
				|  |  | //        StringBuffer countSql = new StringBuffer("SELECT DISTINCT\n" +
 | 
	
		
			
				|  |  | //                "\tc.*, e.org_name,\n" +
 | 
	
		
			
				|  |  | //                "\te.dept_name,\n" +
 | 
	
		
			
				|  |  | //                "\tk.disease_name\n" +
 | 
	
		
			
				|  |  | //                "FROM\n" +
 | 
	
		
			
				|  |  | //                "\tbase_doctor c\n" +
 | 
	
		
			
				|  |  | //                "RIGHT JOIN (\n" +
 | 
	
		
			
				|  |  | //                "\tSELECT\n" +
 | 
	
		
			
				|  |  | //                "\t\tdoctor_code\n" +
 | 
	
		
			
				|  |  | //                "\tFROM\n" +
 | 
	
		
			
				|  |  | //                "\t\tbase_doctor_paitent\n" +
 | 
	
		
			
				|  |  | //                "\tWHERE\n" + " patient_code = '"+userAgent.getUID()+"'\n" +
 | 
	
		
			
				|  |  | //                " ) d ON c.id = d.doctor_code\n" +
 | 
	
		
			
				|  |  | //                "LEFT JOIN (\n" +
 | 
	
		
			
				|  |  | //                "\tSELECT\n" +
 | 
	
		
			
				|  |  | //                "\t\t*\n" +
 | 
	
		
			
				|  |  | //                "\tFROM\n" +
 | 
	
		
			
				|  |  | //                "\t\twlyy_doctor_special_disease\n" +
 | 
	
		
			
				|  |  | //                ") k ON k.doctor_code = c.id\n" +
 | 
	
		
			
				|  |  | //                "LEFT JOIN (\n" +
 | 
	
		
			
				|  |  | //                "\tSELECT\n" +
 | 
	
		
			
				|  |  | //                "\t\t*\n" +
 | 
	
		
			
				|  |  | //                "\tFROM\n" +
 | 
	
		
			
				|  |  | //                "\t\tbase_doctor_hospital\n" +
 | 
	
		
			
				|  |  | //                ") e ON e.doctor_code = c.id");
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //        if (shift==1){
 | 
	
		
			
				|  |  | //            sql.append(" JOIN (\n" +
 | 
	
		
			
				|  |  | //                    "\tSELECT\n" +
 | 
	
		
			
				|  |  | //                    "\t\t*\n" +
 | 
	
		
			
				|  |  | //                    "\tFROM\n" +
 | 
	
		
			
				|  |  | //                    "\t\tbase_doctor_hospital\n" +
 | 
	
		
			
				|  |  | //                    "\tWHERE\n" +
 | 
	
		
			
				|  |  | //                    "\t\tdept_name = '发热门诊'\n" +
 | 
	
		
			
				|  |  | //                    ") h ON h.doctor_code = c.id ");
 | 
	
		
			
				|  |  | //            countSql.append(" JOIN (\n" +
 | 
	
		
			
				|  |  | //                    "\tSELECT\n" +
 | 
	
		
			
				|  |  | //                    "\t\t*\n" +
 | 
	
		
			
				|  |  | //                    "\tFROM\n" +
 | 
	
		
			
				|  |  | //                    "\t\tbase_doctor_hospital\n" +
 | 
	
		
			
				|  |  | //                    "\tWHERE\n" +
 | 
	
		
			
				|  |  | //                    "\t\tdept_name = '发热门诊'\n" +
 | 
	
		
			
				|  |  | //                    ") h ON h.doctor_code = c.id ");
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | //        if (StringUtils.isNotEmpty(jobTitleCode)){
 | 
	
		
			
				|  |  | //            sql.append(" AND c.job_title_code =").append(jobTitleCode);
 | 
	
		
			
				|  |  | //            countSql.append(" AND c.job_title_code =").append(jobTitleCode);
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | //        if (outPatient==1){
 | 
	
		
			
				|  |  | //            sql.append(" JOIN (\n" +
 | 
	
		
			
				|  |  | //                    "\tSELECT DISTINCT\n" +
 | 
	
		
			
				|  |  | //                    "\t\t*\n" +
 | 
	
		
			
				|  |  | //                    "\tFROM\n" +
 | 
	
		
			
				|  |  | //                    "\t\twlyy_doctor_work_time\n" +
 | 
	
		
			
				|  |  | //                    "\tGROUP BY\n" +
 | 
	
		
			
				|  |  | //                    "\t\tdoctor\n" +
 | 
	
		
			
				|  |  | //                    ") f ON f.doctor = c.id");
 | 
	
		
			
				|  |  | //            countSql.append(" JOIN (\n" +
 | 
	
		
			
				|  |  | //                    "\tSELECT DISTINCT\n" +
 | 
	
		
			
				|  |  | //                    "\t\t*\n" +
 | 
	
		
			
				|  |  | //                    "\tFROM\n" +
 | 
	
		
			
				|  |  | //                    "\t\twlyy_doctor_work_time\n" +
 | 
	
		
			
				|  |  | //                    "\tGROUP BY\n" +
 | 
	
		
			
				|  |  | //                    "\t\tdoctor\n" +
 | 
	
		
			
				|  |  | //                    ") f ON f.doctor = c.id");
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | //        if(StringUtils.isNotEmpty(keyWord)){
 | 
	
		
			
				|  |  | //            sql.append(" WHERE\n" +
 | 
	
		
			
				|  |  | //                    "\t(\n" +
 | 
	
		
			
				|  |  | //                    " c.`name` LIKE  '%"+keyWord+"%'" +
 | 
	
		
			
				|  |  | //                    " OR e.dept_name LIKE '%"+keyWord+"%' " +
 | 
	
		
			
				|  |  | //                    " OR e.org_name LIKE  '%"+keyWord+"%'" +
 | 
	
		
			
				|  |  | //                    " OR c.expertise LIKE  '%"+keyWord+"%'" +
 | 
	
		
			
				|  |  | //                    " OR c.introduce LIKE  '%"+keyWord+"%'" +
 | 
	
		
			
				|  |  | //                    " OR k.disease_name LIKE  '%"+keyWord+"%'" +
 | 
	
		
			
				|  |  | //                    ") ");
 | 
	
		
			
				|  |  | //            countSql.append(" WHERE\n" +
 | 
	
		
			
				|  |  | //                    "\t(\n" +
 | 
	
		
			
				|  |  | //                    " c.`name` LIKE  '%"+keyWord+"%'" +
 | 
	
		
			
				|  |  | //                    " OR e.dept_name LIKE '%"+keyWord+"%' " +
 | 
	
		
			
				|  |  | //                    " OR e.org_name LIKE  '%"+keyWord+"%'" +
 | 
	
		
			
				|  |  | //                    " OR c.expertise LIKE  '%"+keyWord+"%'" +
 | 
	
		
			
				|  |  | //                    " OR c.introduce LIKE  '%"+keyWord+"%'" +
 | 
	
		
			
				|  |  | //                    " OR k.disease_name LIKE  '%"+keyWord+"%'" +
 | 
	
		
			
				|  |  | //                    ") ");
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | //        countSql.append(" GROUP BY c.id");
 | 
	
		
			
				|  |  | //        List<Map<String, Object>> countList = jdbcTemplate.queryForList(countSql.toString());
 | 
	
		
			
				|  |  | //        long count=countList.size();
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //        sql.append(" ORDER BY C.update_time LIMIT ").append((page-1)*pagesize).append(",").append(pagesize);
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //        List<Map<String, Object>> mapList = jdbcTemplate.queryForList(sql.toString());
 | 
	
		
			
				|  |  | //        List<BaseDoctorVO> list = new ArrayList<>();
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //        mapList.forEach(one->{
 | 
	
		
			
				|  |  | //            String json = com.alibaba.fastjson.JSONObject.toJSONString(one);
 | 
	
		
			
				|  |  | //            BaseDoctorDO doctorDO = com.alibaba.fastjson.JSONObject.parseObject(json, BaseDoctorDO.class);
 | 
	
		
			
				|  |  | //            BaseDoctorVO doctorVO = convertToModel(doctorDO, BaseDoctorVO.class);
 | 
	
		
			
				|  |  | //            if (one.get("org_name")!=null&&StringUtils.isNotEmpty(one.get("org_name").toString())){
 | 
	
		
			
				|  |  | //                doctorVO.setHospital(one.get("org_name").toString());
 | 
	
		
			
				|  |  | //            }
 | 
	
		
			
				|  |  | //            if(one.get("dept_name")!=null&&StringUtils.isNotEmpty(one.get("dept_name").toString())){
 | 
	
		
			
				|  |  | //                ArrayList<String> deptList = new ArrayList<>();
 | 
	
		
			
				|  |  | //                deptList.add(one.get("dept_name").toString());
 | 
	
		
			
				|  |  | //                doctorVO.setDepartment(deptList);
 | 
	
		
			
				|  |  | //            }
 | 
	
		
			
				|  |  | //            if (one.get("disease_name")!=null&&StringUtils.isNotEmpty(one.get("disease_name").toString())){
 | 
	
		
			
				|  |  | //                ArrayList<String> disList = new ArrayList<>();
 | 
	
		
			
				|  |  | //                disList.add(one.get("disease_name").toString());
 | 
	
		
			
				|  |  | //                doctorVO.setDisease(disList);
 | 
	
		
			
				|  |  | //            }
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //            if (list!=null&&list.size()>0){
 | 
	
		
			
				|  |  | //                list.forEach(tow->{
 | 
	
		
			
				|  |  | //                    if (doctorVO.getId().equalsIgnoreCase(tow.getId())){
 | 
	
		
			
				|  |  | //                        if (tow.getDepartment()!=null&&StringUtils.isNotEmpty(tow.getDepartment().get(0))){
 | 
	
		
			
				|  |  | //                            doctorVO.getDepartment().add(tow.getDepartment().get(0));
 | 
	
		
			
				|  |  | //                        }
 | 
	
		
			
				|  |  | //                        if (tow.getDisease()!=null&&StringUtils.isNotEmpty(tow.getDisease().get(0))){
 | 
	
		
			
				|  |  | //                            doctorVO.getDisease().add(tow.getDisease().get(0));
 | 
	
		
			
				|  |  | //                        }
 | 
	
		
			
				|  |  | //                        list.remove(tow);
 | 
	
		
			
				|  |  | //                    }
 | 
	
		
			
				|  |  | //                });
 | 
	
		
			
				|  |  | //            }
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //            list.add(doctorVO);
 | 
	
		
			
				|  |  | //        });
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //        return PageEnvelop.getSuccessListWithPage(IotRequestMapping.Common.message_success_find,list,page,pagesize,count);
 | 
	
		
			
				|  |  | //    }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 查询患者所有处方信息
 | 
	
		
			
				|  |  |      * @param page
 | 
	
		
			
				|  |  |      * @param size
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public PageEnvelop findPatientAllPrescription(String keyName,String status,Integer page, Integer size) {
 | 
	
		
			
				|  |  |         String uid = userAgent.getUID();
 | 
	
		
			
				|  |  |         StringBuffer sql = new StringBuffer("select a.* from wlyy_prescription a,wlyy_prescription_info b where a.patient_code ='");
 | 
	
		
			
				|  |  |         StringBuffer countSql = new StringBuffer("select COUNT(a.id) count from wlyy_prescription a,wlyy_prescription_info b  where a.patient_code ='");
 | 
	
		
			
				|  |  |         sql.append(uid).append("' and a.status >= 0 AND a.id = b.prescription_id");
 | 
	
		
			
				|  |  |         countSql.append(uid).append("' and a.status >= 0 AND a.id = b.prescription_id ");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(keyName)){
 | 
	
		
			
				|  |  |             sql.append(" AND (" +
 | 
	
		
			
				|  |  |                     " a.doctor_name LIKE '%"+keyName+"%' " +
 | 
	
		
			
				|  |  |                     " OR a.dept_name LIKE'%"+keyName+"%' " +
 | 
	
		
			
				|  |  |                     " OR a.hospital_name LIKE '%"+keyName+"%' " +
 | 
	
		
			
				|  |  |                     " OR b.drug_name LIKE '%"+keyName+"%' " +
 | 
	
		
			
				|  |  |                     " OR a.real_order LIKE '%"+keyName+"%' " +
 | 
	
		
			
				|  |  |                     ")");
 | 
	
		
			
				|  |  |             countSql.append(" AND (" +
 | 
	
		
			
				|  |  |                     " a.doctor_name LIKE '%"+keyName+"%' " +
 | 
	
		
			
				|  |  |                     " OR a.dept_name LIKE'%"+keyName+"%' " +
 | 
	
		
			
				|  |  |                     " OR a.hospital_name LIKE '%"+keyName+"%' " +
 | 
	
		
			
				|  |  |                     " OR b.drug_name LIKE '%"+keyName+"%' " +
 | 
	
		
			
				|  |  |                     " OR a.real_order LIKE '%"+keyName+"%' " +
 | 
	
		
			
				|  |  |                     ")");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (StringUtils.isNotEmpty(status)){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             status= status.substring(1, status.length() - 1);
 | 
	
		
			
				|  |  |             sql.append(" AND a.status IN(").append(status).append(")");
 | 
	
		
			
				|  |  |             countSql.append(" AND a.status IN(").append(status).append(")");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         sql.append(" order by a.prescribe_time limit ").append((page-1)*size).append(",").append(size);
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionDO> list = jdbcTemplate.query(sql.toString(), new BeanPropertyRowMapper<>(WlyyPrescriptionDO.class));
 | 
	
		
			
				|  |  |         List<Map<String, Object>> mapList = jdbcTemplate.queryForList(countSql.toString());
 | 
	
		
			
				|  |  |         long count = Long.parseLong(mapList.get(0).get("count").toString());
 | 
	
		
			
				|  |  |         logger.info("sql="+sql.toString());
 | 
	
		
			
				|  |  |         logger.info("countSql="+countSql.toString());
 | 
	
		
			
				|  |  |         return PageEnvelop.getSuccessListWithPage(IotRequestMapping.Common.message_success_find,list,page,size,count);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 查询取药地址
 | 
	
		
			
				|  |  |      * @param outpatientId
 | 
	
		
			
				|  |  |      * @param longitude
 | 
	
		
			
				|  |  |      * @param dimension
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public MixEnvelop findDrugAddress(String outpatientId, String longitude, String dimension) {
 | 
	
		
			
				|  |  |         String sql="SELECT\n" +
 | 
	
		
			
				|  |  |                 "\ta.*\n" +
 | 
	
		
			
				|  |  |                 "FROM\n" +
 | 
	
		
			
				|  |  |                 "\tbase_org a\n" +
 | 
	
		
			
				|  |  |                 "LEFT JOIN (\n" +
 | 
	
		
			
				|  |  |                 "\tSELECT\n" +
 | 
	
		
			
				|  |  |                 "\t\tc.*\n" +
 | 
	
		
			
				|  |  |                 "\tFROM\n" +
 | 
	
		
			
				|  |  |                 "\t\twlyy_prescription_expressage c\n" +
 | 
	
		
			
				|  |  |                 "\tWHERE\n" +
 | 
	
		
			
				|  |  |                 " c.outpatient_id = '"+outpatientId+"'" +
 | 
	
		
			
				|  |  |                 " ) d ON a.`code` = d.hospital_code";
 | 
	
		
			
				|  |  |         BaseOrgDO baseOrgDO = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(BaseOrgDO.class)).get(0);
 | 
	
		
			
				|  |  |         Map<String, String> rs = new HashMap<>();
 | 
	
		
			
				|  |  |         rs.put("hospital",baseOrgDO.getName());
 | 
	
		
			
				|  |  |         rs.put("address",baseOrgDO.getAddress());
 | 
	
		
			
				|  |  |         String distance = LatitudeUtils.getDistance(longitude, dimension, baseOrgDO.getLongitude(), baseOrgDO.getLatitude());
 | 
	
		
			
				|  |  |         rs.put("distance",distance);
 | 
	
		
			
				|  |  |         return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_find,rs);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public MixEnvelop selectByUrl(String prescriptionId,String wxId) throws Exception {
 | 
	
		
			
				|  |  |         WxWechatDO wxWechatDO = wechatDao.findById(wxId);
 | 
	
		
			
				|  |  |         if (wxWechatDO==null){
 | 
	
		
			
				|  |  |             throw new Exception("微信配置不存在!");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         WlyyPrescriptionDO prescriptionDO = prescriptionDao.findOne(prescriptionId);
 | 
	
		
			
				|  |  |         if (prescriptionDO==null){
 | 
	
		
			
				|  |  |             throw new Exception("处方不存在!");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<BasePatientWechatDo> patientWechatDos =patientWechatDao.findByWechatIdAndPatientId(wxId,prescriptionDO.getPatientCode());
 | 
	
		
			
				|  |  |         if (patientWechatDos==null||patientWechatDos.size()==0){
 | 
	
		
			
				|  |  |             throw new Exception("openid不存在!");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         BasePatientWechatDo patientWechatDo = patientWechatDos.get(0);
 | 
	
		
			
				|  |  |         PatientMedicareCardDO patientMedicareCardDO = patientMedicareCardDao.findByTypeAndPatientCodeAndDel("A_01",prescriptionDO.getPatientCode(),"1");
 | 
	
		
			
				|  |  |         if (patientMedicareCardDO==null){
 | 
	
		
			
				|  |  |             throw new Exception("就诊卡不存在!");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         String url = ylzPayService.createSicardPayUrl(wxWechatDO.getAppOriginId(),patientWechatDo.getOpenid(),patientMedicareCardDO.getCode(),"WX");
 | 
	
		
			
				|  |  |         com.alibaba.fastjson.JSONObject object = com.alibaba.fastjson.JSONObject.parseObject(url);
 | 
	
		
			
				|  |  |         return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_find,object);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | }
 |