|
@ -0,0 +1,190 @@
|
|
|
package com.yihu.jw.care.service.prescription;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yihu.jw.care.dao.prescription.BaseCarePrescriptionDao;
|
|
|
import com.yihu.jw.doctor.dao.BaseDoctorDao;
|
|
|
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
|
|
|
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
|
|
|
import com.yihu.jw.entity.base.org.BaseOrgDO;
|
|
|
import com.yihu.jw.entity.base.patient.BasePatientDO;
|
|
|
import com.yihu.jw.entity.care.prescription.BaseCarePrescriptionDO;
|
|
|
import com.yihu.jw.patient.dao.BasePatientDao;
|
|
|
import com.yihu.jw.restmodel.ResponseContant;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* Created by yeshijie on 2021/10/11.
|
|
|
*/
|
|
|
@Service
|
|
|
public class BaseCarePrescriptionService {
|
|
|
|
|
|
@Autowired
|
|
|
private BaseCarePrescriptionDao carePrescriptionDao;
|
|
|
@Autowired
|
|
|
private BasePatientDao patientDao;
|
|
|
@Autowired
|
|
|
private BaseDoctorDao doctorDao;
|
|
|
@Autowired
|
|
|
private JdbcTemplate jdbcTemplate;
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 医生端列表查询
|
|
|
* @param doctorCode
|
|
|
* @param status
|
|
|
* @param page
|
|
|
* @param size
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject queryDoctorList(String doctorCode, Integer status, int page, int size) {
|
|
|
JSONObject result = new JSONObject();
|
|
|
List<BaseCarePrescriptionDO> sqlResultlist;
|
|
|
|
|
|
String sql = "select distinct a.*," +
|
|
|
" case p.sex " +
|
|
|
" when 1 then '男' " +
|
|
|
" when 2 then '女' " +
|
|
|
" end AS sex, " +
|
|
|
" TIMESTAMPDIFF(year,p.birthday,NOW()) AS age ";
|
|
|
String filters = "from base_care_prescription a" +
|
|
|
" LEFT JOIN base_patient p ON a.patient = p.id," +
|
|
|
" base_service_package_sign_record sr,base_service_package_record r,base_service_package pack," +
|
|
|
" base_team_member m " +
|
|
|
" WHERE sr.id = r.sign_id and sr.patient = a.patient and r.service_package_id = pack.id " +
|
|
|
" and m.team_code = r.team_code and m.doctor_code = '"+doctorCode+"' ";
|
|
|
if(status != null){
|
|
|
filters += " and a.status = "+status;
|
|
|
}
|
|
|
int start = 0 == page ? page++ : (page - 1) * size;
|
|
|
int end = 0 == size ? 15 : size;
|
|
|
String limit = " order by a.create_time desc limit "+start+","+end;
|
|
|
|
|
|
String countSql = "SELECT count(distinct a.id) ";
|
|
|
|
|
|
try {
|
|
|
sqlResultlist = jdbcTemplate.query(sql+filters+limit,new BeanPropertyRowMapper(BaseCarePrescriptionDO.class));
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
result.put(ResponseContant.resultMsg, "从数据库查询列表信息失败");
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
Long count;
|
|
|
try {
|
|
|
count = jdbcTemplate.queryForObject(countSql+filters, Long.class);
|
|
|
} catch (Exception e) {
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
result.put(ResponseContant.resultMsg, "从数据库统计数量失败" );
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.success);
|
|
|
result.put(ResponseContant.resultMsg, sqlResultlist);
|
|
|
JSONObject countItem = new JSONObject();
|
|
|
countItem.put("count", count);
|
|
|
result.putAll(countItem);
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 居民端列表查询
|
|
|
* @param patientId
|
|
|
* @param status
|
|
|
* @param page
|
|
|
* @param size
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject queryPatientList(String patientId, Integer status, int page, int size) {
|
|
|
JSONObject result = new JSONObject();
|
|
|
List<BaseCarePrescriptionDO> sqlResultlist;
|
|
|
|
|
|
String sql = "select * from base_care_prescription ";
|
|
|
String filters = " where patient = '"+patientId+"' ";
|
|
|
if(status != null){
|
|
|
filters += " and status = "+status;
|
|
|
}
|
|
|
int start = 0 == page ? page++ : (page - 1) * size;
|
|
|
int end = 0 == size ? 15 : size;
|
|
|
String limit = " order by create_time desc limit "+start+","+end;
|
|
|
|
|
|
String countSql = "SELECT count(id) from base_care_prescription ";
|
|
|
|
|
|
try {
|
|
|
sqlResultlist = jdbcTemplate.query(sql+filters+limit,new BeanPropertyRowMapper(BaseCarePrescriptionDO.class));
|
|
|
} catch (Exception e) {
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
result.put(ResponseContant.resultMsg, "从数据库查询列表信息失败");
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
Long count;
|
|
|
try {
|
|
|
count = jdbcTemplate.queryForObject(countSql+filters, Long.class);
|
|
|
} catch (Exception e) {
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
result.put(ResponseContant.resultMsg, "从数据库统计数量失败" );
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.success);
|
|
|
result.put(ResponseContant.resultMsg, sqlResultlist);
|
|
|
JSONObject countItem = new JSONObject();
|
|
|
countItem.put("count", count);
|
|
|
result.putAll(countItem);
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 申请续方
|
|
|
* @param patient
|
|
|
* @param applyImgs
|
|
|
* @param applyContent
|
|
|
*/
|
|
|
public BaseCarePrescriptionDO applyPrescription(String patient,String applyImgs,String applyContent){
|
|
|
BaseCarePrescriptionDO prescriptionDO = new BaseCarePrescriptionDO();
|
|
|
prescriptionDO.setApplyImgs(applyImgs);
|
|
|
prescriptionDO.setApplyContent(applyContent);
|
|
|
|
|
|
BasePatientDO patientDO = patientDao.findById(patient);
|
|
|
prescriptionDO.setPatient(patient);
|
|
|
prescriptionDO.setPatientName(patientDO.getName());
|
|
|
prescriptionDO.setStatus(1);
|
|
|
carePrescriptionDao.save(prescriptionDO);
|
|
|
return prescriptionDO;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 医生处理续方
|
|
|
* @param id
|
|
|
* @param dealImgs
|
|
|
* @param dealContent
|
|
|
*/
|
|
|
public String dealPrescription(String id,String dealImgs,String dealContent,String doctor){
|
|
|
String result = "";
|
|
|
BaseCarePrescriptionDO prescriptionDO = carePrescriptionDao.findOne(id);
|
|
|
if(2 == prescriptionDO.getStatus()){
|
|
|
return "请勿重复处理";
|
|
|
}
|
|
|
prescriptionDO.setDealContent(dealContent);
|
|
|
prescriptionDO.setDealImgs(dealImgs);
|
|
|
prescriptionDO.setStatus(2);
|
|
|
prescriptionDO.setDoctor(doctor);
|
|
|
|
|
|
BaseDoctorDO doctorDO = doctorDao.findById(doctor);
|
|
|
prescriptionDO.setDoctorName(doctorDO.getName());
|
|
|
|
|
|
carePrescriptionDao.save(prescriptionDO);
|
|
|
return result;
|
|
|
}
|
|
|
}
|