瀏覽代碼

新增在线开检验单接口

wangjun 4 年之前
父節點
當前提交
b495073cf0

+ 2 - 2
business/base-service/src/main/java/com/yihu/jw/hospital/message/service/BaseUserMsgService.java

@ -291,9 +291,9 @@ public class BaseUserMsgService extends BaseJpaService<BaseUserMessageDO, BaseUs
                baseUserMsgDO.setSenderName(scoreList.getType()==1?map.get("sender_name").toString():map.get("sender_name").toString().substring(0,1)+"**");
            }else {
                baseUserMsgDO.setSenderName(map.get("sender_name").toString());
                baseUserMsgDO.setSenderName(null==map.get("sender_name")?"":map.get("sender_name").toString());
            }if(null!=baseUserMsgDO.getType()&&baseUserMsgDO.getType()==2){
                baseUserMsgDO.setSenderName(map.get("sender_name").toString().substring(0,1)+"**");
                baseUserMsgDO.setSenderName(null==map.get("sender_name")?"":map.get("sender_name").toString().substring(0,1)+"**");
            }
            returnMap.put("contentList",baseUserMsgDO);
            returnMap.put("patientIcon",icon);

+ 14 - 1
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -75,6 +75,7 @@ import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.common.LatitudeUtils;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.wechat.WeixinMessagePushUtils;
import com.yihu.jw.utils.EntityUtils;
import com.yihu.jw.utils.WebserviceUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.jw.wechat.dao.BasePatientWechatDao;
@ -2135,16 +2136,28 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            if (StringUtils.isNotBlank(inspectionJson)) {
                List<WlyyInspectionDO> inspections = (List<WlyyInspectionDO>) com.alibaba.fastjson.JSONArray.parseArray(inspectionJson, WlyyInspectionDO.class);
                List<YkEmrJcsqDO> surveys = new ArrayList<>();
                for (WlyyInspectionDO ins : inspections) {
                    YkEmrJcsqDO ykEmrJcsqDO =new YkEmrJcsqDO();
                    ins.setDel(1);
                    ins.setCreateTime(new Date());
                    ins.setPrescriptionId(prescription.getId());
                    ins.setOutpatientId(outPatientId);
                    ykEmrJcsqDO.setJzhm(outPatientId);
                    ykEmrJcsqDO.setJzxh(Integer.valueOf(outpatientDO.getAdmNo()));
                    ykEmrJcsqDO.setXmid(Integer.valueOf(ins.getCode()));
                    ykEmrJcsqDO.setJcxm(ins.getName());
                    ykEmrJcsqDO.setXmdj(Integer.valueOf(ins.getChargeAmount()));
                    ykEmrJcsqDO.setSqsl(Integer.valueOf(ins.getQuantity()));
                    ykEmrJcsqDO.setJclx(Integer.valueOf(ins.getCheckPart()));
                    ykEmrJcsqDO.setXmdw(ins.getTotalUnit());
                    surveys.add(ykEmrJcsqDO);
                }
                //保存检查检验。
                wlyyInspectionDao.save(inspections);
                //同步his
                ykyyEntranceService.outPatientOrder(surveys,false,doctorMappingDO.getDoctor(),outpatientDO.getPatient());
                //计算检查检验费用
                prescription.setInspectFee(getInsFee(inspections));

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

@ -2330,8 +2330,7 @@ public class YkyyEntranceService {
        return array;
    }
    //门诊开单操作
    public String outPatientOrder(String jsonDate,Boolean demoFlag,String doctor,String patient) throws Exception{
        List<YkEmrJcsqDO> surveys = EntityUtils.jsonToList(jsonDate, YkEmrJcsqDO.class);
    public String outPatientOrder(List<YkEmrJcsqDO> surveys,Boolean demoFlag,String doctor,String patient) throws Exception{
        DoctorMappingDO doctorMappingDO = new DoctorMappingDO();
        PatientMappingDO patientMappingDO =new PatientMappingDO();
        if (StringUtils.isNotEmpty(doctor)){
@ -2349,6 +2348,7 @@ public class YkyyEntranceService {
        Integer brnl =0;
        String doctorHis="";
        Integer kdks = 0;
        Integer brid=0;
        JSONArray jsonArray = findHisPatient(patientMedicareCardDO.getCode(),demoFlag);
        if(jsonArray!=null&&jsonArray.size()>0){
            //获取居民信息
@ -2357,6 +2357,7 @@ public class YkyyEntranceService {
            brxm = json.getString("brxm");
            csny = json.getDate("csny");
            brnl = this.getBrnl(csny);
            brid=json.getInteger("brid");
        }
        //操作医生信息
        JSONArray jsonArray1 = findHisDoctor(doctorMappingDO.getIdcard());
@ -2370,7 +2371,7 @@ public class YkyyEntranceService {
        if (surveys!=null){
            for (YkEmrJcsqDO ykEmrJcsqDO:surveys){
                if (demoFlag){
                    ykEmrJcsqDO.setBrid(brid);
                    ykEmrJcsqDO.setJjbz(0);
                    ykEmrJcsqDO.setJczt(1);
                    ykEmrJcsqDO.setZfbz(0);
@ -2381,16 +2382,6 @@ public class YkyyEntranceService {
                    ykEmrJcsqDO.setKdys(doctorHis);
                    ykEmrJcsqDO.setBrks(114);
                    ykEmrJcsqDO.setTjys(doctorHis);
                }else {
                    ykEmrJcsqDO.setJjbz(0);
                    ykEmrJcsqDO.setJczt(1);
                    ykEmrJcsqDO.setZfbz(0);
                    ykEmrJcsqDO.setQxbz(0);
                    ykEmrJcsqDO.setBrxb(1);
                    ykEmrJcsqDO.setBrxm("测试病人");
                    ykEmrJcsqDO.setBrnl(18);
                    ykEmrJcsqDO.setKdys("测试医生");
                }
            }
            String jsonString = JSONObject.toJSONString(surveys);
            Map<String,Object> params = new HashedMap();
@ -2402,16 +2393,19 @@ public class YkyyEntranceService {
            logger.info("response:"+content);
            JSONObject rs = JSON.parseObject(content);
            Integer status = rs.getInteger("status");
            if (status!=null&&status == 200){
                return rs.toString();
            }else {
                return "failed";
            JSONArray array= new JSONArray();
            if (status==200){
                array = rs.getJSONArray("detailModelList");
                if(array.size()>0){
                    return "success";
                }else {
                    return "failed";
                }
            }
            return "faild";
        }else {
            return "failed";
        }
    }
   //查询检查单
   public JSONArray findOrder()throws Exception{
@ -2434,6 +2428,7 @@ public class YkyyEntranceService {
       }
       return array;
   }
   //根据病人出生年月计算病人年龄
   public Integer getBrnl(Date date){
       Calendar cal = Calendar.getInstance();
       if (cal.before(date)) {
@ -2462,4 +2457,84 @@ public class YkyyEntranceService {
       return age;
   }
    public String outPatientOrderYk(String jsonDate,Boolean demoFlag,String doctor,String patient) throws Exception{
        List<YkEmrJcsqDO> surveys = EntityUtils.jsonToList(jsonDate,YkEmrJcsqDO.class);
        DoctorMappingDO doctorMappingDO = new DoctorMappingDO();
        PatientMappingDO patientMappingDO =new PatientMappingDO();
        if (StringUtils.isNotEmpty(doctor)){
            doctorMappingDO = doctorMappingDao.findByDoctor(doctor);
        }
        if(StringUtils.isNotEmpty(patient)){
            patientMappingDO = patientMappingDao.findByPatient(patient);
        }
        BasePatientDO patientDO = basePatientDao.findById(patient);
        PatientMedicareCardDO patientMedicareCardDO = patientMedicareCardDao.findByTypeAndPatientCodeAndDel("A_01",patient,"1");
        Integer brxb = 0;
        String brxm = "";
        Date csny =null;
        Integer brnl =0;
        String doctorHis="";
        Integer kdks = 0;
        Integer brid=0;
        JSONArray jsonArray = findHisPatient(patientMedicareCardDO.getCode(),demoFlag);
        if(jsonArray!=null&&jsonArray.size()>0){
            //获取居民信息
            JSONObject json = jsonArray.getJSONObject(0);
            brxb = json.getInteger("brxb");
            brxm = json.getString("brxm");
            csny = json.getDate("csny");
            brnl = this.getBrnl(csny);
            brid=json.getInteger("brid");
        }
        //操作医生信息
        JSONArray jsonArray1 = findHisDoctor(doctorMappingDO.getIdcard());
        if(jsonArray1!=null&&jsonArray1.size()>0){
            JSONObject json = jsonArray1.getJSONObject(0);
            doctorHis=json.getString("code");
        }
        // 同一个医生同一个病人,一天一条挂号记录。
        JSONArray ja = fingHlwGhmx(patientMappingDO.getMappingCode(),doctorMappingDO.getMappingCode());
        if (surveys!=null){
            for (YkEmrJcsqDO ykEmrJcsqDO:surveys){
                ykEmrJcsqDO.setBrid(brid);
                ykEmrJcsqDO.setJjbz(0);
                ykEmrJcsqDO.setJczt(1);
                ykEmrJcsqDO.setZfbz(0);
                ykEmrJcsqDO.setQxbz(0);
                ykEmrJcsqDO.setBrxb(brxb);
                ykEmrJcsqDO.setBrxm(brxm);
                ykEmrJcsqDO.setBrnl(brnl);
                ykEmrJcsqDO.setKdys(doctorHis);
                ykEmrJcsqDO.setBrks(114);
                ykEmrJcsqDO.setTjys(doctorHis);
            }
            String jsonString = JSONObject.toJSONString(surveys);
            Map<String,Object> params = new HashedMap();
            params.put("json",jsonString);
            params.put("table","ykEmrJcsqDO");
            logger.info("ykEmrJcsqDO:"+jsonString);
            HttpResponse response = HttpUtils.doGet(orderUrl,params);
            String content = response.getContent();
            logger.info("response:"+content);
            JSONObject rs = JSON.parseObject(content);
            Integer status = rs.getInteger("status");
            JSONArray array= new JSONArray();
            if (status==200){
                array = rs.getJSONArray("detailModelList");
                if(array.size()>0){
                    return "success";
                }else {
                    return "failed";
                }
            }
            return "faild";
        }else {
            return "failed";
        }
    }
}

+ 8 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/WlyyInspectionDO.java

@ -54,7 +54,15 @@ public class WlyyInspectionDO extends UuidIdentityEntity {
    private String sfzg;//是否做过 0 否 和 1是
    private Integer del;//1可用 0删除
    private String totalUnit;//单位
    public String getTotalUnit() {
        return totalUnit;
    }
    public void setTotalUnit(String totalUnit) {
        this.totalUnit = totalUnit;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date createTime;//,

+ 2 - 2
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/YkEmrJcsqDO.java

@ -126,7 +126,7 @@ public class YkEmrJcsqDO {
    }
    @Basic
    @Column(name = "KDSJ")
    @JsonFormat(pattern = "dd-mm月-yy", timezone = "GMT+08:00")
    @JsonFormat(pattern = "dd-mm-yy", timezone = "GMT+08:00")
    public Date getKdsj() {
        return kdsj;
    }
@ -181,7 +181,7 @@ public class YkEmrJcsqDO {
    }
    @Basic
    @Column(name = "TJSJ")
    @JsonFormat(pattern = "dd-mm月-yy", timezone = "GMT+08:00")
    @JsonFormat(pattern = "dd-mm-yy", timezone = "GMT+08:00")
    public Date getTjsj() {
        return tjsj;
    }

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/YkMsYj01DO.java

@ -82,7 +82,7 @@ public class YkMsYj01DO {
    }
    @Basic
    @Column(name = "KDRQ")
    @JsonFormat(pattern = "dd-mm月-yy", timezone = "GMT+08:00")
    @JsonFormat(pattern = "dd-mm-yy", timezone = "GMT+08:00")
    public Date getKdrq() {
        return kdrq;
    }

+ 11 - 6
svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/controller/YkyyController.java

@ -242,14 +242,14 @@ public class YkyyController extends EnvelopRestEndpoint {
    }
    @GetMapping(value = "/outPatientOrder")
    @ApiOperation(value = "医生开单")
    public ObjEnvelop outPatientOrder(@ApiParam(name = "json", value = "json", required = true)
    public ListEnvelop outPatientOrder(@ApiParam(name = "json", value = "json", required = true)
                                       @RequestParam(value = "json",required = true)String json,
                                              @ApiParam(name = "table", value = "table", required = true)
                                           @RequestParam(value = "table",required = true)String table) throws  Exception{
        List<YkEmrJcsqDO> surveys = EntityUtils.jsonToList(json, YkEmrJcsqDO.class);
        System.out.println(surveys);
        long totalprice=0l;
        ObjEnvelop mixEnvelop = new ObjEnvelop();
        ListEnvelop mixEnvelop = new ListEnvelop();
        if (surveys!=null){
            for (YkEmrJcsqDO ykEmrJcsqDO:surveys){
                String sqdhSql =" select dqz + 1 as \"total\"  from portal_his.gy_identity_emr@ykzxtest where bmc = 'EMR_JCSQ'";
@ -280,6 +280,7 @@ public class YkyyController extends EnvelopRestEndpoint {
                    ykEmrJcsqDO.setYjxh(yjxh.intValue());
                }
                ykyyEntranceService.save(ykEmrJcsqDO);
                //检查主表
                YkMsYj01DO ykMsYj01DO = new YkMsYj01DO();
                ykMsYj01DO.setYjxh(yjxh.intValue());
                ykMsYj01DO.setMZXH(0);
@ -305,10 +306,11 @@ public class YkyyController extends EnvelopRestEndpoint {
                ykMsYj01DO.setLjlx(0);
                System.out.println(ykMsYj01DO);
                ykyyEntranceService.save(ykMsYj01DO);
                String sqlCxzt = "Select t.zlxmid,t.fyxh,t.fysl from VEMR_ORDER_ITEM_MX t where t.zlxmid =' "+ykEmrJcsqDO.getXmid()+"'";
                String sqlCxzt = "Select t.zlxmid as \"zlxmid\",t.fyxh as \"fyxh\",t.fysl as \"fysl\" from VEMR_ORDER_ITEM_MX t where t.zlxmid ='"+ykEmrJcsqDO.getXmid()+"'";
                List<Map<String,Object>> sbxlMap = hibenateUtils.createSQLQuery(sqlCxzt);
                if (sbxlMap.size()>0){
                    int i = 0;
                    //明细可能会有多条
                    for (Map<String,Object> map:sbxlMap){
                        String sbxhSql =" select dqz + 1 as \"total\"  from portal_his.gy_identity_emr@ykzxtest where bmc = 'MS_YJ02'";
                        List<Map<String,Object>> sbxhList = hibenateUtils.createSQLQuery(sbxhSql);
@ -328,8 +330,8 @@ public class YkyyController extends EnvelopRestEndpoint {
                        ykMsYj02DO.setYjxz(i==0?1:0);
                        i++;
                        String fyxhSql ="select t.xmlx as \"xmlx\",t.fydj as \"fydj\",t.fygb as \"fygb\"" +
                                "from portal_his.GY_YLSF@ykzxtest t " +
                                " and t.fyxh = '"+map.get("fyxh").toString()+"'";
                                " from portal_his.GY_YLSF@ykzxtest t " +
                                " where t.fyxh = '"+map.get("fyxh").toString()+"'";
                        List<Map<String,Object>> fyxhList = hibenateUtils.createSQLQuery(fyxhSql);
                        if (fyxhList.size()>0){
@ -338,13 +340,16 @@ public class YkyyController extends EnvelopRestEndpoint {
                            ykMsYj02DO.setYldj(Integer.valueOf(fyxhList.get(0).get("fydj").toString()));
                            ykMsYj02DO.setHjje(ykMsYj02DO.getYldj()*ykMsYj02DO.getYlsl());
                        }
                        ykMsYj02DO.setZfbl(1);
                        ykMsYj02DO.setZxpb(0);
                        ykMsYj02DO.setZjflag(0);
                        System.out.println(ykMsYj02DO);
                        ykyyEntranceService.save(ykMsYj02DO);
                    }
                }
            }
            mixEnvelop.setObj(totalprice);
            mixEnvelop.setDetailModelList(surveys);
        }
        return mixEnvelop;
    }

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

@ -939,7 +939,7 @@ public class DoctorConsultEndpoint extends EnvelopRestEndpoint {
								   @ApiParam(name = "patient", value = "patient")
									   @RequestParam(value = "patient", required = true)String patient)throws Exception {
		String success= ykyyEntranceService.outPatientOrder(jsondata,false,doctor,patient);
		String success= ykyyEntranceService.outPatientOrderYk(jsondata,false,doctor,patient);
		ObjEnvelop objEnvelop = new ObjEnvelop();
		objEnvelop.setObj(success);
		return objEnvelop;