Browse Source

代码修改

LAPTOP-KB9HII50\70708 1 month ago
parent
commit
610862fcd3

+ 14 - 0
business/base-service/src/main/java/com/yihu/jw/patient/dao/PatientPreDiagnosisInfoDao.java

@ -0,0 +1,14 @@
package com.yihu.jw.patient.dao;
import com.yihu.jw.entity.base.patient.PatientPreDiagnosisInfoDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * Created by yeshijie on 2024/12/20.
 */
public interface PatientPreDiagnosisInfoDao extends JpaRepository<PatientPreDiagnosisInfoDO, Long>
        , JpaSpecificationExecutor<PatientPreDiagnosisInfoDO> {
}

+ 198 - 0
business/base-service/src/main/java/com/yihu/jw/patient/service/PatientPreDiagnosisInfoService.java

@ -0,0 +1,198 @@
package com.yihu.jw.patient.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.patient.PatientMedicareCardDO;
import com.yihu.jw.entity.base.patient.PatientPreDiagnosisInfoDO;
import com.yihu.jw.entity.hospital.family.WlyyPatientFamilyMemberDO;
import com.yihu.jw.hospital.family.dao.WlyyPatientFamilyMemberDao;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.patient.dao.BasePatientMedicareCardDao;
import com.yihu.jw.patient.dao.PatientPreDiagnosisInfoDao;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.util.encrypt.MD5;
import com.yihu.jw.util.entity.ServiceException;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
 * Created by yeshijie on 2024/12/20.
 */
@Service
public class PatientPreDiagnosisInfoService extends BaseJpaService<PatientPreDiagnosisInfoDO, PatientPreDiagnosisInfoDao> {
    @Autowired
    private PatientPreDiagnosisInfoDao patientPreDiagnosisInfoDao;
    @Autowired
    private BasePatientDao patientDao;
    @Autowired
    private BasePatientMedicareCardDao basePatientMedicareCardDao;
    @Autowired
    private WlyyPatientFamilyMemberDao familyMemberDao;
    //诊前信息分页
    public PageEnvelop findByPage(String name,String mobile,String idcard,String chargeType,String fromSource,String systolicPressureStart
            ,String diastolicPressureStart,String systolicPressureEnd,String diastolicPressureEnd,String startTime,String endTime,int page,int size){
        String sql = "select * ";
        String countSql = "selcet count(*) ";
        String filter = " from base_patient_pre_diagnosis_info where 1=1 ";
        String orderBy = " order by id desc limit "+(page-1)*size+","+size;
        if(StringUtils.isNotBlank(name)){
            filter += " and (name like '%"+name+"%' or card_no like '%"+name+"%')";
        }
        if(StringUtils.isNotBlank(mobile)){
            filter += " and mobile like '%"+mobile+"%' ";
        }
        if(StringUtils.isNotBlank(idcard)){
            filter += " and idcard like '%"+idcard+"%' ";
        }
        if(StringUtils.isNotBlank(chargeType)){
            filter += " and charge_type = '"+chargeType+"' ";
        }
        if(StringUtils.isNotBlank(fromSource)){
            filter += " and from_source = '"+fromSource+"' ";
        }
        if(StringUtils.isNotBlank(systolicPressureStart)){
            filter += " and systolic_pressure >= '"+systolicPressureStart+"' ";
        }
        if(StringUtils.isNotBlank(systolicPressureEnd)){
            filter += " and systolic_pressure <= '"+systolicPressureEnd+"' ";
        }
        if(StringUtils.isNotBlank(diastolicPressureStart)){
            filter += " and diastolic_pressure >= '"+diastolicPressureStart+"' ";
        }
        if(StringUtils.isNotBlank(diastolicPressureEnd)){
            filter += " and diastolic_pressure <= '"+diastolicPressureEnd+"' ";
        }
        if(StringUtils.isNotBlank(startTime)){
            filter += " and create_time >= '"+startTime+"' ";
        }
        if(StringUtils.isNotBlank(endTime)){
            filter += " and create_time <= '"+endTime+"' ";
        }
        List<PatientPreDiagnosisInfoDO> list = jdbcTemplate.query(sql+filter+orderBy,new BeanPropertyRowMapper<>(PatientPreDiagnosisInfoDO.class));
        long count = jdbcTemplate.queryForObject(countSql+filter,Long.class);
        return PageEnvelop.getSuccessListWithPage("查询成功",list,page,size,count);
    }
    //保存患者档案
    public PatientPreDiagnosisInfoDO savePreDiagnosisInfo(PatientPreDiagnosisInfoDO infoDO) throws Exception{
        String idcard = infoDO.getIdcard();
        if(StringUtils.isNotBlank(infoDO.getIdcard())){
            throw new ServiceException("请输入证件类型");
        }
        String cardType = infoDO.getIdcardType();
        String mobile = infoDO.getMobile();
        BasePatientDO patient = patientDao.findByIdcard(infoDO.getIdcard());
        if(patient==null){
            patient = new BasePatientDO();
            String salt = UUID.randomUUID().toString().substring(0, 5);
            //三院注册不需要密码 默认密码aza354q.
            String pw = "aza354q.";
            patient.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
            patient.setSalt(salt);
            patient.setCardType(cardType);
            try {
                if ("身份证".equals(cardType)) {
                    String year = idcard.substring(6, 10);
                    String month = idcard.substring(10, 12);
                    String day = idcard.substring(12, 14);
                    String birthday = year + "-" + month + "-" + day;
                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                    patient.setBirthday(dateFormat.parse(birthday));
                }
            } catch (ParseException e) {
                e.printStackTrace();
            }
            patient.setMobile(mobile);
            patient.setDel("1");
            patient.setEnabled(1);
            patient.setLocked(0);
            patient.setSsc(infoDO.getCardNo());
            patient.setCreateTime(new Date());
            patient.setUpdateTime(new Date());
            patient.setName(infoDO.getName());
            if (StringUtils.isNoneBlank(idcard)) {
                patient.setIdcard(idcard);
            }
            BasePatientDO temp = patientDao.save(patient);
            PatientMedicareCardDO medicareCardDO = new PatientMedicareCardDO();
            medicareCardDO.setDel("1");
            medicareCardDO.setParentType("A");
            medicareCardDO.setType("A_01");
            medicareCardDO.setPatientCode(temp.getId());
            basePatientMedicareCardDao.save(medicareCardDO);
            WlyyPatientFamilyMemberDO wlyyPatientFamilyMemberDO = new WlyyPatientFamilyMemberDO();
            wlyyPatientFamilyMemberDO.setIsDel(1);
            wlyyPatientFamilyMemberDO.setPatient(patient.getId());
            wlyyPatientFamilyMemberDO.setFamilyMember(patient.getId());
            wlyyPatientFamilyMemberDO.setFamilyRelation("7");
            wlyyPatientFamilyMemberDO.setFamilyRelationName("本人");
            if (StringUtils.isNoneBlank(idcard)) {
                wlyyPatientFamilyMemberDO.setCardNo(idcard);
            }
            familyMemberDao.save(wlyyPatientFamilyMemberDO);
        }
        infoDO.setPatient(patient.getId());
        infoDO.setCreateTime(new Date());
        infoDO = patientPreDiagnosisInfoDao.save(infoDO);
        return infoDO;
    }
    //获取患者档案
    public PatientPreDiagnosisInfoDO findInfoDetail(Long id){
        return patientPreDiagnosisInfoDao.getOne(id);
    }
    //读卡
    public JSONObject cardReading(String cardNo){
        PatientPreDiagnosisInfoDO preDiagnosisInfoDO = patientPreDiagnosisInfoDao.getOne(1L);
        JSONObject json = (JSONObject) JSON.toJSON(preDiagnosisInfoDO);
        json.remove("id");
        json.put("cardNo",cardNo);
        json.remove("createTime");
        json.remove("patient");
        return json;
    }
    //关联平台测量数据
    public PageEnvelop findHealthIndexPage(String deviceSn,String dept,String startTime,String endTime,int page,int size){
        String sql = "SELECT  i.id,i.value1,i.value2,i.value3,date_format(i.record_date,'%Y-%m-%d %H:%i:%S' ) recordDate " +
                ",i.name,i.dept,i.dept_name deptName,d.device_name deviceName ";
        String countSql = "selcet count(i.id) ";
        String filter = " from wlyy_patient_health_index i,wlyy_devices d " +
                " WHERE i.device_sn=d.device_code and i.type=2 and i.del=1 ";
        String orderBy = " order by id desc limit "+(page-1)*size+","+size;
        if(StringUtils.isNotBlank(deviceSn)){
            filter += " and i.device_sn >= '"+deviceSn+"' ";
        }
        if(StringUtils.isNotBlank(dept)){
            filter += " and i.dept = '"+dept+"' ";
        }
        if(StringUtils.isNotBlank(startTime)){
            filter += " and i.record_date >= '"+startTime+"' ";
        }
        if(StringUtils.isNotBlank(endTime)){
            filter += " and i.record_date <= '"+endTime+"' ";
        }
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql+filter+orderBy);
        long count = jdbcTemplate.queryForObject(countSql+filter,Long.class);
        return PageEnvelop.getSuccessListWithPage("查询成功",list,page,size,count);
    }
}

+ 282 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/patient/PatientPreDiagnosisInfoDO.java

@ -0,0 +1,282 @@
package com.yihu.jw.entity.base.patient;
import com.yihu.jw.entity.IdEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
/**
 * 患者诊前信息
 * Created by yeshijie on 2024/12/20.
 */
@Entity
@Table(name = "base_patient_pre_diagnosis_info")
@SequenceGenerator(name="id_generated", sequenceName="BASE_PATIENT_PRE_DIAGNOSIS_INFO_SEQ")
public class PatientPreDiagnosisInfoDO extends IdEntityWithCreateTime {
    private String patient;//居民id
    private String cardNo;//就诊卡号
    private String name;//姓名
    private String mobile;//联系电话
    private String idcard;//证件号码
    private String idcardType;//证件类型
    private String sex;//性别
    private String age;//年龄
    private String birthday;//出生日期
    private String chargeType;//费别1自费 2医保
    private String chargeTypeName;//费别1自费 2医保
    private String fromSource;//来源1院内读卡,2院内扫描码
    private String fromSourceName;//来源1院内读卡,2院内扫描码
    private String systolicPressure;//收缩压
    private String diastolicPressure;//舒张压
    private String height;//身高cm
    private String weight;//体征kg
    private Long indexId;//wlyy_patient_health_index表id
    private String doctor;//操作人
    private String doctorName;//操作人姓名
    private String province;//省
    private String provinceName;//
    private String city;//市
    private String cityName;//
    private String town;//区
    private String townName;//
    private String street;//街道
    private String streetName;//
    private String address;//详情地址
    @Column(name = "patient")
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    @Column(name = "card_no")
    public String getCardNo() {
        return cardNo;
    }
    public void setCardNo(String cardNo) {
        this.cardNo = cardNo;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "mobile")
    public String getMobile() {
        return mobile;
    }
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
    @Column(name = "idcard")
    public String getIdcard() {
        return idcard;
    }
    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }
    @Column(name = "sex")
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    @Column(name = "age")
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    @Column(name = "birthday")
    public String getBirthday() {
        return birthday;
    }
    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }
    @Column(name = "charge_type")
    public String getChargeType() {
        return chargeType;
    }
    public void setChargeType(String chargeType) {
        this.chargeType = chargeType;
    }
    @Column(name = "from_source")
    public String getFromSource() {
        return fromSource;
    }
    public void setFromSource(String fromSource) {
        this.fromSource = fromSource;
    }
    @Column(name = "systolic_pressure")
    public String getSystolicPressure() {
        return systolicPressure;
    }
    public void setSystolicPressure(String systolicPressure) {
        this.systolicPressure = systolicPressure;
    }
    @Column(name = "diastolic_pressure")
    public String getDiastolicPressure() {
        return diastolicPressure;
    }
    public void setDiastolicPressure(String diastolicPressure) {
        this.diastolicPressure = diastolicPressure;
    }
    @Column(name = "height")
    public String getHeight() {
        return height;
    }
    public void setHeight(String height) {
        this.height = height;
    }
    @Column(name = "weight")
    public String getWeight() {
        return weight;
    }
    public void setWeight(String weight) {
        this.weight = weight;
    }
    @Column(name = "index_id")
    public Long getIndexId() {
        return indexId;
    }
    public void setIndexId(Long indexId) {
        this.indexId = indexId;
    }
    @Column(name = "doctor")
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    @Column(name = "doctor_name")
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    @Column(name = "province")
    public String getProvince() {
        return province;
    }
    public void setProvince(String province) {
        this.province = province;
    }
    @Column(name = "province_name")
    public String getProvinceName() {
        return provinceName;
    }
    public void setProvinceName(String provinceName) {
        this.provinceName = provinceName;
    }
    @Column(name = "city")
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    @Column(name = "city_name")
    public String getCityName() {
        return cityName;
    }
    public void setCityName(String cityName) {
        this.cityName = cityName;
    }
    @Column(name = "town")
    public String getTown() {
        return town;
    }
    public void setTown(String town) {
        this.town = town;
    }
    @Column(name = "town_name")
    public String getTownName() {
        return townName;
    }
    public void setTownName(String townName) {
        this.townName = townName;
    }
    @Column(name = "street")
    public String getStreet() {
        return street;
    }
    public void setStreet(String street) {
        this.street = street;
    }
    @Column(name = "street_name")
    public String getStreetName() {
        return streetName;
    }
    public void setStreetName(String streetName) {
        this.streetName = streetName;
    }
    @Column(name = "address")
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    @Column(name = "idcard_type")
    public String getIdcardType() {
        return idcardType;
    }
    public void setIdcardType(String idcardType) {
        this.idcardType = idcardType;
    }
    @Column(name = "charge_type_name")
    public String getChargeTypeName() {
        return chargeTypeName;
    }
    public void setChargeTypeName(String chargeTypeName) {
        this.chargeTypeName = chargeTypeName;
    }
    @Column(name = "from_source_name")
    public String getFromSourceName() {
        return fromSourceName;
    }
    public void setFromSourceName(String fromSourceName) {
        this.fromSourceName = fromSourceName;
    }
}

+ 23 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/archives/PreDiagnosisInfoEndpoint.java

@ -0,0 +1,23 @@
package com.yihu.jw.hospital.endpoint.archives;
import com.yihu.jw.patient.service.PatientPreDiagnosisInfoService;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * Created by yeshijie on 2024/12/20.
 */
@RestController
@RequestMapping(value = "preDiagnosisInfo")
@Api(value = "患者诊前信息",  tags = {"患者诊前信息"})
public class PreDiagnosisInfoEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private PatientPreDiagnosisInfoService patientPreDiagnosisInfoService;
}