Browse Source

Merge branch 'dev' of http://192.168.1.220:10080/Amoy/patient-co-management into dev

Conflicts:
	patient-co-wlyy/src/main/java/com/yihu/wlyy/web/common/account/WechatController.java
8 years ago
parent
commit
9def683eb5
18 changed files with 415 additions and 106 deletions
  1. 2 0
      patient-co-analysis/src/main/java/com/yihu/wlyy/analysis/etl/BusinessTypeEnum.java
  2. 36 0
      patient-co-analysis/src/main/java/com/yihu/wlyy/analysis/etl/ETLConstantData.java
  3. 200 0
      patient-co-analysis/src/main/java/com/yihu/wlyy/analysis/etl/transform/HealthIndexTransform.java
  4. 24 0
      patient-co-analysis/src/main/java/com/yihu/wlyy/analysis/etl/transform/RegisterLogTransform.java
  5. 5 3
      patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/education/HealthEduArticlePatient.java
  6. 1 0
      patient-co-wlyy/src/main/java/com/yihu/wlyy/interceptors/PatientInterceptor.java
  7. 1 1
      patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/PatientHealthGuidanceDao.java
  8. 2 2
      patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/PatientReservationDao.java
  9. 6 8
      patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/consult/ConsultTeamService.java
  10. 98 57
      patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/health/HealthEduArticlePatientService.java
  11. 18 21
      patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/health/HealthEduArticleService.java
  12. 2 2
      patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/health/PatientHealthGuidanceService.java
  13. 7 4
      patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/guahao/GuahaoXMService.java
  14. 1 0
      patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/jw/JwArchivesService.java
  15. 1 1
      patient-co-wlyy/src/main/java/com/yihu/wlyy/web/common/account/WechatController.java
  16. 6 4
      patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/health/DoctorHealthEduArticleController.java
  17. 3 2
      patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/health/HealthEduArticleController.java
  18. 2 1
      patient-co-wlyy/src/main/java/com/yihu/wlyy/web/third/BookingController.java

+ 2 - 0
patient-co-analysis/src/main/java/com/yihu/wlyy/analysis/etl/BusinessTypeEnum.java

@ -24,4 +24,6 @@ public enum  BusinessTypeEnum {
    , archive
    , archive
    // 签约
    // 签约
    , sign
    , sign
    // 体征
    , index
}
}

+ 36 - 0
patient-co-analysis/src/main/java/com/yihu/wlyy/analysis/etl/ETLConstantData.java

@ -1,10 +1,36 @@
package com.yihu.wlyy.analysis.etl;
package com.yihu.wlyy.analysis.etl;
import com.mongodb.util.JSON;
import org.json.JSONArray;
import org.springframework.boot.json.JsonParser;
import java.util.Map;
/**
/**
 * Created by lyr-pc on 2017/2/20.
 * Created by lyr-pc on 2017/2/20.
 */
 */
public class ETLConstantData {
public class ETLConstantData {
    /***************************体征指标正常范围*******************************/
    // 血糖餐前最小值
    public static final String HEALTH_STANDARD_ST_MIN_BEFORE = "4";
    // 血糖餐前最大值
    public static final String HEALTH_STANDARD_ST_MAX_BEFORE = "7";
    // 血糖餐后最小值
    public static final String HEALTH_STANDARD_ST_MIN_AFTER = "4";
    // 血糖餐后最大值
    public static final String HEALTH_STANDARD_ST_MAX_AFTER = "11.1";
    // 舒张压最小值
    public static final String HEALTH_STANDARD_SZY_MIN = "60";
    // 舒张压最大值
    public static final String HEALTH_STANDARD_SZY_MAX = "90";
    // 收缩压最小值
    public static final String HEALTH_STANDARD_SSY_MIN = "90";
    // 收缩压最大值
    public static final String HEALTH_STANDARD_SSY_MAX = "140";
    /**
    /**
     * 性别
     * 性别
     *
     *
@ -40,4 +66,14 @@ public class ETLConstantData {
            return "老年";
            return "老年";
        }
        }
    }
    }
    /**
     * 获取城市名称
     *
     * @param city
     * @return
     */
    public static String cityName(String city) {
        return "";
    }
}
}

+ 200 - 0
patient-co-analysis/src/main/java/com/yihu/wlyy/analysis/etl/transform/HealthIndexTransform.java

@ -0,0 +1,200 @@
package com.yihu.wlyy.analysis.etl.transform;
import com.yihu.wlyy.analysis.entity.UserPortrait;
import com.yihu.wlyy.analysis.etl.BusinessTypeEnum;
import com.yihu.wlyy.analysis.etl.ETLConstantData;
import com.yihu.wlyy.analysis.etl.ILogTransform;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * Created by lyr-pc on 2017/2/28.
 */
public class HealthIndexTransform implements ILogTransform {
    private final BusinessTypeEnum logType = BusinessTypeEnum.index;
    @Override
    public List<UserPortrait> transform(JSONObject log) throws Exception {
        JSONObject logData = log.getJSONObject("data");
        JSONObject businessData = logData.getJSONObject("data");
        List<UserPortrait> labelInfoList = new ArrayList<>();
        String type = businessData.has("type") ? businessData.get("type").toString() : "";
        if (type.equals("1")) {
            labelInfoList.addAll(transformXueTang(businessData));
        } else if (type.equals("2")) {
            labelInfoList.addAll(transformXueYa(businessData));
        } else if (type.equals("3")) {
        } else if (type.equals("4")) {
        }
        return labelInfoList;
    }
    @Override
    public int getLogType() {
        return logType.ordinal();
    }
    @Override
    public String getLogTypeName() {
        return logType.name();
    }
    /**
     * 血糖分析
     *
     * @param log
     * @return
     */
    public List<UserPortrait> transformXueTang(JSONObject log) {
        List<UserPortrait> portraits = new ArrayList<>();
        boolean higher = false, lower = false;
        // 早餐前
        String value1 = log.has("value1") ? log.get("value1").toString() : "";
        // 早餐后
        String value2 = log.has("value2") ? log.get("value2").toString() : "";
        // 午餐前
        String value3 = log.has("value3") ? log.get("value3").toString() : "";
        // 午餐后
        String value4 = log.has("value4") ? log.get("value4").toString() : "";
        // 晚餐前
        String value5 = log.has("value5") ? log.get("value5").toString() : "";
        // 晚餐后
        String value6 = log.has("value6") ? log.get("value6").toString() : "";
        // 睡觉前
        String value7 = log.has("value7") ? log.get("value7").toString() : "";
        if (!StringUtils.isEmpty(value1) && value1.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_BEFORE) < 0) {
            lower = true;
        }
        if (!StringUtils.isEmpty(value1) && value1.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_BEFORE) > 0) {
            higher = true;
        }
        if (!StringUtils.isEmpty(value2) && value2.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_AFTER) < 0) {
            lower = true;
        }
        if (!StringUtils.isEmpty(value2) && value2.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_AFTER) > 0) {
            higher = true;
        }
        if (!StringUtils.isEmpty(value3) && value3.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_BEFORE) < 0) {
            lower = true;
        }
        if (!StringUtils.isEmpty(value3) && value3.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_BEFORE) > 0) {
            higher = true;
        }
        if (!StringUtils.isEmpty(value4) && value4.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_AFTER) < 0) {
            lower = true;
        }
        if (!StringUtils.isEmpty(value4) && value4.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_AFTER) > 0) {
            higher = true;
        }
        if (!StringUtils.isEmpty(value5) && value5.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_BEFORE) < 0) {
            lower = true;
        }
        if (!StringUtils.isEmpty(value5) && value5.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_BEFORE) > 0) {
            higher = true;
        }
        if (!StringUtils.isEmpty(value6) && value6.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_AFTER) < 0) {
            lower = true;
        }
        if (!StringUtils.isEmpty(value6) && value6.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_AFTER) > 0) {
            higher = true;
        }
        if (!StringUtils.isEmpty(value7) && value7.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MIN_BEFORE) < 0) {
            lower = true;
        }
        if (!StringUtils.isEmpty(value7) && value7.compareTo(ETLConstantData.HEALTH_STANDARD_ST_MAX_BEFORE) > 0) {
            higher = true;
        }
        if (higher) {
            UserPortrait labelInfo = new UserPortrait();
            labelInfo.setUserCode(log.getString("patient"));
            labelInfo.setCategory("1002");
            labelInfo.setSubCategory("1002002");
            labelInfo.setValue("血糖偏高");
            labelInfo.setCzrq(new Date());
            portraits.add(labelInfo);
        }
        if (lower) {
            UserPortrait labelInfo = new UserPortrait();
            labelInfo.setUserCode(log.getString("patient"));
            labelInfo.setCategory("1002");
            labelInfo.setSubCategory("1002002");
            labelInfo.setValue("血糖偏低");
            labelInfo.setCzrq(new Date());
            portraits.add(labelInfo);
        }
        return portraits;
    }
    /**
     * 血压分析
     *
     * @param log
     * @return
     */
    public List<UserPortrait> transformXueYa(JSONObject log) {
        List<UserPortrait> portraits = new ArrayList<>();
        boolean higher = false, lower = false;
        // 收缩压
        String value1 = log.has("value1") ? log.get("value1").toString() : "";
        // 舒张压
        String value2 = log.has("value2") ? log.get("value2").toString() : "";
        if (value1.compareTo(ETLConstantData.HEALTH_STANDARD_SSY_MIN) < 0) {
            lower = true;
        }
        if (value1.compareTo(ETLConstantData.HEALTH_STANDARD_SSY_MAX) > 0) {
            higher = true;
        }
        if (value2.compareTo(ETLConstantData.HEALTH_STANDARD_SSY_MIN) < 0) {
            lower = true;
        }
        if (value2.compareTo(ETLConstantData.HEALTH_STANDARD_SSY_MIN) > 0) {
            higher = true;
        }
        if (higher) {
            UserPortrait labelInfo = new UserPortrait();
            labelInfo.setUserCode(log.getString("patient"));
            labelInfo.setCategory("1002");
            labelInfo.setSubCategory("1002003");
            labelInfo.setValue("血压偏高");
            labelInfo.setCzrq(new Date());
            portraits.add(labelInfo);
        }
        if (lower) {
            UserPortrait labelInfo = new UserPortrait();
            labelInfo.setUserCode(log.getString("patient"));
            labelInfo.setCategory("1002");
            labelInfo.setSubCategory("1002003");
            labelInfo.setValue("血压偏低");
            labelInfo.setCzrq(new Date());
            portraits.add(labelInfo);
        }
        return portraits;
    }
}

+ 24 - 0
patient-co-analysis/src/main/java/com/yihu/wlyy/analysis/etl/transform/RegisterLogTransform.java

@ -108,4 +108,28 @@ public class RegisterLogTransform implements ILogTransform {
        return Arrays.asList(labelAgeInfo, labelInfo);
        return Arrays.asList(labelAgeInfo, labelInfo);
    }
    }
    /**
     * 获取城市信息
     *
     * @param log
     * @return
     */
    private UserPortrait transformCity(JSONObject log) {
        String city = log.has("city") ? log.get("city").toString() : "";
        String idcard = log.getString("idcard");
        if(StringUtils.isEmpty(city)) {
            city = idcard.substring(0, 5);
        }
        UserPortrait labelAgeInfo = new UserPortrait();
        labelAgeInfo.setUserCode(log.getString("code"));
        labelAgeInfo.setCategory("1001");
        labelAgeInfo.setSubCategory("1001004");
        labelAgeInfo.setValue(ETLConstantData.cityName(city));
        labelAgeInfo.setCzrq(new Date());
        return labelAgeInfo;
    }
}
}

+ 5 - 3
patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/education/HealthEduArticlePatient.java

@ -5,6 +5,7 @@ import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Table;
import javax.persistence.Transient;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.wlyy.entity.IdEntity;
import com.yihu.wlyy.entity.IdEntity;
@ -80,6 +81,7 @@ public class HealthEduArticlePatient extends IdEntity {
		this.doctorName = doctorName;
		this.doctorName = doctorName;
	}
	}
	@Transient
	public String getTitle() {
	public String getTitle() {
		return title;
		return title;
	}
	}
@ -87,7 +89,7 @@ public class HealthEduArticlePatient extends IdEntity {
	public void setTitle(String title) {
	public void setTitle(String title) {
		this.title = title;
		this.title = title;
	}
	}
	@Transient
	public String getUrl() {
	public String getUrl() {
		return url;
		return url;
	}
	}
@ -95,7 +97,7 @@ public class HealthEduArticlePatient extends IdEntity {
	public void setUrl(String url) {
	public void setUrl(String url) {
		this.url = url;
		this.url = url;
	}
	}
	@Transient
	public String getContent() {
	public String getContent() {
		return content;
		return content;
	}
	}
@ -137,7 +139,7 @@ public class HealthEduArticlePatient extends IdEntity {
	public void setAdminTeamCode(Long adminTeamCode) {
	public void setAdminTeamCode(Long adminTeamCode) {
		this.adminTeamCode = adminTeamCode;
		this.adminTeamCode = adminTeamCode;
	}
	}
	@Transient
	public String getSummary() {
	public String getSummary() {
		return summary;
		return summary;
	}
	}

+ 1 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/interceptors/PatientInterceptor.java

@ -28,6 +28,7 @@ public class PatientInterceptor extends BaseInterceptor {
	@Override
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		boolean flag = true;
		boolean flag = true;
		if(flag)return true;
		try {
		try {
			request.setCharacterEncoding("UTF-8");
			request.setCharacterEncoding("UTF-8");
			request.setAttribute("log-start", new Date().getTime());
			request.setAttribute("log-start", new Date().getTime());

+ 1 - 1
patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/PatientHealthGuidanceDao.java

@ -55,6 +55,6 @@ public interface PatientHealthGuidanceDao extends PagingAndSortingRepository<Pat
	@Query("SELECT count(a) from PatientHealthGuidance a WHERE  a.patient=?2 and a.doctor=?1 ")
	@Query("SELECT count(a) from PatientHealthGuidance a WHERE  a.patient=?2 and a.doctor=?1 ")
	Integer findbydoctorAndPatient(String doctor, String patientCode);
	Integer findbydoctorAndPatient(String doctor, String patientCode);
	@Query("select b.name, b.photo, a.id, substring(a.content, 1, 50) as content, a.czrq,b.level,b.code,a.adminTeamCode from PatientHealthGuidance a, Doctor b where a.doctor = b.code and a.patient = ?1 and a.adminTeamCode = ?2 and a.del = '1'")
	@Query("select b.name, b.photo, a.id, substring(a.content, 1, 50) as content, a.createTime,b.level,b.code,a.adminTeamCode from PatientHealthGuidance a, Doctor b where a.doctor = b.code and a.patient = ?1 and a.adminTeamCode = ?2 and a.del = '1'")
	Page<Object> findByPatientAndTeamCode(String patient, Long teamCode, Pageable pageable);
	Page<Object> findByPatientAndTeamCode(String patient, Long teamCode, Pageable pageable);
}
}

+ 2 - 2
patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/PatientReservationDao.java

@ -35,6 +35,6 @@ public interface PatientReservationDao extends PagingAndSortingRepository<Patien
	PatientReservation findByPatientAndCancelerAndCancelTime(String patient,String canceler,String cancelerTime);
	PatientReservation findByPatientAndCancelerAndCancelTime(String patient,String canceler,String cancelerTime);
	//根据患者医获取近三个月的已取消的预约记录
	//根据患者医获取近三个月的已取消的预约记录
	@Query("select a from PatientReservation a where a.patient = ?1 and a.startTime between ?2 and ?3 and a.status = 0 order by a.czrq desc")
	List<PatientReservation> findByPatientAndStartTime(String patientCode, String strStart, String strEnd);
	@Query("select a from PatientReservation a where a.patient = ?1 and (a.startTime between ?2 and ?3 or a.startTime between ?4 and ?5 ) and a.status = 0 order by a.czrq desc")
	List<PatientReservation> findByPatientAndStartTime(String patientCode, String strStart, String strEnd,String startTime,String endTime);
}
}

+ 6 - 8
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/consult/ConsultTeamService.java

@ -5,15 +5,11 @@
 *******************************************************************************/
 *******************************************************************************/
package com.yihu.wlyy.service.app.consult;
package com.yihu.wlyy.service.app.consult;
import java.text.SimpleDateFormat;
import java.util.*;
import com.yihu.wlyy.entity.consult.Consult;
import com.yihu.wlyy.entity.consult.Consult;
import com.yihu.wlyy.entity.consult.ConsultTeam;
import com.yihu.wlyy.entity.consult.ConsultTeam;
import com.yihu.wlyy.entity.consult.ConsultTeamDoctor;
import com.yihu.wlyy.entity.consult.ConsultTeamDoctor;
import com.yihu.wlyy.entity.consult.ConsultTeamLog;
import com.yihu.wlyy.entity.consult.ConsultTeamLog;
import com.yihu.wlyy.entity.discussion.WlyyTalkGroup;
import com.yihu.wlyy.entity.discussion.WlyyTalkGroup;
import com.yihu.wlyy.entity.discussion.WlyyTalkGroupMember;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.doctor.team.sign.DoctorTeam;
import com.yihu.wlyy.entity.doctor.team.sign.DoctorTeam;
import com.yihu.wlyy.entity.doctor.team.sign.DoctorTeamMember;
import com.yihu.wlyy.entity.doctor.team.sign.DoctorTeamMember;
@ -28,11 +24,11 @@ import com.yihu.wlyy.repository.doctor.DoctorTeamMemberDao;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.service.app.health.PatientHealthGuidanceService;
import com.yihu.wlyy.service.app.health.PatientHealthGuidanceService;
import com.yihu.wlyy.service.app.talk.TalkGroupService;
import com.yihu.wlyy.service.app.talk.TalkGroupService;
import com.yihu.wlyy.task.PushMsgTask;
import com.yihu.wlyy.util.*;
import com.yihu.wlyy.util.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.NameValuePair;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.apache.poi.hssf.util.HSSFColor;
import org.json.JSONArray;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Autowired;
@ -50,9 +46,7 @@ import org.springside.modules.persistence.SearchFilter;
import org.springside.modules.persistence.SearchFilter.Operator;
import org.springside.modules.persistence.SearchFilter.Operator;
import org.springside.modules.utils.Clock;
import org.springside.modules.utils.Clock;
import com.yihu.wlyy.task.PushMsgTask;
import javax.print.Doc;
import java.util.*;
/**
/**
 * 網絡諮詢类.
 * 網絡諮詢类.
@ -1714,4 +1708,8 @@ public class ConsultTeamService extends ConsultService {
    }
    }
    @Override
    public void sendMucMessageBySingnType(String doctor, String doctorName, String patient, String content, String contentType, String title) {
        super.sendMucMessageBySingnType(doctor, doctorName, patient, content, contentType, title);
    }
}
}

+ 98 - 57
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/health/HealthEduArticlePatientService.java

@ -11,6 +11,8 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.annotation.Transactional;
import org.springside.modules.persistence.DynamicSpecifications;
import org.springside.modules.persistence.DynamicSpecifications;
@ -24,73 +26,112 @@ import java.util.Map;
/**
/**
 * 健康教育患者业务逻辑类
 * 健康教育患者业务逻辑类
 * @author linz
 *
 *
 * @author linz
 */
 */
@Component
@Component
@Transactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class)
public class HealthEduArticlePatientService extends BaseService {
public class HealthEduArticlePatientService extends BaseService {
	@Autowired
	private HealthEduArticlePatientDao healthEduArticlePatientDao;
    @Autowired
    private HealthEduArticlePatientDao healthEduArticlePatientDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    /**
     * 根据文章标示获取数据
     *
     * @param article
     * @return
     */
    @Deprecated
    public HealthEduArticlePatient findByArticle(String article) {
        return healthEduArticlePatientDao.findByArticle(article);
    }
	/**
	 * 根据文章标示获取数据
	 * @param article
	 * @return
	 *
	 */
	@Deprecated
	public HealthEduArticlePatient findByArticle(String article) {
		return healthEduArticlePatientDao.findByArticle(article);
	}
    /**
     * 根据文章id获取数据
     *
     * @param id
     * @return
     */
    public HealthEduArticlePatient findById(Long id) {
        return healthEduArticlePatientDao.findOne(id);
    }
	/**
	 * 根据文章id获取数据
	 * @param id
	 * @return
	 */
	public HealthEduArticlePatient findById(Long id) {
		return healthEduArticlePatientDao.findOne(id);
	}
    public List<HealthEduArticlePatient> findByArticleAndPatient(String article, String patient) {
        return healthEduArticlePatientDao.findByArticleAndPatient(article, patient);
    }
	public List<HealthEduArticlePatient> findByArticleAndPatient(String article,String patient) {
		return healthEduArticlePatientDao.findByArticleAndPatient(article, patient);
	}
    /**
     * 查询患者文章
     * @param patient 患者标识
     * @param pagesize 分页大小
     * @return
     */
//	public Page<HealthEduArticlePatient> findByPatient(String patient, long id, int pagesize) {
//		if (pagesize <= 0) {
//			pagesize = 10;
//		}
//		// 排序
//		Sort sort = new Sort(Direction.DESC, "id");
//		// 分页信息
//		PageRequest pageRequest = new PageRequest(0, pagesize, sort);
//		// 设置查询条件
//		Map<String, SearchFilter> filters = new HashMap<String, SearchFilter>();
//		// 患者过滤
//		filters.put("patient", new SearchFilter("patient", Operator.EQ, patient));
//		if (id > 0) {
//			filters.put("id", new SearchFilter("id", Operator.LT, id));
//		}
//		Specification<HealthEduArticlePatient> spec = DynamicSpecifications.bySearchFilter(filters.values(), HealthEduArticlePatient.class);
//		return healthEduArticlePatientDao.findAll(spec, pageRequest);
//	}
	/**
	 * 查询患者文章
	 * @param patient 患者标识
	 * @param pagesize 分页大小
	 * @return
	 */
	public Page<HealthEduArticlePatient> findByPatient(String patient, long id, int pagesize) {
		if (pagesize <= 0) {
			pagesize = 10;
		}
		// 排序
		Sort sort = new Sort(Direction.DESC, "id");
		// 分页信息
		PageRequest pageRequest = new PageRequest(0, pagesize, sort);
		// 设置查询条件
		Map<String, SearchFilter> filters = new HashMap<String, SearchFilter>();
		// 患者过滤
		filters.put("patient", new SearchFilter("patient", Operator.EQ, patient));
		if (id > 0) {
			filters.put("id", new SearchFilter("id", Operator.LT, id));
		}
		Specification<HealthEduArticlePatient> spec = DynamicSpecifications.bySearchFilter(filters.values(), HealthEduArticlePatient.class);
		return healthEduArticlePatientDao.findAll(spec, pageRequest);
	}
    /**
     * 查询患者文章
     *
     * @param patient  患者标识
     * @param pagesize 分页大小
     * @return
     */
    public List<HealthEduArticlePatient> findByPatient(String patient, long id, int pagesize) {
        if (pagesize <= 0) {
            pagesize = 10;
        }
        String sql = "select " +
                "    a.id" +
                "    ,a.patient" +
                "    ,a.article" +
                "    ,a.doctor" +
                "    ,a.doctor_name as doctorName" +
                "    ,b.title" +
                "    ,b.url" +
                "    ,b.summary as content" +
                "    ,a.is_read as 'read'" +
                "    ,a.czrq" +
                " from" +
                "     wlyy_health_edu_article_patient a" +
                "     , wlyy_health_edu_article b" +
                " where" +
                "      a.article = b.code" +
                " and a.patient = ?" +
                (id > 0 ? " and a.id < ? " : "") +
                " order by a.id desc limit 0," + pagesize;
        List<HealthEduArticlePatient> list = jdbcTemplate.query(sql,
                id > 0 ? new Object[]{patient,id} : new Object[]{patient}, new BeanPropertyRowMapper(HealthEduArticlePatient.class));
        return list;
    }
	/**
	 * 文章更新为已读
	 * @param patient
	 * @param article
	 * @return
	 */
	public int updateRead(String patient, String article) {
		return healthEduArticlePatientDao.updateRead(patient, article);
	}
    /**
     * 文章更新为已读
     *
     * @param patient
     * @param article
     * @return
     */
    public int updateRead(String patient, String article) {
        return healthEduArticlePatientDao.updateRead(patient, article);
    }
}
}

+ 18 - 21
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/health/HealthEduArticleService.java

@ -42,13 +42,12 @@ public class HealthEduArticleService extends BaseService {
    /**
    /**
     * 保存福州健康教育文章
     * 保存福州健康教育文章
     *
     * @param result xml格式
     * @param result xml格式
     * @return
     * @return
     * @throws Exception
     * @throws Exception
     */
     */
    public int saveHealthEduArticles(String result) throws Exception {
    public int saveHealthEduArticles(String result) throws Exception {
        List<Map<String, String>> listmap = Xml2ListMap.xml2List(result);
        List<Map<String,String>> listmap= Xml2ListMap.xml2List(result);
        String code = null;
        String code = null;
        String title = null;
        String title = null;
        String imgUrl = null;
        String imgUrl = null;
@ -56,13 +55,13 @@ public class HealthEduArticleService extends BaseService {
        String keyWord = null;
        String keyWord = null;
        String type = null;
        String type = null;
        int rows = 0;
        int rows = 0;
        for (Map<String, String> temp : listmap) {
        for(Map<String,String> temp : listmap){
            code = temp.get("xml.Result.MessageId");
            code = temp.get("xml.Result.MessageId");
            title = temp.get("xml.Result.MessageTitle");
            title = temp.get("xml.Result.MessageTitle");
            imgUrl = temp.get("xml.Result.ImageUrlSmall");
            imgUrl = temp.get("xml.Result.ImageUrlSmall");
            content = temp.get("xml.Result.MessageContent");
            content = temp.get("xml.Result.MessageContent");
            keyWord = temp.get("xml.Result.MessageType");
            keyWord = temp.get("xml.Result.MessageType");
            switch (keyWord) {
            switch (keyWord){
                case "1":
                case "1":
                    keyWord = "高血压";
                    keyWord = "高血压";
                    type = "2";
                    type = "2";
@ -102,19 +101,15 @@ public class HealthEduArticleService extends BaseService {
            }
            }
            String sql = "INSERT INTO wlyy_health_edu_article  " +
            String sql = "INSERT INTO wlyy_health_edu_article  " +
                    "VALUES(NULL,?,?,?,?,?,NULL,?,?)";
            String summary = content.replaceAll("</?[^>]+>", "")
                    .replaceAll("<a>\\s*|\t|\r|\n</a>", "")
                    .replaceAll("&nbsp;", "").replaceAll(" ", "");
            rows = jdbcTemplate.update(sql, code, title, summary, imgUrl, content, keyWord, type);
            rows += rows;
                    "VALUES(NULL,?,?,?,?,NULL,?,?)";
            rows = jdbcTemplate.update(sql,code,title,imgUrl,content,keyWord,type);
            rows+=rows;
        }
        }
        return rows;
        return rows;
    }
    }
    /**
    /**
     * 由请求参数获取福州健康教育文章
     * 由请求参数获取福州健康教育文章
     *
     * @param params
     * @param params
     * @return
     * @return
     * @throws Exception
     * @throws Exception
@ -125,19 +120,19 @@ public class HealthEduArticleService extends BaseService {
//      获取远程地址url 、App Key 和 App secret  
//      获取远程地址url 、App Key 和 App secret  
        String prixUrl = SystemConf.getInstance().getYihuOpenPlatformUrl();
        String prixUrl = SystemConf.getInstance().getYihuOpenPlatformUrl();
//        String prixUrl ="http://apitest.yihu.com.cn/OpenPlatform/cgiBin/1.0/";
//        String prixUrl ="http://apitest.yihu.com.cn/OpenPlatform/cgiBin/1.0/";
        String appId = SystemConf.getInstance().getYihuOpenPlatformAppId();
        String appId =SystemConf.getInstance().getYihuOpenPlatformAppId();
//        String appId = "9000276";
//        String appId = "9000276";
        String secret = SystemConf.getInstance().getYihuOpenPlatformSecret();
        String secret = SystemConf.getInstance().getYihuOpenPlatformSecret();
//        String secret = "OKC8BS1KGXTDE9GPP1EO4VYLUXF8DJ7QUP72H613ZXA";
//        String secret = "OKC8BS1KGXTDE9GPP1EO4VYLUXF8DJ7QUP72H613ZXA";
//      请求参数(i健康接口说明文档)正式接口 由prixUrl获取apixUrl
//      请求参数(i健康接口说明文档)正式接口 由prixUrl获取apixUrl
        String apiUrl = prixUrl + "jkjy/JkjyImpl/queryHealtheducationForIHealth";
        String apiUrl = prixUrl+"jkjy/JkjyImpl/queryHealtheducationForIHealth";
//      获取加密后参数集合
//      获取加密后参数集合
        Map<String, String> param = httpClientUtil.getSecretParams(params, appId, secret);
        Map<String,String> param = httpClientUtil.getSecretParams(params,appId,secret);
//      拼接请求URL (加密签名+apiUrl)
//      拼接请求URL (加密签名+apiUrl)
//      获取返回数据( HTTP post请求,参数需要utf-8编码)
//      获取返回数据( HTTP post请求,参数需要utf-8编码)
        String results = httpClientUtil.httpPost(apiUrl, param);
        String  results = httpClientUtil.httpPost(apiUrl,param);
        return results;
        return results;
@ -214,24 +209,26 @@ public class HealthEduArticleService extends BaseService {
        List<Object> params = new ArrayList<Object>();
        List<Object> params = new ArrayList<Object>();
        String sql = "select " +
        String sql = "select " +
                "    a.article" +
                "    a.article" +
                "    ,a.title" +
                "    ,a.url" +
                "    ,b.title" +
                "    ,b.url" +
                "    ,a.czrq" +
                "    ,a.czrq" +
                "    ,a.summary content" +
                "    ,b.summary content" +
                "    ,d.code" +
                "    ,d.code" +
                "    ,d.name" +
                "    ,d.name" +
                "    ,d.photo" +
                "    ,d.photo" +
                "    ,a.admin_team_code" +
                "    ,a.admin_team_code" +
                "  from" +
                "  from" +
                "    wlyy_health_edu_article_patient a" +
                "    wlyy_health_edu_article_patient a" +
                "    ,wlyy_health_edu_article b" +
                "    ,wlyy_doctor d" +
                "    ,wlyy_doctor d" +
                "  where" +
                "  where" +
                "    a.doctor = d.code " +
                "    a.article = b.code " +
                "    and a.doctor = d.code " +
                "    and a.patient = ?" +
                "    and a.patient = ?" +
                "    and a.admin_team_code = ?" +
                "    and a.admin_team_code = ?" +
                "  order by a.czrq desc limit " + page * pageSize + "," + pageSize;
                "  order by a.czrq desc limit " + page*pageSize + "," + pageSize;
        List<Map<String, Object>> result = jdbcTemplate.queryForList(sql, new Object[]{patient, teamCode});
        List<Map<String,Object>> result = jdbcTemplate.queryForList(sql,new Object[]{patient,teamCode});
        return result;
        return result;
    }
    }

+ 2 - 2
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/health/PatientHealthGuidanceService.java

@ -191,7 +191,7 @@ public class PatientHealthGuidanceService extends BaseService {
	 * @return
	 * @return
	 */
	 */
	public JSONArray findByPatientAndGuidanceAndTeam(String patient,long teamCode,int page,int pageSize){
	public JSONArray findByPatientAndGuidanceAndTeam(String patient,long teamCode,int page,int pageSize){
		Sort sort = new Sort(Sort.Direction.DESC,"czrq");
		Sort sort = new Sort(Sort.Direction.DESC,"createTime");
		PageRequest pageRequest = new PageRequest(0, pageSize, sort);
		PageRequest pageRequest = new PageRequest(0, pageSize, sort);
		Page<Object> result = patientHealthGuidanceDao.findByPatientAndTeamCode(patient,teamCode,pageRequest);
		Page<Object> result = patientHealthGuidanceDao.findByPatientAndTeamCode(patient,teamCode,pageRequest);
		JSONArray array = new JSONArray();
		JSONArray array = new JSONArray();
@ -204,7 +204,7 @@ public class PatientHealthGuidanceService extends BaseService {
				json.put("doctorPhoto", temp[1]);
				json.put("doctorPhoto", temp[1]);
				json.put("id", temp[2]);
				json.put("id", temp[2]);
				json.put("content", temp[3]);
				json.put("content", temp[3]);
				json.put("czrq", DateUtil.dateToStrLong((Date) temp[4]));
				json.put("createTime", DateUtil.dateToStrLong((Date) temp[4]));
				json.put("adminTeamCode", temp[7]);
				json.put("adminTeamCode", temp[7]);
				array.put(json);
				array.put(json);
			}
			}

+ 7 - 4
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/guahao/GuahaoXMService.java

@ -116,11 +116,14 @@ public class GuahaoXMService implements IGuahaoService {
        }
        }
        if (StringUtils.isNotBlank(dcode)) {
        if (StringUtils.isNotBlank(dcode)) {
            reservation.setDoctor(dcode);//代理签约维护待签约人编码
            reservation.setDoctor(dcode);//代理签约维护待签约人编码
            Patient p = patientService.findByCode(patient);
            consultService.sendMucMessageBySingnType(dcode,dname,patient,"我已成功为您预约:" + startTime + "," + hospitalName + hosDeptName + doctorName + "医生的号源。您可直接前往医院就诊</br><a name='guahao' href='javascript:void(0)' data-id='" + code + "'>点击查看详情</a>","1",p.getName());
        }
        }
        // 保存预约记录
        // 保存预约记录
        patientReservationDao.save(reservation);
        patientReservationDao.save(reservation);
        if(StringUtils.isNotBlank(dcode)){
            Patient p = patientService.findByCode(patient);
            consultService.sendMucMessageBySingnType(dcode,dname,patient,"我已成功为您预约:" + startTime + "," + hospitalName + hosDeptName + doctorName + "医生的号源。您可直接前往医院就诊</br><a name='guahao' href='javascript:void(0)' data-id='" + reservation.getId() + "'>点击查看详情</a>","1",p.getName());
        }
        return code;
        return code;
    }
    }
@ -865,7 +868,7 @@ public class GuahaoXMService implements IGuahaoService {
    /**
    /**
     * 根据患者医保卡获取近三个月的预约记录
     * 根据患者医保卡获取近三个月的预约记录
     */
     */
    public List<PatientReservation> GetRegList(String patientCode, String strStart, String strEnd) throws Exception {
    public List<PatientReservation> GetRegList(String patientCode, String strStart, String strEnd,String strStartTime,String strEndTime) throws Exception {
        Patient patient = patientService.findByCode(patientCode);
        Patient patient = patientService.findByCode(patientCode);
        if (patient == null) {
        if (patient == null) {
            throw new Exception("不存在该用户!");
            throw new Exception("不存在该用户!");
@ -979,7 +982,7 @@ public class GuahaoXMService implements IGuahaoService {
        }
        }
        //根据患者医保卡获取近三个月的已取消的预约记录
        //根据患者医保卡获取近三个月的已取消的预约记录
        List<PatientReservation> list = patientReservationDao.findByPatientAndStartTime(patientCode,strStart,strEnd);
        List<PatientReservation> list = patientReservationDao.findByPatientAndStartTime(patientCode,strStart,strEnd,strStartTime,strEndTime);
        if(list.size()>0){
        if(list.size()>0){
            patientRegList.addAll(list);
            patientRegList.addAll(list);
        }
        }

+ 1 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/jw/JwArchivesService.java

@ -531,6 +531,7 @@ public class JwArchivesService {
                        re.put("electrocardiogram",jsonObject.get("ELECTROCARDIOGRAM").toString());// 是否异常
                        re.put("electrocardiogram",jsonObject.get("ELECTROCARDIOGRAM").toString());// 是否异常
                        re.put("electrocardiogramExcep",jsonObject.get("ELECTROCARDIOGRAM_EXCEP").toString());// 异常情况
                        re.put("electrocardiogramExcep",jsonObject.get("ELECTROCARDIOGRAM_EXCEP").toString());// 异常情况
                        re.put("microalbuminuria",jsonObject.get("MICROALBUMINURIA").toString());//尿微量白蛋白
                        re.put("microalbuminuria",jsonObject.get("MICROALBUMINURIA").toString());//尿微量白蛋白
                        re.put("upcr",jsonObject.get("UP_CR").toString());//尿白蛋白/肌酥比值
                        re.put("stoolOccultBlood",jsonObject.get("STOOL_OCCULT_BLOOD").toString());//大便潜血
                        re.put("stoolOccultBlood",jsonObject.get("STOOL_OCCULT_BLOOD").toString());//大便潜血
                        re.put("glycolatedHemoglobin",jsonObject.get("GLYCOLATED_HEMOGLOBIN").toString());//糖化血红蛋白
                        re.put("glycolatedHemoglobin",jsonObject.get("GLYCOLATED_HEMOGLOBIN").toString());//糖化血红蛋白
                        re.put("hbsag",jsonObject.get("HBSAG").toString());//乙型肝炎表面抗原
                        re.put("hbsag",jsonObject.get("HBSAG").toString());//乙型肝炎表面抗原

+ 1 - 1
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/common/account/WechatController.java

@ -191,7 +191,7 @@ public class WechatController extends WeixinBaseController {
            if (patient != null) {
            if (patient != null) {
                if (!StringUtils.isEmpty(patient.getMobile())) {
                if (!StringUtils.isEmpty(patient.getMobile())) {
                    return error(-1, "该身份证已被注册");
                    return error(-2, "该身份证已被注册");
                }
                }
            }
            }
            List<Patient> patients = patientService.findByMobile(mobile);
            List<Patient> patients = patientService.findByMobile(mobile);

+ 6 - 4
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/health/DoctorHealthEduArticleController.java

@ -99,8 +99,8 @@ public class DoctorHealthEduArticleController extends WeixinBaseController {
                    json.put("title", map.get("title"));
                    json.put("title", map.get("title"));
                    // 文章查看URL
                    // 文章查看URL
                    json.put("url", map.get("url"));
                    json.put("url", map.get("url"));
                    // 文章简介
                    // 文章简介
                    //json.put("content", parsrHtml(map.get("content").toString()));
                    json.put("content", map.get("content").toString());
                    json.put("content", map.get("content").toString());
                    // 添加日期
                    // 添加日期
                    json.put("czrq", DateUtil.dateToStrLong((Date) map.get("czrq")));
                    json.put("czrq", DateUtil.dateToStrLong((Date) map.get("czrq")));
@ -165,6 +165,7 @@ public class DoctorHealthEduArticleController extends WeixinBaseController {
                    // 文章查看URL
                    // 文章查看URL
                    json.put("url", map.get("url"));
                    json.put("url", map.get("url"));
                    // 文章简介
                    // 文章简介
                    //json.put("content", parsrHtml(map.get("content").toString()));
                    json.put("content", map.get("content").toString());
                    json.put("content", map.get("content").toString());
                    // 发送日期
                    // 发送日期
                    json.put("czrq", DateUtil.dateToStrLong((Date) map.get("czrq")));
                    json.put("czrq", DateUtil.dateToStrLong((Date) map.get("czrq")));
@ -203,6 +204,7 @@ public class DoctorHealthEduArticleController extends WeixinBaseController {
                json.put("url", map.get("url"));
                json.put("url", map.get("url"));
                // 文章简介
                // 文章简介
                //json.put("content", parsrHtml(map.get("content").toString()));
                json.put("content", map.get("content").toString());
                json.put("content", map.get("content").toString());
                // 添加日期
                // 添加日期
                json.put("czrq", DateUtil.dateToStrLong((Date) map.get("czrq")));
                json.put("czrq", DateUtil.dateToStrLong((Date) map.get("czrq")));
@ -365,11 +367,11 @@ public class DoctorHealthEduArticleController extends WeixinBaseController {
                    // 设置文章标识
                    // 设置文章标识
                    heap.setArticle(a);
                    heap.setArticle(a);
                    // 设置文章简介
                    // 设置文章简介
                    heap.setContent(temp.getContent());
                    //heap.setContent(temp.getContent());
                    // 设置文章标题
                    // 设置文章标题
                    heap.setTitle(temp.getTitle());
                    //heap.setTitle(temp.getTitle());
                    // 设置文章查看URL
                    // 设置文章查看URL
                    heap.setUrl(temp.getUrl());
                    //heap.setUrl(temp.getUrl());
                    // 设置发送时间
                    // 设置发送时间
                    heap.setCzrq(new Date());
                    heap.setCzrq(new Date());
                    // 设置医生标识
                    // 设置医生标识

+ 3 - 2
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/health/HealthEduArticleController.java

@ -57,7 +57,7 @@ public class HealthEduArticleController extends BaseController {
	@ResponseBody
	@ResponseBody
	public String list(@RequestParam("id")long id, @RequestParam("pagesize") int pagesize) {
	public String list(@RequestParam("id")long id, @RequestParam("pagesize") int pagesize) {
		try {
		try {
			Page<HealthEduArticlePatient> list = healthEduArticlePatientService.findByPatient(getUID(), id, pagesize);
			List<HealthEduArticlePatient> list = healthEduArticlePatientService.findByPatient(getUID(), id, pagesize);
			JSONArray jsonArray = new JSONArray();
			JSONArray jsonArray = new JSONArray();
			Map<String,Doctor> docMap = new HashMap<>();
			Map<String,Doctor> docMap = new HashMap<>();
			if (list != null) {
			if (list != null) {
@ -73,7 +73,8 @@ public class HealthEduArticleController extends BaseController {
					// 文章查看URL
					// 文章查看URL
					json.put("url", article.getUrl());
					json.put("url", article.getUrl());
					// 文章简介
					// 文章简介
					json.put("content", parsrHtml(article.getContent()));
					//json.put("content", parsrHtml(article.getContent()));
					json.put("content", article.getContent());
					// 是否已读:0已读,1未读
					// 是否已读:0已读,1未读
					json.put("read", article.getRead());
					json.put("read", article.getRead());
					// 添加日期
					// 添加日期

+ 2 - 1
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/third/BookingController.java

@ -574,10 +574,11 @@ public class BookingController extends WeixinBaseController {
                             @RequestParam(value = "patient", required = false) String patient) {
                             @RequestParam(value = "patient", required = false) String patient) {
        try {
        try {
            SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat sm2 = new SimpleDateFormat("yyyy/M/d");
            Date nowDate = new Date();
            Date nowDate = new Date();
            Date oneMonthAfter = getMonthBefore(nowDate, -1);
            Date oneMonthAfter = getMonthBefore(nowDate, -1);
            Date threeMonthBefore = getMonthBefore(nowDate, 3);        //三个月历史记录
            Date threeMonthBefore = getMonthBefore(nowDate, 3);        //三个月历史记录
            List<PatientReservation> list = guahaoXM.GetRegList(patient, sm.format(threeMonthBefore), sm.format(oneMonthAfter));
            List<PatientReservation> list = guahaoXM.GetRegList(patient, sm.format(threeMonthBefore), sm.format(oneMonthAfter), sm2.format(threeMonthBefore), sm2.format(oneMonthAfter));
            return write(200, "获取患者预约信息列表成功!", "data", list);
            return write(200, "获取患者预约信息列表成功!", "data", list);
        } catch (Exception e) {
        } catch (Exception e) {
            return error(-1, e.getMessage());
            return error(-1, e.getMessage());