|
@ -1,155 +1,379 @@
|
|
|
//package com.yihu.wlyy.service.app.prenatalInspector;
|
|
|
//
|
|
|
//import com.yihu.wlyy.entity.patient.Patient;
|
|
|
//import com.yihu.wlyy.entity.patient.SignFamily;
|
|
|
//import com.yihu.wlyy.entity.patient.prenatal.PrenatalInspectorPlan;
|
|
|
//import com.yihu.wlyy.entity.patient.prenatal.PrenatalInspectorPlanLibrary;
|
|
|
//import com.yihu.wlyy.entity.patient.prenatal.PrenatalInspectorPreCard;
|
|
|
//import com.yihu.wlyy.repository.patient.PatientDao;
|
|
|
//import com.yihu.wlyy.repository.patient.PrenatalInspectorPlanDao;
|
|
|
//import com.yihu.wlyy.repository.patient.PrenatalInspectorPlanLibraryDao;
|
|
|
//import com.yihu.wlyy.repository.patient.PrenatalInspectorPreCardDao;
|
|
|
//import com.yihu.wlyy.service.BaseService;
|
|
|
//import com.yihu.wlyy.service.app.sign.FamilyContractService;
|
|
|
//import com.yihu.wlyy.task.PushMsgTask;
|
|
|
//import com.yihu.wlyy.util.DateUtil;
|
|
|
//import com.yihu.wlyy.wechat.util.WeiXinAccessTokenUtils;
|
|
|
//import org.apache.commons.lang3.StringUtils;
|
|
|
//import org.json.JSONArray;
|
|
|
//import org.json.JSONObject;
|
|
|
//import org.springframework.beans.factory.annotation.Autowired;
|
|
|
//import org.springframework.stereotype.Component;
|
|
|
//import org.springframework.transaction.annotation.Transactional;
|
|
|
//
|
|
|
//import java.util.ArrayList;
|
|
|
//import java.util.Date;
|
|
|
//import java.util.List;
|
|
|
//
|
|
|
///**
|
|
|
// * Created by yeshijie on 2017/6/6.
|
|
|
// */
|
|
|
//@Component
|
|
|
//@Transactional(rollbackFor = Exception.class)
|
|
|
//public class PrenatalInspectorPreCardService extends BaseService {
|
|
|
//
|
|
|
// @Autowired
|
|
|
// private PrenatalInspectorPreCardDao prenatalInspectorPreCardDao;
|
|
|
// @Autowired
|
|
|
// private PrenatalInspectorPlanLibraryDao prenatalInspectorPlanLibraryDao;
|
|
|
// @Autowired
|
|
|
// private PrenatalInspectorPlanDao prenatalInspectorPlanDao;
|
|
|
// @Autowired
|
|
|
// private WeiXinAccessTokenUtils accessTokenUtils;
|
|
|
// @Autowired
|
|
|
// private PatientDao patientDao;
|
|
|
// @Autowired
|
|
|
// private FamilyContractService familyContractService;
|
|
|
//
|
|
|
// /**
|
|
|
// * 待产检计划
|
|
|
// * @param code
|
|
|
// * @return
|
|
|
// */
|
|
|
// public JSONArray planList(String code){
|
|
|
// JSONArray jsonArray = new JSONArray();
|
|
|
// List<PrenatalInspectorPlan> planList = prenatalInspectorPlanDao.findByCode(code);
|
|
|
// for (PrenatalInspectorPlan plan:planList){
|
|
|
// JSONObject json = new JSONObject();
|
|
|
// json.put("checkItem",plan.getCheckItem());
|
|
|
// json.put("name",plan.getName());
|
|
|
// json.put("thisFoucs",plan.getThisFocus());
|
|
|
// json.put("thisNote",plan.getThisNote());
|
|
|
// if(plan.getInspectionTime()==null){
|
|
|
// json.put("inspectionTime","");
|
|
|
// }else {
|
|
|
// json.put("inspectionTime",DateUtil.dateToStrShort(plan.getInspectionTime()));
|
|
|
// }
|
|
|
// json.put("inspectionEndTime",DateUtil.dateToStrShort(plan.getInspectionEndTime()));
|
|
|
// json.put("inspectionStartTime",DateUtil.dateToStrShort(plan.getInspectionStartTime()));
|
|
|
//
|
|
|
//
|
|
|
// jsonArray.put(json);
|
|
|
// }
|
|
|
//
|
|
|
//
|
|
|
// return jsonArray;
|
|
|
// }
|
|
|
//
|
|
|
// /**
|
|
|
// * 预建卡列表-孕检计划
|
|
|
// * @param patient
|
|
|
// * @return
|
|
|
// */
|
|
|
// public JSONArray preCardList(String patient){
|
|
|
// JSONArray jsonArray = new JSONArray();
|
|
|
// List<PrenatalInspectorPreCard> preCards = prenatalInspectorPreCardDao.findByPatient(patient);
|
|
|
// for (PrenatalInspectorPreCard preCard:preCards){
|
|
|
// JSONObject json = new JSONObject();
|
|
|
// json.put("code",preCard.getCode());
|
|
|
// json.put("dueDate",DateUtil.dateToStrShort(preCard.getDueDate()));//预产期
|
|
|
// Date date = new Date();
|
|
|
// Long dueDateDay = DateUtil.getDays(preCard.getDueDate(),date);
|
|
|
// if(dueDateDay>0){
|
|
|
// json.put("dueDateWeek",getWeek(dueDateDay.intValue()));//距离预产期周数
|
|
|
// json.put("dueDateDay",getDay(dueDateDay.intValue()));//距离预产期周数的余数
|
|
|
// Long pregnancyDay = DateUtil.getDays(date,preCard.getLastMenstrualDate());
|
|
|
// int week = getWeek(pregnancyDay.intValue());
|
|
|
// int day = getDay(pregnancyDay.intValue());
|
|
|
// String preDay = day==0?(week+"周"):(week+"周"+day+"天");//怀孕时间
|
|
|
// json.put("status",preDay);
|
|
|
// }else {
|
|
|
// json.put("dueDateWeek",0);//距离预产期周数
|
|
|
// json.put("dueDateDay",0);//距离预产期周数的余数
|
|
|
// json.put("status",preCard.getStatus());
|
|
|
// }
|
|
|
//
|
|
|
// json.put("hospitalName",preCard.getHospitalName());//预约床位医院
|
|
|
// json.put("orderBedTime",preCard.getOrderBedTime());//预约床位时间
|
|
|
//
|
|
|
// jsonArray.put(json);
|
|
|
// }
|
|
|
//
|
|
|
// return jsonArray;
|
|
|
// }
|
|
|
//
|
|
|
// /**
|
|
|
// * 把天数换算成周数
|
|
|
// * @param day
|
|
|
// * @return
|
|
|
// */
|
|
|
// private int getWeek(Integer day){
|
|
|
// return day/7;
|
|
|
// }
|
|
|
//
|
|
|
// /**
|
|
|
// * 把天数换算成周数的余数
|
|
|
// * @param day
|
|
|
// * @return
|
|
|
// */
|
|
|
// private int getDay(Integer day){
|
|
|
// return day%7;
|
|
|
// }
|
|
|
//
|
|
|
// /**
|
|
|
// * 新建产检预建卡
|
|
|
// */
|
|
|
// @Transactional
|
|
|
// public void addPrenatalInspectorPreCard(PrenatalInspectorPreCard preCard){
|
|
|
// //1、保存预建卡
|
|
|
// Date date = new Date();
|
|
|
// Date lastMenstrualDate = preCard.getLastMenstrualDate();
|
|
|
// preCard.setDel("1");
|
|
|
// preCard.setCode(getCode());
|
|
|
// preCard.setCzrq(date);
|
|
|
// preCard.setDueDate(DateUtil.getDueDate(preCard.getLastMenstrualDate()));//预产期
|
|
|
// preCard.setStatus("0");
|
|
|
// preCard.setEffective("");
|
|
|
// preCard.setInspectionPhase("1");//检查阶段
|
|
|
// prenatalInspectorPreCardDao.save(preCard);
|
|
|
//
|
|
|
// String patient = preCard.getPatient();
|
|
|
//
|
|
|
// //2、生成待产检计划
|
|
|
package com.yihu.wlyy.service.app.prenatalInspector;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yihu.wlyy.entity.patient.Patient;
|
|
|
import com.yihu.wlyy.entity.patient.SignFamily;
|
|
|
import com.yihu.wlyy.entity.patient.prenatal.PrenatalInspectorPlan;
|
|
|
import com.yihu.wlyy.entity.patient.prenatal.PrenatalInspectorPlanLibrary;
|
|
|
import com.yihu.wlyy.entity.patient.prenatal.PrenatalInspectorPreCard;
|
|
|
import com.yihu.wlyy.repository.patient.*;
|
|
|
import com.yihu.wlyy.service.BaseService;
|
|
|
import com.yihu.wlyy.service.app.sign.FamilyContractService;
|
|
|
import com.yihu.wlyy.service.third.jw.JwMaternalChildService;
|
|
|
import com.yihu.wlyy.task.PushMsgTask;
|
|
|
import com.yihu.wlyy.util.DateUtil;
|
|
|
import com.yihu.wlyy.wechat.util.WeiXinAccessTokenUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* Created by yeshijie on 2017/6/6.
|
|
|
*/
|
|
|
@Component
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public class PrenatalInspectorPreCardService extends BaseService {
|
|
|
|
|
|
@Autowired
|
|
|
private PrenatalInspectorPreCardDao prenatalInspectorPreCardDao;
|
|
|
@Autowired
|
|
|
private PrenatalInspectorPlanLibraryDao prenatalInspectorPlanLibraryDao;
|
|
|
@Autowired
|
|
|
private PrenatalInspectorPlanDao prenatalInspectorPlanDao;
|
|
|
@Autowired
|
|
|
private WeiXinAccessTokenUtils accessTokenUtils;
|
|
|
@Autowired
|
|
|
private PatientDao patientDao;
|
|
|
@Autowired
|
|
|
private FamilyContractService familyContractService;
|
|
|
@Autowired
|
|
|
private PushMsgTask pushMsgTask;
|
|
|
@Autowired
|
|
|
private JwMaternalChildService jwMaternalChildService;
|
|
|
@Autowired
|
|
|
private SignFamilyDao signFamilyDao;
|
|
|
|
|
|
// public
|
|
|
|
|
|
/**
|
|
|
* 待产检计划
|
|
|
* @param code
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONArray planList(String code){
|
|
|
JSONArray jsonArray = new JSONArray();
|
|
|
List<PrenatalInspectorPlan> planList = prenatalInspectorPlanDao.findByCode(code);
|
|
|
for (PrenatalInspectorPlan plan:planList){
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("checkItem",plan.getCheckItem());
|
|
|
json.put("name",plan.getName());
|
|
|
json.put("thisFoucs",plan.getThisFocus());
|
|
|
json.put("thisNote",plan.getThisNote());
|
|
|
if(plan.getInspectionTime()==null){
|
|
|
json.put("inspectionTime","");
|
|
|
}else {
|
|
|
json.put("inspectionTime",DateUtil.dateToStrShort(plan.getInspectionTime()));
|
|
|
}
|
|
|
json.put("inspectionEndTime",DateUtil.dateToStrShort(plan.getInspectionEndTime()));
|
|
|
json.put("inspectionStartTime",DateUtil.dateToStrShort(plan.getInspectionStartTime()));
|
|
|
|
|
|
jsonArray.add(json);
|
|
|
}
|
|
|
|
|
|
return jsonArray;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取产检列表
|
|
|
* @param patientCode
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONArray getEhrMaternalFirstExamRecord(String patientCode){
|
|
|
JSONArray re = new JSONArray();
|
|
|
SignFamily signFamily = signFamilyDao.findByPatient(patientCode);
|
|
|
String hospital = null;
|
|
|
if(signFamily!=null){
|
|
|
hospital = signFamily.getHospital();
|
|
|
}
|
|
|
Patient patient = patientDao.findByCode(patientCode);
|
|
|
try{
|
|
|
String response = jwMaternalChildService.getEhrMaternalFirstExamRecord(patient.getIdcard(),hospital);
|
|
|
JSONObject json = JSONObject.parseObject(response);
|
|
|
JSONArray data = json.getJSONArray("DATA");
|
|
|
if(data.size()>0){
|
|
|
for (int i=0;i<data.size();i++) {
|
|
|
JSONObject planJson = new JSONObject();
|
|
|
JSONObject pregnancy = data.getJSONObject(i);
|
|
|
String PREGNANCY_NO = pregnancy.getString("PREGNANCY_NO");//智业产检号
|
|
|
String END_MANNER = pregnancy.getString("END_MANNER");//妊娠终止方式
|
|
|
String END_TIME = pregnancy.getString("END_TIME");//结束妊娠
|
|
|
String MENSES_LAST = pregnancy.getString("MENSES_LAST");//末次月经
|
|
|
String EXPECTED_TIME = pregnancy.getString("EXPECTED_TIME");//预产期
|
|
|
String DELIVERY_WAY = pregnancy.getString("DELIVERY_WAY");//分娩方式
|
|
|
String DELIVERY_TIME = pregnancy.getString("DELIVERY_TIME");//分娩方式时间
|
|
|
String EXAM_TIME = pregnancy.getString("EXAM_TIME");//检查日期
|
|
|
planJson.put("pregnancyNo",PREGNANCY_NO);
|
|
|
planJson.put("endManner",END_MANNER);
|
|
|
planJson.put("endTime",END_TIME);
|
|
|
planJson.put("mensesLast",MENSES_LAST);
|
|
|
planJson.put("expectedTime",EXPECTED_TIME);
|
|
|
Date date = new Date();
|
|
|
if(StringUtils.isBlank(END_TIME)){
|
|
|
//未结束妊娠,生成待产检计划
|
|
|
List<PrenatalInspectorPlan> plans = prenatalInspectorPlanDao.findByCode(PREGNANCY_NO);
|
|
|
if(plans==null||plans.size()==0){//判断是否已经生成产检记录
|
|
|
//获取最后一次检查时间-查询复检记录
|
|
|
String lastExamTime = getLastExamTime(patient.getIdcard(),hospital,PREGNANCY_NO);
|
|
|
if(StringUtils.isBlank(lastExamTime)){
|
|
|
lastExamTime = EXAM_TIME;
|
|
|
}
|
|
|
|
|
|
Date lastMenstrualDate = DateUtil.strToDate(MENSES_LAST);
|
|
|
Long days = DateUtil.getDays(date,lastMenstrualDate);
|
|
|
List<PrenatalInspectorPlanLibrary> libraries = prenatalInspectorPlanLibraryDao.findByDays(days);
|
|
|
plans = new ArrayList<>();
|
|
|
PrenatalInspectorPlan plan = null;
|
|
|
for (PrenatalInspectorPlanLibrary library:libraries){
|
|
|
Date startTime = DateUtil.getPrenatalInspectorDate(lastMenstrualDate,library.getStartDay().intValue());
|
|
|
Long temp = DateUtil.getDays(DateUtil.strToDateLong(lastExamTime),startTime);
|
|
|
if(temp>0){//说明已经产检
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
plan = new PrenatalInspectorPlan();
|
|
|
plan.setInspectionPhase(library.getInspectionPhase());
|
|
|
plan.setStatus("0");
|
|
|
plan.setPatient(patientCode);
|
|
|
plan.setCzrq(date);
|
|
|
plan.setCheckItem(library.getCheckItem());
|
|
|
plan.setInspectionCode(PREGNANCY_NO);//产检号
|
|
|
plan.setInspectionEndTime(DateUtil.getPrenatalInspectorDate(lastMenstrualDate,library.getEndDay().intValue()));
|
|
|
plan.setInspectionStartTime(startTime);
|
|
|
plan.setName(library.getName());
|
|
|
plan.setThisFocus(library.getThisFocus());
|
|
|
plan.setThisNote(library.getThisNote());
|
|
|
|
|
|
if("1".equals(plan.getInspectionPhase())&&signFamily!=null){
|
|
|
plan.setSignHospital(signFamily.getHospital());
|
|
|
}
|
|
|
|
|
|
plans.add(plan);
|
|
|
}
|
|
|
if (plans.size()>0){
|
|
|
prenatalInspectorPlanDao.save(plans);
|
|
|
}
|
|
|
}
|
|
|
//计算距离下次产检时间
|
|
|
Long nextExamDay = 0l;
|
|
|
for (PrenatalInspectorPlan plan:plans) {
|
|
|
Long temp = DateUtil.getDays(date,plan.getInspectionStartTime());
|
|
|
if(nextExamDay==0||nextExamDay>temp){
|
|
|
nextExamDay = temp;
|
|
|
}
|
|
|
}
|
|
|
planJson.put("plans",plans);//待产检列表
|
|
|
planJson.put("nextExamDay",nextExamDay);//距离下次产检天数
|
|
|
|
|
|
//产床预约信息
|
|
|
String precontract_org_name = "";//产床医院
|
|
|
try {
|
|
|
String bedRecode = jwMaternalChildService.getEhrMaternalBedPrecontractRecord(patient.getIdcard(),hospital);
|
|
|
JSONObject bedJson = JSONObject.parseObject(bedRecode);
|
|
|
JSONArray bedData = bedJson.getJSONArray("DATA");
|
|
|
if(bedData.size()>0){
|
|
|
JSONObject exam = data.getJSONObject(data.size()-1);
|
|
|
precontract_org_name = exam.getString("PRECONTRACT_ORG_NAME");
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
planJson.put("precontractOrgName",precontract_org_name);//产床医院
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
|
|
|
return re;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 初检
|
|
|
* @param patientCode
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject firstExam(String patientCode){
|
|
|
JSONObject re = new JSONObject();
|
|
|
try {
|
|
|
SignFamily signFamily = signFamilyDao.findByPatient(patientCode);
|
|
|
String hospital = null;
|
|
|
if(signFamily!=null){
|
|
|
hospital = signFamily.getHospital();
|
|
|
}
|
|
|
Patient patient = patientDao.findByCode(patientCode);
|
|
|
|
|
|
String response = jwMaternalChildService.getEhrMaternalFirstExamRecord(patient.getIdcard(),hospital);
|
|
|
JSONObject json = JSONObject.parseObject(response);
|
|
|
if(json.getJSONArray("DATA").size()>0){
|
|
|
re = json.getJSONArray("DATA").getJSONObject(0);
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
return re;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 复检记录
|
|
|
* @param patientCode
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONArray reExamRecode(String patientCode,String pregnancyNo){
|
|
|
JSONArray re = new JSONArray();
|
|
|
try {
|
|
|
SignFamily signFamily = signFamilyDao.findByPatient(patientCode);
|
|
|
String hospital = null;
|
|
|
if(signFamily!=null){
|
|
|
hospital = signFamily.getHospital();
|
|
|
}
|
|
|
Patient patient = patientDao.findByCode(patientCode);
|
|
|
|
|
|
String response = jwMaternalChildService.getEhrMaternalReExamRecord(patient.getIdcard(),hospital,pregnancyNo);
|
|
|
JSONObject json = JSONObject.parseObject(response);
|
|
|
re = json.getJSONArray("DATA");
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
return re;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取最后一次产检时间
|
|
|
* @param idcard
|
|
|
* @param hospital
|
|
|
* @return
|
|
|
*/
|
|
|
public String getLastExamTime(String idcard,String hospital,String pregnancyNo){
|
|
|
String re = "";
|
|
|
try {
|
|
|
String response = jwMaternalChildService.getEhrMaternalReExamRecord(idcard,hospital,pregnancyNo);
|
|
|
JSONObject json = JSONObject.parseObject(response);
|
|
|
JSONArray data = json.getJSONArray("DATA");
|
|
|
if(data.size()>0){
|
|
|
JSONObject exam = data.getJSONObject(data.size()-1);
|
|
|
String PREGNANCY_WEEK = exam.getString("PREGNANCY_WEEK");//检查孕周
|
|
|
String examTime = exam.getString("EXAM_TIME");//产检日期
|
|
|
re = examTime;
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
return re;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 产床预约信息
|
|
|
* @param idcard
|
|
|
* @param hospital
|
|
|
* @return
|
|
|
*/
|
|
|
public String getEhrMaternalBedPrecontractRecord(String idcard,String hospital){
|
|
|
String re = "";
|
|
|
try {
|
|
|
String response = jwMaternalChildService.getEhrMaternalBedPrecontractRecord(idcard,hospital);
|
|
|
JSONObject json = JSONObject.parseObject(response);
|
|
|
JSONArray data = json.getJSONArray("DATA");
|
|
|
if(data.size()>0){
|
|
|
JSONObject exam = data.getJSONObject(data.size()-1);
|
|
|
String PREGNANCY_WEEK = exam.getString("PREGNANCY_WEEK");//检查孕周
|
|
|
String examTime = exam.getString("EXAM_TIME");//产检日期
|
|
|
re = examTime;
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
return re;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 预建卡列表-孕检计划
|
|
|
* @param patient
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONArray preCardList(String patient){
|
|
|
JSONArray jsonArray = new JSONArray();
|
|
|
List<PrenatalInspectorPreCard> preCards = prenatalInspectorPreCardDao.findByPatient(patient);
|
|
|
for (PrenatalInspectorPreCard preCard:preCards){
|
|
|
JSONObject json = new JSONObject();
|
|
|
json.put("code",preCard.getCode());
|
|
|
json.put("dueDate",DateUtil.dateToStrShort(preCard.getDueDate()));//预产期
|
|
|
Date date = new Date();
|
|
|
Long dueDateDay = DateUtil.getDays(preCard.getDueDate(),date);
|
|
|
if(dueDateDay>0){
|
|
|
json.put("dueDateWeek",getWeek(dueDateDay.intValue()));//距离预产期周数
|
|
|
json.put("dueDateDay",getDay(dueDateDay.intValue()));//距离预产期周数的余数
|
|
|
Long pregnancyDay = DateUtil.getDays(date,preCard.getLastMenstrualDate());
|
|
|
int week = getWeek(pregnancyDay.intValue());
|
|
|
int day = getDay(pregnancyDay.intValue());
|
|
|
String preDay = day==0?(week+"周"):(week+"周"+day+"天");//怀孕时间
|
|
|
json.put("status",preDay);
|
|
|
}else {
|
|
|
json.put("dueDateWeek",0);//距离预产期周数
|
|
|
json.put("dueDateDay",0);//距离预产期周数的余数
|
|
|
json.put("status",preCard.getStatus());
|
|
|
}
|
|
|
|
|
|
json.put("hospitalName",preCard.getHospitalName());//预约床位医院
|
|
|
json.put("orderBedTime",preCard.getOrderBedTime());//预约床位时间
|
|
|
|
|
|
jsonArray.add(json);
|
|
|
}
|
|
|
|
|
|
return jsonArray;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 把天数换算成周数
|
|
|
* @param day
|
|
|
* @return
|
|
|
*/
|
|
|
private int getWeek(Integer day){
|
|
|
return day/7;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 把天数换算成周数的余数
|
|
|
* @param day
|
|
|
* @return
|
|
|
*/
|
|
|
private int getDay(Integer day){
|
|
|
return day%7;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 新建产检预建卡
|
|
|
*/
|
|
|
public void addPrenatalInspectorPreCard(PrenatalInspectorPreCard preCard){
|
|
|
//1、保存预建卡
|
|
|
Date date = new Date();
|
|
|
Date lastMenstrualDate = preCard.getLastMenstrualDate();
|
|
|
preCard.setDel("1");
|
|
|
preCard.setCode(getCode());
|
|
|
preCard.setCzrq(date);
|
|
|
preCard.setDueDate(DateUtil.getDueDate(preCard.getLastMenstrualDate()));//预产期
|
|
|
preCard.setStatus("0");
|
|
|
preCard.setEffective("");
|
|
|
preCard.setInspectionPhase("1");//检查阶段
|
|
|
prenatalInspectorPreCardDao.save(preCard);
|
|
|
|
|
|
try {
|
|
|
//上传预建卡
|
|
|
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
|
|
|
String patient = preCard.getPatient();
|
|
|
|
|
|
//2、生成待产检计划(待产检计划由获取健康信息接口生成,关联产检计划)
|
|
|
// Long days = DateUtil.getDays(date,lastMenstrualDate);
|
|
|
// List<PrenatalInspectorPlanLibrary> libraries = prenatalInspectorPlanLibraryDao.findByDays(days);
|
|
|
// List<PrenatalInspectorPlan> plans = new ArrayList<>();
|
|
@ -180,61 +404,68 @@
|
|
|
// if (plans.size()>0){
|
|
|
// prenatalInspectorPlanDao.save(plans);
|
|
|
// }
|
|
|
//
|
|
|
// }
|
|
|
//
|
|
|
// /**
|
|
|
// * 产检提醒(1预约提醒,2就诊提醒)
|
|
|
// * 1、当居民已有经医生确认过的下一次产检时间,则距离下一次产检前7天(保证居民可自行预约),发出产检预约提醒通知。点击该消息,进入预约页面
|
|
|
// * 2、当居民已有经医生确认过的下一次产检时间,则距离下一次产检前1天,发出产检就诊提醒,提醒居民就诊。点击该消息,进入预约记录页面
|
|
|
// */
|
|
|
// public void sendPrenatalInspectorRemind(){
|
|
|
// System.out.println("产检计划---running");
|
|
|
// List<PrenatalInspectorPlan> planList = prenatalInspectorPlanDao.findWxTipList();
|
|
|
// for (PrenatalInspectorPlan plan:planList){
|
|
|
// try {
|
|
|
// Patient patient = patientDao.findByCode(plan.getPatient());
|
|
|
// String openId = patient.getOpenid();
|
|
|
// String name = patient.getName();
|
|
|
// String patientCode = patient.getCode();
|
|
|
// if(StringUtils.isNotBlank(openId)){
|
|
|
// Long day = DateUtil.getDays(plan.getInspectionTime(),DateUtil.getNowDateShort());
|
|
|
// JSONObject json = new JSONObject();
|
|
|
// if(day==7){
|
|
|
// //产检提醒
|
|
|
// json.put("remark","产检内容以医生实际检查为准。点击进行预约");
|
|
|
// json.put("first",name+",您好!您和您的宝宝需要进行产检啦~请及时预约产检,如已预约,请忽略");
|
|
|
// if("1".equals(plan.getInspectionPhase())){
|
|
|
// if(StringUtils.isNotBlank(plan.getSignHospital())){
|
|
|
// json.put("url","wdyy/html/hospital-dept.html?openid="+openId+"&toUser="+patientCode+"&toName="+name+"&hospitalId="+plan.getSignHospital());
|
|
|
// }else {
|
|
|
// json.put("url","wdyy/html/appointment-register.html?openid="+openId+"&toUser="+patientCode+"&toName="+name+"&orderType=1");
|
|
|
// }
|
|
|
// }else {
|
|
|
// json.put("url","wdyy/html/appointment-register.html?openid="+openId+"&toUser="+patientCode+"&toName="+name);
|
|
|
// }
|
|
|
//
|
|
|
// json.put("keyword1","产检提醒");
|
|
|
// String keyword2 = DateUtil.getStringDateShort()+"\n产检内容:"+plan.getCheckItem();
|
|
|
// json.put("keyword2",keyword2);
|
|
|
// PushMsgTask.getInstance().sendWeixinMessage(accessTokenUtils.getAccessToken(), 18, openId, name, json);
|
|
|
// }else if(day==1){
|
|
|
// //产检就诊提醒
|
|
|
// json.put("remark","产检内容以医生实际检查为准。点击查看预约记录");
|
|
|
// json.put("first",name+",您好!您和您的宝宝即将进行产检啦~请按时就诊,如已就诊,请忽略");
|
|
|
// json.put("url","wdyy/html/my-appointment.html?openid="+openId+"&toUser="+patientCode+"&toName="+name);
|
|
|
// json.put("keyword1","产检就诊提醒");
|
|
|
// String keyword2 = DateUtil.getStringDateShort()+"\n产检内容:"+plan.getCheckItem();
|
|
|
// json.put("keyword2",keyword2);
|
|
|
// PushMsgTask.getInstance().sendWeixinMessage(accessTokenUtils.getAccessToken(), 18, openId, name, json);
|
|
|
// }
|
|
|
// }
|
|
|
// }catch (Exception e){
|
|
|
// System.out.println("微信提醒发送失败");
|
|
|
// e.printStackTrace();
|
|
|
// }
|
|
|
// }
|
|
|
//
|
|
|
// }
|
|
|
//
|
|
|
//}
|
|
|
|
|
|
//3.更新居民信息
|
|
|
// Patient p = patientDao.findByCode(patient);
|
|
|
// p.setName(preCard.getName());
|
|
|
// p.setSsc(preCard.getSsc());
|
|
|
// p.setBirthday(preCard.getBirthday());
|
|
|
// p.setMobile(preCard.getMobile());
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 产检提醒(1预约提醒,2就诊提醒)
|
|
|
* 1、当居民已有经医生确认过的下一次产检时间,则距离下一次产检前7天(保证居民可自行预约),发出产检预约提醒通知。点击该消息,进入预约页面
|
|
|
* 2、当居民已有经医生确认过的下一次产检时间,则距离下一次产检前1天,发出产检就诊提醒,提醒居民就诊。点击该消息,进入预约记录页面
|
|
|
*/
|
|
|
public void sendPrenatalInspectorRemind(){
|
|
|
System.out.println("产检计划---running");
|
|
|
List<PrenatalInspectorPlan> planList = prenatalInspectorPlanDao.findWxTipList();
|
|
|
for (PrenatalInspectorPlan plan:planList){
|
|
|
try {
|
|
|
Patient patient = patientDao.findByCode(plan.getPatient());
|
|
|
String openId = patient.getOpenid();
|
|
|
String name = patient.getName();
|
|
|
String patientCode = patient.getCode();
|
|
|
if(StringUtils.isNotBlank(openId)){
|
|
|
Long day = DateUtil.getDays(plan.getInspectionTime(),DateUtil.getNowDateShort());
|
|
|
org.json.JSONObject json = new org.json.JSONObject();
|
|
|
if(day==7){
|
|
|
//产检提醒
|
|
|
json.put("remark","产检内容以医生实际检查为准。点击进行预约");
|
|
|
json.put("first",name+",您好!您和您的宝宝需要进行产检啦~请及时预约产检,如已预约,请忽略");
|
|
|
if("1".equals(plan.getInspectionPhase())){
|
|
|
if(StringUtils.isNotBlank(plan.getSignHospital())){
|
|
|
json.put("url","wdyy/html/hospital-dept.html?openid="+openId+"&toUser="+patientCode+"&toName="+name+"&hospitalId="+plan.getSignHospital());
|
|
|
}else {
|
|
|
json.put("url","wdyy/html/appointment-register.html?openid="+openId+"&toUser="+patientCode+"&toName="+name+"&orderType=1");
|
|
|
}
|
|
|
}else {
|
|
|
json.put("url","wdyy/html/appointment-register.html?openid="+openId+"&toUser="+patientCode+"&toName="+name);
|
|
|
}
|
|
|
|
|
|
json.put("keyword1","产检提醒");
|
|
|
String keyword2 = DateUtil.getStringDateShort()+"\n产检内容:"+plan.getCheckItem();
|
|
|
json.put("keyword2",keyword2);
|
|
|
pushMsgTask.sendWeixinMessage(accessTokenUtils.getAccessToken(), 18, openId, name, json);
|
|
|
}else if(day==1){
|
|
|
//产检就诊提醒
|
|
|
json.put("remark","产检内容以医生实际检查为准。点击查看预约记录");
|
|
|
json.put("first",name+",您好!您和您的宝宝即将进行产检啦~请按时就诊,如已就诊,请忽略");
|
|
|
json.put("url","wdyy/html/my-appointment.html?openid="+openId+"&toUser="+patientCode+"&toName="+name);
|
|
|
json.put("keyword1","产检就诊提醒");
|
|
|
String keyword2 = DateUtil.getStringDateShort()+"\n产检内容:"+plan.getCheckItem();
|
|
|
json.put("keyword2",keyword2);
|
|
|
pushMsgTask.sendWeixinMessage(accessTokenUtils.getAccessToken(), 18, openId, name, json);
|
|
|
}
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
System.out.println("微信提醒发送失败");
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|