瀏覽代碼

眼科家人关系修改

wangjun 4 年之前
父節點
當前提交
6da0acef02

+ 3 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/family/dao/BasePatientMemberDictDao.java

@ -12,4 +12,7 @@ import java.util.List;
public interface BasePatientMemberDictDao extends PagingAndSortingRepository<BasePatientMemberDictDO, String>, JpaSpecificationExecutor<BasePatientMemberDictDO> {
    @Query("from BasePatientMemberDictDO t where t.isDel = 1")
    List<BasePatientMemberDictDO> findDictAll();
    @Query("from BasePatientMemberDictDO t where t.relationName = ?1 and t.isDel = 1")
    BasePatientMemberDictDO findByRelationName(String illness);
}

+ 2 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/family/dao/WlyyPatientFamilyMemberDao.java

@ -14,4 +14,6 @@ public interface WlyyPatientFamilyMemberDao extends PagingAndSortingRepository<W
    List<WlyyPatientFamilyMemberDO> findByPatientAndFamilyRelation(String patient,String familyRelation);
    @Query("from WlyyPatientFamilyMemberDO t where t.id=?1  and t.isDel = 1")
    WlyyPatientFamilyMemberDO findByIdAndDel(String id);
    @Query("from WlyyPatientFamilyMemberDO t where t.cardNo=?1 and t.patient=?2  and t.isDel =1")
    WlyyPatientFamilyMemberDO findbyCardNoAndPatient(String idCard,String patient);
}

+ 212 - 20
business/base-service/src/main/java/com/yihu/jw/hospital/family/service/WlyyFamilyMemberService.java

@ -11,14 +11,17 @@ import com.yihu.jw.hospital.family.dao.WlyyPatientFamilyMemberDao;
import com.yihu.jw.hospital.mapping.dao.PatientMappingDao;
import com.yihu.jw.hospital.prescription.service.entrance.EntranceService;
import com.yihu.jw.hospital.prescription.service.entrance.YkyyEntranceService;
import com.yihu.jw.hospital.ykyy.service.YkyyService;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.patient.dao.BasePatientMedicareCardDao;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import net.sf.json.JSON;
import net.sf.json.JSONArray;
import org.apache.commons.lang.StringUtils;
import org.checkerframework.checker.units.qual.A;
@ -50,6 +53,8 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
    private YkyyEntranceService ykyyEntranceService;
    @Autowired
    private BasePatientMedicareCardDao basePatientMedicareCardDao;
    @Autowired
    private YkyyService ykyyService;
    @Value("${wechat.id}")
    private String wxId;
@ -79,11 +84,12 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
        }
        String familyId="";
        String birth = "";
        String yktFamilyId = "";
        int sex=3;
        //获取his家属数据
        JSONArray jsonArray = new JSONArray();
        if("xm_ykyy_wx".equalsIgnoreCase(wxId)){
            jsonArray = ykyyEntranceService.findHisPatientBymMedicare(medicare,false);
            jsonArray = ykyyEntranceService.findHisPatientBymMedicare(medicare,"",false);
            if(jsonArray!=null&&jsonArray.size()>0){
                net.sf.json.JSONObject jsonObject= net.sf.json.JSONObject.fromObject(jsonArray.get(0).toString());
                if (null!=jsonObject.get("brid")){
@ -98,6 +104,56 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
                    long lt = new Long(birth);
                    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
                    birth = sf.format(lt);
                    String familySex = IdCardUtil.getSexForIdcard(idCard);
                    String familyAge = String.valueOf(IdCardUtil.getAgeForIdcard(idCard));
                    BasePatientMemberDictDO basePatientMemberDictDO1 = basePatientMemberDictDao.findOne(dictId);
                    String relationName = "";
                    if (null!=basePatientMemberDictDO1){
                        relationName=basePatientMemberDictDO1.getRelationName();
                    }
                    BasePatientDO basePatientDO1  = basePatientDao.findById(patientId);
                    String res = "";
                    //id不为空则为修改家人关系
                    if (StringUtils.isNotBlank(id)){
                        if (null!=basePatientDO1){
                            res = ykyyService.updateYktFamily(familyName,idCard, familySex,familyAge,phoneNum,medicare,relationName,"1",id,birth);
                        }
                        if (StringUtils.isNotEmpty(res)){
                            JSONObject jsonObject1 = JSONObject.parseObject(res);
                            if ("200".equalsIgnoreCase(jsonObject1.getString("code"))){
                                /*JSONObject jsonObject2 = JSONObject.parseObject(jsonObject1.getString("data"));
                                yktFamilyId = jsonObject2.getString("ID");*/
                            }else {
                                mixEnvelop.setStatus(408);
                                mixEnvelop.setMessage("更新家人关系至眼科通失败");
                                return mixEnvelop;
                            }
                        }else {
                            mixEnvelop.setStatus(408);
                            mixEnvelop.setMessage("更新家人关系至眼科通失败");
                            return mixEnvelop;
                        }
                    }else {
                        if (null!=basePatientDO1){
                            res = ykyyService.addYktFamily(familyName,idCard, familySex,familyAge,phoneNum,medicare,relationName,"1",basePatientDO1.getUserId(),birth);
                        }
                        if (StringUtils.isNotEmpty(res)){
                            JSONObject jsonObject1 = JSONObject.parseObject(res);
                            if ("200".equalsIgnoreCase(jsonObject1.getString("code"))){
                                JSONObject jsonObject2 = JSONObject.parseObject(jsonObject1.getString("data"));
                                yktFamilyId = jsonObject2.getString("ID");
                            }else {
                                mixEnvelop.setStatus(408);
                                mixEnvelop.setMessage("添加家人关系至眼科通失败");
                                return mixEnvelop;
                            }
                        }else {
                            mixEnvelop.setStatus(408);
                            mixEnvelop.setMessage("添加家人关系至眼科通失败");
                            return mixEnvelop;
                        }
                    }
                    System.out.println("眼科转换后的csny"+birth);
                }else {
                    mixEnvelop.setStatus(408);
@ -149,6 +205,7 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
        basePatientDO.setBirthday(saveBirth1);
        result.setFamilyRelation(dictId);
        result.setFamilyRelationName(dictName);
        result.setYktFamilyId(yktFamilyId);
        result.setIsDel(1);
        result.setPatient(patientId);
        result.setCardNo(idCard);
@ -215,28 +272,144 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
        return mixEnvelop;
    }
    //眼科同步家人信息
    public void saveYktFamily(String patientId) throws Exception{
        try {
            String userId="";
            BasePatientDO basePatientDO = basePatientDao.findById(patientId);
            if (null!=basePatientDO){
                userId = basePatientDO.getUserId();
            }
            List<Map<String, String>> list=new ArrayList<Map<String, String>>();
            String res  = ykyyService.findYktFamily(userId);
            if (StringUtils.isNotEmpty(res)){
                JSONObject jsonObject = JSONObject.parseObject(res);
                if ("200".equalsIgnoreCase(jsonObject.getString("code"))){
                    JSONObject data = JSONObject.parseObject(jsonObject.getString("data"));
                    JSONArray jsonArray = JSONArray.fromObject(data.get("list"));
                    if(jsonArray!=null && jsonArray.size()>0) {
                        for (int i = 0; i < jsonArray.size(); i++) {
                            JSONObject jsonObject1 = JSONObject.parseObject(jsonArray.get(i).toString());
                            System.out.println("==="+jsonArray.get(i).toString());
                            if (StringUtils.isNotEmpty(jsonObject1.getString("IDCARD"))){
                                BasePatientDO patientDO = basePatientDao.findByIdcardAndDel(jsonObject1.getString("IDCARD"),"1");
                                if (null==patientDO){
                                    patientDO = new BasePatientDO();
                                }
                                patientDO.setMobile(jsonObject1.getString("TEL"));
                                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
                                if(null!=jsonObject1.get("BIRTHDAY")){
                                    patientDO.setBirthday(simpleDateFormat.parse(jsonObject1.getString("BIRTHDAY")));
                                }
                                patientDO.setSex(jsonObject1.getInteger("SEX"));
                                patientDO.setDel("1");
                                patientDO.setEnabled(1);
                                patientDO.setLocked(0);
                                patientDO.setCreateTime(new Date());
                                patientDO = basePatientDao.save(patientDO);
                                //取his中的病人code
                                JSONArray hisArray = ykyyEntranceService.findHisPatientBymMedicare(null,patientDO.getIdcard(),false);
                                if(jsonArray!=null&&jsonArray.size()>0) {
                                    net.sf.json.JSONObject hisObject = net.sf.json.JSONObject.fromObject(hisArray.get(0).toString());
                                    PatientMappingDO patientMappingDO = patientMappingDao.findByIdcard(patientDO.getIdcard());
                                    if(null==patientMappingDO){
                                        patientMappingDO= new PatientMappingDO();
                                    }
                                    patientMappingDO.setPatientName(jsonObject1.getString("NAME"));
                                    patientMappingDO.setPatient(patientDO.getId());
                                    patientMappingDO.setMappingCode(hisObject.getString("brid"));
                                    patientMappingDO.setSource("1");
                                    patientMappingDO.setCreateTime(new Date());
                                    patientMappingDO.setIdcard(patientDO.getIdcard());
                                    patientMappingDao.save(patientMappingDO);
                                }
                                WlyyPatientFamilyMemberDO wlyyPatientFamilyMemberDO = wlyyPatientFamilyMemberDao.findbyCardNoAndPatient(patientDO.getIdcard(),patientId);
                                if (null==wlyyPatientFamilyMemberDO){
                                    wlyyPatientFamilyMemberDO = new WlyyPatientFamilyMemberDO();
                                }
                                BasePatientMemberDictDO basePatientMemberDictDO =basePatientMemberDictDao.findByRelationName(jsonObject1.getString("ILLNESS"));
                                if (null!=basePatientMemberDictDO){
                                    wlyyPatientFamilyMemberDO.setIsDel(1);
                                    wlyyPatientFamilyMemberDO.setPatient(patientId);
                                    wlyyPatientFamilyMemberDO.setFamilyMember(patientDO.getId());
                                    wlyyPatientFamilyMemberDO.setFamilyRelation(basePatientMemberDictDO.getId());
                                    wlyyPatientFamilyMemberDO.setFamilyRelationName(basePatientMemberDictDO.getRelationName());
                                    wlyyPatientFamilyMemberDO.setCardNo(jsonObject1.getString("IDCARD"));
                                    wlyyPatientFamilyMemberDO.setYktFamilyId(jsonObject1.getString("ID"));
                                    wlyyPatientFamilyMemberDao.save(wlyyPatientFamilyMemberDO);
                                }
                                if(null!=jsonObject1.get("MEDICALCARD")){
                                    PatientMedicareCardDO patientMedicareCardDO = basePatientMedicareCardDao.findByCode(jsonObject1.getString("MEDICALCARD"));
                                    if (null==patientMedicareCardDO){
                                        patientMedicareCardDO = new PatientMedicareCardDO();
                                    }
                                    patientMedicareCardDO.setCode(jsonObject1.getString("MEDICALCARD"));
                                    //patientMedicareCardDO.setType(medicareType);
                                    patientMedicareCardDO.setPatientCode(patientDO.getId());
                                    patientMedicareCardDO.setDel("1");
                                    basePatientMedicareCardDao.save(patientMedicareCardDO);
                                }
                            }
                        }
                    }
                }
            }
        } catch (ParseException e) {
            e.printStackTrace();
            System.out.println("同步家人关系失败");
        }
    }
    //根据患者id查询关联家属
    public List<Map<String,Object>> findFamilyByPatientId(String patientId) throws ParseException {
        String sql = "select t.id as \"id\",t.card_type as \"cardType\", " +
                "t.patient as \"patient\",b.name as \"name\",b.sex as \"sex\","+
                "b.birthday as\"birthday\",b.idcard as \"idcard\"," +
                "t.family_member as \"familyMember\",c.relation_name as \"relationName\" "+
                " from wlyy_patient_family_member t left join base_patient b" +
                " on t.family_member = b.id left join base_patient_member_dict c on t.family_relation=c.id where 1=1";
        if (StringUtils.isNotBlank(patientId)){
            sql += " and t.patient = '"+patientId+"'";
        }
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql);
        if (list!=null&&list.size()>0){
            for (Map<String,Object> map:list){
                if (map.get("birthday")!=null){
                    SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd");
                    int age = getAgeByBirth(sp.parse(map.get("birthday").toString()));
                    map.put("age",age);
        if("xm_ykyy_wx".equalsIgnoreCase(wxId)){
            try {
                saveYktFamily(patientId);
            }catch (Exception e){
                e.printStackTrace();
            }
            String sql = "select t.id as \"id\",t.card_type as \"cardType\", " +
                    "t.patient as \"patient\",b.name as \"name\",b.sex as \"sex\","+
                    "b.birthday as\"birthday\",b.idcard as \"idcard\"," +
                    "t.family_member as \"familyMember\",c.relation_name as \"relationName\" "+
                    " from wlyy_patient_family_member t left join base_patient b" +
                    " on t.family_member = b.id left join base_patient_member_dict c on t.family_relation=c.id where 1=1 and t.is_del=1";
            if (StringUtils.isNotBlank(patientId)){
                sql += " and t.patient = '"+patientId+"'";
            }
            List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql);
            if (list!=null&&list.size()>0){
                for (Map<String,Object> map:list){
                    if (map.get("birthday")!=null){
                        SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd");
                        int age = getAgeByBirth(sp.parse(map.get("birthday").toString()));
                        map.put("age",age);
                    }
                }
            }
            return list;
        }else {
            String sql = "select t.id as \"id\",t.card_type as \"cardType\", " +
                    "t.patient as \"patient\",b.name as \"name\",b.sex as \"sex\","+
                    "b.birthday as\"birthday\",b.idcard as \"idcard\"," +
                    "t.family_member as \"familyMember\",c.relation_name as \"relationName\" "+
                    " from wlyy_patient_family_member t left join base_patient b" +
                    " on t.family_member = b.id left join base_patient_member_dict c on t.family_relation=c.id where 1=1 and t.is_del=1 ";
            if (StringUtils.isNotBlank(patientId)){
                sql += " and t.patient = '"+patientId+"'";
            }
            List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql);
            if (list!=null&&list.size()>0){
                for (Map<String,Object> map:list){
                    if (map.get("birthday")!=null){
                        SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd");
                        int age = getAgeByBirth(sp.parse(map.get("birthday").toString()));
                        map.put("age",age);
                    }
                }
            }
            return list;
        }
        return list;
    }
    private static int getAgeByBirth(Date birthday) {
        int age = 0;
@ -265,7 +438,26 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
        Envelop envelop = new Envelop();
        WlyyPatientFamilyMemberDO wlyyPatientFamilyMemberDO = wlyyPatientFamilyMemberDao.findOne(id);
        if (wlyyPatientFamilyMemberDO!=null){
            wlyyPatientFamilyMemberDao.delete(id);
            wlyyPatientFamilyMemberDO.setIsDel(0);
            if ("xm_ykyy_wx".equalsIgnoreCase(wxId)){
                //删除眼科通的家人关系
                String res = ykyyService.deleteYktFamily(wlyyPatientFamilyMemberDO.getYktFamilyId());
                if (StringUtils.isNotEmpty(res)){
                    JSONObject jsonObject = JSONObject.parseObject(res);
                    if ("200".equalsIgnoreCase(jsonObject.getString("code"))){
                        envelop.setMessage("删除成功");
                    }else {
                        envelop.setMessage("删除失败");
                        envelop.setStatus(-1);
                        return envelop;
                    }
                }else {
                    envelop.setMessage("删除失败");
                    envelop.setStatus(-1);
                    return envelop;
                }
            }
            wlyyPatientFamilyMemberDao.save(wlyyPatientFamilyMemberDO);
            envelop.setMessage("删除成功");
            return envelop;
        }else {
@ -282,7 +474,7 @@ public class WlyyFamilyMemberService extends BaseJpaService<WlyyPatientFamilyMem
                "c.relation_name \"relationName\",b.birthday as\"birthday\",b.sex as\"sex\"" +
                " from wlyy_patient_family_member t left join base_patient b" +
                " on t.family_member = b.id left join base_patient_member_dict c on t.family_relation=c.id " +
                " where 1=1";
                " where 1=1 and t.is_del = 1 ";
        if (StringUtils.isNotBlank(id)){
            sql+=" and t.id='"+id+"'";
        }

+ 8 - 3
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/YkyyEntranceService.java

@ -1555,7 +1555,7 @@ public class YkyyEntranceService {
     * @return
     * @throws Exception
     */
    public net.sf.json.JSONArray findHisPatientBymMedicare(String medicare,boolean demoFlag) throws Exception {
    public net.sf.json.JSONArray findHisPatientBymMedicare(String medicare,String idCard,boolean demoFlag) throws Exception {
        String sql = "SELECT\n" +
                "\tx.brid AS \"brid\",\n" +
                "\tx.mzhm AS \"mzhm\",\n" +
@ -1572,8 +1572,13 @@ public class YkyyEntranceService {
                "\tx.lxdz AS \"lxdz\"\n" +
                "FROM\n" +
                "\tV_ZKSG_BRCX x\n" +
                "WHERE\n" +
                "\tx.jzkh = '"+medicare+"' ";
                "WHERE 1=1" ;
        if (StringUtils.isNotBlank(medicare)){
            sql+=" and x.jzkh = '"+medicare+"' ";
        }
        if (StringUtils.isNotBlank(idCard)){
            sql+=" and x.sfzh = '"+idCard+"' ";
        }
        net.sf.json.JSONArray array = new net.sf.json.JSONArray();
        Map<String,Object> params = new HashedMap();
        params.put("sql",sql);

+ 62 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/ykyy/service/YkyyService.java

@ -677,6 +677,68 @@ public class YkyyService {
        logger.info("医生端登陆:"+response);
        return response;
    }
    /*
     *查询眼科通家人关系
     */
    public String findYktFamily(String yktUserId){
        String response="";
        String url="http://www.yanketong.com:133/api/doc_jkzl/get_family_list?";
        url+="user_id="+yktUserId;
        logger.info("查询眼科通家人关系="+url);
        response = httpClientUtil.get(url,"UTF-8");
        logger.info("查询眼科通家人关系结果"+response);
        return response;
    }
    /*
     *删除家人关系
     */
        public String deleteYktFamily(String yktFamilyId){
        String response="";
        String url="http://www.yanketong.com:133/api/patient/delete_family?";
        url+="id="+yktFamilyId;
        logger.info("删除眼科通家人关系="+url);
        response = httpClientUtil.get(url,"UTF-8");
        logger.info("删除眼科通家人关系结果"+response);
        return response;
    }
    //添加家人关系
    public String addYktFamily(String name,String id_card,String sex,String age,String tel,String medical_card,String illness,String clinic_id,String ass_user_id,String birth){
        String response="";
        String url="http://www.yanketong.com:133/api/doc_jkzl/add_family?";
        url+="name="+name;
        url+="id_card="+id_card;
        url+="sex="+sex;
        url+="age="+age;
        url+="tel="+tel;
        url+="medical_card="+medical_card;
        url+="illness="+illness;
        url+="clinic_id="+clinic_id;
        url+="ass_user_id="+ass_user_id;
        url+="birth="+birth;
        logger.info("添加眼科通家人关系="+url);
        response = httpClientUtil.get(url,"UTF-8");
        logger.info("添加眼科通家人关系结果"+response);
        return response;
    }
    //修改家人关系
    public String updateYktFamily(String name,String id_card,String sex,String age,String tel,String medical_card,String illness,String clinic_id,String id,String birth){
        String response="";
        String url="http://www.yanketong.com:133/api/patient/update_family?";
        url+="name="+name;
        url+="id_card="+id_card;
        url+="sex="+sex;
        url+="age="+age;
        url+="tel="+tel;
        url+="medical_card="+medical_card;
        url+="illness="+illness;
        url+="clinic_id="+clinic_id;
        url+="id="+id;
        url+="birth="+birth;
        logger.info("修改眼科通家人关系="+url);
        response = httpClientUtil.get(url,"UTF-8");
        logger.info("修改眼科通家人关系结果"+response);
        return response;
    }
}

+ 10 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/family/WlyyPatientFamilyMemberDO.java

@ -38,6 +38,16 @@ public class WlyyPatientFamilyMemberDO extends UuidIdentityEntityWithOperator {
    private String cardType;
    private String cardNo;
    private String yktFamilyId;
    public String getYktFamilyId() {
        return yktFamilyId;
    }
    public void setYktFamilyId(String yktFamilyId) {
        this.yktFamilyId = yktFamilyId;
    }
    public String getCardType() {
        return cardType;
    }

+ 1 - 1
server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java

@ -1510,7 +1510,7 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
                    JSONObject jsonObject = JSONObject.parseObject(r);
                    if (null!=jsonObject.get("code")&&"200".equalsIgnoreCase(jsonObject.get("code").toString())){
                        JSONObject jsonObject1 = JSONObject.parseObject(jsonObject.get("data").toString());
                        basePatientDO.setYktId(jsonObject1.getString("ID"));
                        basePatientDO.setUserId(jsonObject1.getString("ID"));
                    }else if (null!=jsonObject.get("code")&&"199".equalsIgnoreCase(jsonObject.get("code").toString())){
                        msg = jsonObject.getString("msg");
                        ykFlag = true;

+ 1 - 1
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/hospital/WlyyFamilyMemberController.java

@ -78,7 +78,7 @@ public class WlyyFamilyMemberController extends EnvelopRestEndpoint {
        String medicare = obj.getString("medicare");
        net.sf.json.JSONArray jsonArray = new JSONArray();
        if("xm_ykyy_wx".equalsIgnoreCase(wxId)){
            jsonArray = ykyyEntranceService.findHisPatientBymMedicare(medicare,false);
            jsonArray = ykyyEntranceService.findHisPatientBymMedicare(medicare,"",false);
            if(jsonArray!=null&&jsonArray.size()>0){
                net.sf.json.JSONObject jsonObject= net.sf.json.JSONObject.fromObject(jsonArray.get(0).toString());
                if (null!=jsonObject.get("brid")){