Procházet zdrojové kódy

Merge branch 'dev' of yeshijie/patient-co-management into dev

yeshijie před 7 roky
rodič
revize
954318c99f

+ 10 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/doctor/team/admin/AdminTeam.java

@ -26,6 +26,7 @@ public class AdminTeam extends IdEntity {
    private String orgName;
    private String townCode;
    private String townName;
    private String mappingCode;
    public String getName() {
        return name;
@ -78,6 +79,15 @@ public class AdminTeam extends IdEntity {
        this.available = available;
    }
    @Column(name = "mapping_code")
    public String getMappingCode() {
        return mappingCode;
    }
    public void setMappingCode(String mappingCode) {
        this.mappingCode = mappingCode;
    }
    @Transient
    public String getOrgName() {
        return orgName;

+ 5 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/FamilyContractService.java

@ -35,7 +35,6 @@ import com.yihu.wlyy.util.*;
import com.yihu.wlyy.wechat.util.WeiXinAccessTokenUtils;
import com.yihu.wlyy.wechat.util.WeiXinOpenIdUtils;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.sql.Select;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
@ -344,6 +343,11 @@ public class FamilyContractService extends BaseService {
            services.put(service);
        }
        json.put("services", services);
        //是否签约上限
        int signLimit = signWebService.getSickFamilyDoctorSignLimit(doctor);
        json.put("signLimit", signLimit);
        return json;
    }

+ 48 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/SignWebService.java

@ -18,6 +18,7 @@ import com.yihu.wlyy.repository.address.TownDao;
import com.yihu.wlyy.repository.charge.ChargeDao;
import com.yihu.wlyy.repository.consult.ConsultDao;
import com.yihu.wlyy.repository.consult.ConsultTeamDao;
import com.yihu.wlyy.repository.doctor.DoctorAdminTeamMemberDao;
import com.yihu.wlyy.repository.doctor.DoctorDao;
import com.yihu.wlyy.repository.doctor.DoctorTeamDao;
import com.yihu.wlyy.repository.doctor.DoctorTeamMemberDao;
@ -30,6 +31,7 @@ import com.yihu.wlyy.service.common.SMSService;
import com.yihu.wlyy.service.common.account.DoctorService;
import com.yihu.wlyy.service.common.account.PatientService;
import com.yihu.wlyy.service.system.SystemDictService;
import com.yihu.wlyy.service.third.jw.JwSignService;
import com.yihu.wlyy.task.PushMsgTask;
import com.yihu.wlyy.util.DateUtil;
import com.yihu.wlyy.wechat.util.WeiXinAccessTokenUtils;
@ -37,6 +39,8 @@ import com.yihu.wlyy.wechat.util.WeiXinOpenIdUtils;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
@ -55,6 +59,7 @@ import java.util.*;
@Component
@Transactional
public class SignWebService extends BaseService {
    private static Logger logger = LoggerFactory.getLogger(SignWebService.class);
    @Autowired
    private SignWebDao signWebDao;
@ -98,7 +103,10 @@ public class SignWebService extends BaseService {
    private SignFamilyServerDao signFamilyServerDao;
    @Autowired
    private ChargeDao chargeDao;
    @Autowired
    private JwSignService jwSignService;
    @Autowired
    private DoctorAdminTeamMemberDao doctorAdminTeamMemberDao;
    @Autowired
    private TownDao townDao;
    @Autowired
@ -2606,4 +2614,43 @@ public class SignWebService extends BaseService {
        json.put("signFamilyServer",ja);
        return json;
    }
    /**
     * 判断医生所属行政团队是否已达上限
     * @param doctorCode
     * @return
     */
    public Integer getSickFamilyDoctorSignLimit(String doctorCode){
        Integer re = 0;//0未达上线 1 已达上限
        List<AdminTeam> adminTeams = doctorAdminTeamMemberDao.findDoctorTeams(doctorCode);
        int limitNum = 0;
        for(AdminTeam one:adminTeams){
            //获取团队签约数
            Integer signCount = signFamilyDao.findByAdminTeamIdAndStatus(one.getId(),0);
            //获取智业团队签约上线
            String jwCode = one.getMappingCode();//智业服务团队的code
            try{
                String response = jwSignService.getSickFamilyDoctorSignLimit(jwCode);
                com.alibaba.fastjson.JSONObject json = com.alibaba.fastjson.JSONObject.parseObject(response);
                if(json.getInteger("status")==200){
                    com.alibaba.fastjson.JSONObject data = json.getJSONObject("data");
                    if("1".equals(data.getString("CODE"))){
                        int sign_limit_number = data.getJSONArray("DATA").getJSONObject(0).getInteger("SIGN_LIMIT_NUMBER");//签约上线
                        if(signCount>=sign_limit_number){
                            limitNum++;
                        }
                    }
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        if(adminTeams.size()==limitNum){
            re = 1;
        }
        return re;
    }
}

+ 43 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/team/AdminTeamService.java

@ -16,6 +16,7 @@ import com.yihu.wlyy.repository.organization.HospitalDao;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.repository.patient.SignFamilyRenewDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.service.third.jw.JwSignService;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.json.JSONArray;
@ -47,7 +48,8 @@ public class AdminTeamService extends BaseService {
    @Autowired
    DoctorAdminTeamMemberDao memberDao;
    @Autowired
    private JwSignService jwSignService;
    @Autowired
    DoctorTeamMemberDao signingTeamMemberDao;
@ -235,6 +237,46 @@ public class AdminTeamService extends BaseService {
        return memberDao.findDoctorTeams(doctorCode);
    }
    /**
     * 获取行政团队
     * @param doctorCode
     * @return
     */
    public com.alibaba.fastjson.JSONArray getAdminTeams(String doctorCode){
        List<AdminTeam> adminTeams = memberDao.findDoctorTeams(doctorCode);
        com.alibaba.fastjson.JSONArray re = new com.alibaba.fastjson.JSONArray();
        for(AdminTeam one:adminTeams){
            //获取团队签约数
            Integer signCount = signFamilyDao.findByAdminTeamIdAndStatus(one.getId(),0);
            //获取智业团队签约上线
            String jwCode = one.getMappingCode();//智业服务团队的code
            int sign_limit_number = 0;
            try{
                String response = jwSignService.getSickFamilyDoctorSignLimit(jwCode);
                com.alibaba.fastjson.JSONObject json = com.alibaba.fastjson.JSONObject.parseObject(response);
                if(json.getInteger("status")==200){
                    com.alibaba.fastjson.JSONObject data = json.getJSONObject("data");
                    if("1".equals(data.getString("CODE"))){
                        sign_limit_number = data.getJSONArray("DATA").getJSONObject(0).getInteger("SIGN_LIMIT_NUMBER");//签约上线
                    }
                }
            }catch (Exception e){
                e.printStackTrace();
            }
            com.alibaba.fastjson.JSONObject json = new com.alibaba.fastjson.JSONObject();
            json.put("id",one.getId());
            json.put("name",one.getName());
            json.put("createTime",one.getCreateTime());
            json.put("leaderCode",one.getLeaderCode());
            json.put("available",one.isAvailable());
            json.put("orgCode",one.getOrgCode());
            json.put("signCount",signCount);
            json.put("signLimitNumber",sign_limit_number);
            re.add(json);
        }
        return re;
    }
    /**
     * 添加成员。
     *

+ 43 - 39
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/jw/JwPrescriptionService.java

@ -164,45 +164,7 @@ public class JwPrescriptionService {
                            pre.put("hospital",recipe.getString("HEALTH_ORG_CODE"));
                        }
//                        pre.put("diagnoseCode",recipe.getString("DIAGNOSE_CODE"));//诊断代码
//                        pre.put("diagnoseName",recipe.getString("DIAGNOSE_NAME"));//诊断名称
//                        pre.put("diagnoseSubCode",recipe.getString("DIAGNOSE_SUB_CODE"));//次诊断编码
//                        pre.put("diagnoseSubName",recipe.getString("DIAGNOSE_SUB_NAME"));//次诊断名称
                        PrescriptionDiagnosis diagnosis = new PrescriptionDiagnosis();
                        String diagnoseCode = recipe.getString("DIAGNOSE_CODE");
                        String diagnoseName = recipe.getString("DIAGNOSE_NAME");
                        diagnosis.setCode(diagnoseCode);//诊断代码
                        diagnosis.setName(diagnoseName);//诊断名称
                        String icd10 = icd10DictServcie.getHealthProblemsByIcd10Code(diagnoseCode);
                        if(!StringUtils.isEmpty(icd10)){
                            JSONObject icd = JSONObject.parseObject(icd10);
                            diagnosis.setHealthProblemName(icd.getString("value"));//诊断名称
                            diagnosis.setHealthProblem(icd.getString("key"));//诊断代码
                        }else{
                            diagnosis.setHealthProblemName(diagnoseName);//诊断名称
                            diagnosis.setHealthProblem(diagnoseCode);//诊断代码
                        }
                        JSONArray jsonArrayDt = new JSONArray();
                        jsonArrayDt.add(diagnosis);
                        if(recipe.getString("DIAGNOSE_SUB_CODE")!=null){
                            diagnosis = new PrescriptionDiagnosis();
                            diagnoseCode = recipe.getString("DIAGNOSE_CODE");
                            diagnoseName = recipe.getString("DIAGNOSE_NAME");
                            diagnosis.setCode(diagnoseCode);//诊断代码
                            diagnosis.setName(diagnoseName);//诊断名称
                            icd10 = icd10DictServcie.getHealthProblemsByIcd10Code(diagnoseCode);
                            if(!StringUtils.isEmpty(icd10)){
                                JSONObject icd = JSONObject.parseObject(icd10);
                                diagnosis.setHealthProblemName(icd.getString("value"));//诊断名称
                                diagnosis.setHealthProblem(icd.getString("key"));//诊断代码
                            }else{
                                diagnosis.setHealthProblemName(diagnoseName);//诊断名称
                                diagnosis.setHealthProblem(diagnoseCode);//诊断代码
                            }
                            jsonArrayDt.add(diagnosis);
                        }
                        pre.put("prescriptionDt",jsonArrayDt);
                        pre.put("prescriptionDt",getDiagnosis(recipe));
                        jsonArray.add(pre);
                    }
                }
@ -215,6 +177,48 @@ public class JwPrescriptionService {
        return re;
    }
    /**
     * 诊断类型转换
     * @param recipe
     * @return
     */
    private JSONArray getDiagnosis(JSONObject recipe){
        JSONArray jsonArrayDt = new JSONArray();
        PrescriptionDiagnosis diagnosis = new PrescriptionDiagnosis();
        String diagnoseCode = recipe.getString("DIAGNOSE_CODE");//诊断代码
        String diagnoseName = recipe.getString("DIAGNOSE_NAME");//诊断名称
        diagnosis.setCode(diagnoseCode);//诊断代码
        diagnosis.setName(diagnoseName);//诊断名称
        String icd10 = icd10DictServcie.getHealthProblemsByIcd10Code(diagnoseCode);
        if(!StringUtils.isEmpty(icd10)){
            JSONObject icd = JSONObject.parseObject(icd10);
            diagnosis.setHealthProblemName(icd.getString("value"));//诊断名称
            diagnosis.setHealthProblem(icd.getString("key"));//诊断代码
        }else{
            diagnosis.setHealthProblemName(diagnoseName);//诊断名称
            diagnosis.setHealthProblem(diagnoseCode);//诊断代码
        }
        jsonArrayDt.add(diagnosis);
        if(recipe.getString("DIAGNOSE_SUB_CODE")!=null){
            diagnosis = new PrescriptionDiagnosis();
            diagnoseCode = recipe.getString("DIAGNOSE_SUB_CODE");
            diagnoseName = recipe.getString("DIAGNOSE_SUB_NAME");
            diagnosis.setCode(diagnoseCode);//次诊断代码
            diagnosis.setName(diagnoseName);//次诊断名称
            icd10 = icd10DictServcie.getHealthProblemsByIcd10Code(diagnoseCode);
            if(!StringUtils.isEmpty(icd10)){
                JSONObject icd = JSONObject.parseObject(icd10);
                diagnosis.setHealthProblemName(icd.getString("value"));//次诊断名称
                diagnosis.setHealthProblem(icd.getString("key"));//次诊断代码
            }else{
                diagnosis.setHealthProblemName(diagnoseName);//次诊断名称
                diagnosis.setHealthProblem(diagnoseCode);//次诊断代码
            }
            jsonArrayDt.add(diagnosis);
        }
        return jsonArrayDt;
    }
    /**
     * 获取单条历史处方
     * @param recipeNo

+ 14 - 11
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/jw/JwSignService.java

@ -1,25 +1,14 @@
package com.yihu.wlyy.service.third.jw;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.wlyy.entity.dict.SystemDict;
import com.yihu.wlyy.service.system.SystemDictService;
import com.yihu.wlyy.service.third.ehr.EhrService;
import com.yihu.wlyy.util.DateUtil;
import com.yihu.wlyy.util.HttpClientUtil;
import com.yihu.wlyy.util.SystemConf;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * Created by hzp on 2016/12/19.
@ -74,4 +63,18 @@ public class JwSignService {
        return HttpClientUtil.post(url, params, "UTF-8");
    }
    /**
     * 获取医生团队的签约上线
     * @param jwTeamCode
     * @return
     */
    public String getSickFamilyDoctorSignLimit(String jwTeamCode){
        String url = jwUrl + "/third/sign/getSickFamilyDoctorSignLimit";
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("jwTeamCode", jwTeamCode));
        return HttpClientUtil.post(url, params, "UTF-8");
    }
}

+ 3 - 3
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/team/AdminTeamController.java

@ -265,9 +265,9 @@ public class AdminTeamController extends BaseController {
    @ApiOperation(value = "获取医生团队列表")
    public String getDoctorTeams(@PathVariable("doctor_code") String doctorCode) {
        try {
            List<AdminTeam> teamList = teamService.getDoctorTeams(doctorCode);
            return write(200, "OK", "data", new JSONArray(teamList));
//            List<AdminTeam> teamList = teamService.getDoctorTeams(doctorCode);
//            return write(200, "OK", "data", new JSONArray(teamList));
            return write(200, "OK", "data", teamService.getAdminTeams(doctorCode));
        } catch (Exception e) {
            error(e);
            return error(-1, e.getMessage());