Browse Source

Merge branch 'dev' of huangzhanpeng/wlyy_management into dev

chenweida 8 years ago
parent
commit
77cb69a9df

+ 2 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/PatientEventDao.java

@ -2,6 +2,7 @@ package com.yihu.wlyy.repository.patient;
import com.yihu.wlyy.entity.patient.PatientEvent;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
@ -9,5 +10,6 @@ import java.util.List;
public interface PatientEventDao extends PagingAndSortingRepository<PatientEvent, Long>, JpaSpecificationExecutor<PatientEvent> {
      @Query("select a from PatientEvent a where a.patient = ?1 order by a.eventDate desc")
      List<PatientEvent> findByPatient(String patient) throws Exception;
}

+ 54 - 7
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/archives/PatientEventService.java

@ -5,11 +5,16 @@ import com.yihu.wlyy.entity.patient.PatientEvent;
import com.yihu.wlyy.entity.patient.PatientEventImg;
import com.yihu.wlyy.repository.patient.PatientEventDao;
import com.yihu.wlyy.repository.patient.PatientEventImgDao;
import com.yihu.wlyy.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -59,17 +64,59 @@ public class PatientEventService {
    public void saveEventDetail(String data) throws Exception
    {
        JSONObject json = new JSONObject(data);
        PatientEvent event = new PatientEvent();
        if(!StringUtils.isEmpty(json.optString("id")))
        {
            event.setId(json.getLong("id"));
        }
        else{
            event.setCreateTime(new Date());
        }
        event.setPatient(json.optString("patient"));
        event.setEventDate(DateUtil.strToDate(json.optString("eventDate")));
        event.setEventType(json.optString("eventType"));
        event.setOrgCode(json.optString("orgCode"));
        event.setOrgName(json.optString("orgName"));
        event.setDeptCode(json.optString("deptCode"));
        event.setDeptName(json.optString("deptName"));
        event.setDianosis(json.optString("dianosis"));
        //保存就诊记录
        PatientEvent event =  new PatientEvent();
        //修改时先删除原有图片
        patientEventDao.save(event);
        if(event.getId() != null) {
            //修改时先删除原有图片
            List<PatientEventImg> imgList = patientEventImgDao.findByEventId(event.getId());
            if(imgList!=null && imgList.size()>0)
            {
                patientEventImgDao.delete(imgList);
            }
        }
        //保存就诊记录相关图片
        JSONArray array = json.getJSONArray("eventImg");
        if(array!=null && array.length()>0)
        {
            List<PatientEventImg> imgList = new ArrayList<>();
            for(int i=0;i<array.length();i++)
            {
                JSONObject item = array.getJSONObject(i);
                PatientEventImg img = new PatientEventImg();
                img.setCreateTime(new Date());
                img.setEventId(event.getId());
                // 图片类型(病历/处方/病理报告/检查报告/检验报告/其他)
                img.setImgType(item.optString("imgType"));
                // 图片标签
                img.setImgLabel(item.optString("imgLabel"));
                // 图片说明
                img.setImgContent(item.optString("imgContent"));
                // 图片路径
                img.setImgUrl(item.optString("imgUrl"));
                imgList.add(img);
            }
            patientEventImgDao.save(imgList);
        }
    }

+ 113 - 48
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/archives/PatientRecordService.java

@ -38,13 +38,30 @@ public class PatientRecordService {
    @Autowired
    private ObjectMapper  objectMapper;
    /**
     * 字符串List排序
     */
    public List<Map<String, String>> sortMapList(List<Map<String, String>> mapList, final String sort, final String order) {
        Collections.sort(mapList, new Comparator<Map<String, String>>() {
            public int compare(Map<String, String> o1, Map<String, String> o2) {
                String map1value = o1.get(sort);
                String map2value = o2.get(sort);
                if ("DESC".equals(order.toUpperCase())) {
                    return map2value.compareTo(map1value);
                } else {
                    return map1value.compareTo(map2value);
                }
            }
        });
        return mapList;
    }
    /******************************************************************************************************************/
    /**
     * 获取门/急诊记录 + 住院记录
     */
    public List<Map<String,Object>> getAllEvent(String patientCode, String type, String page, String pageSize) throws Exception
    public List<Map<String,String>> getAllEvent(String patientCode, String type, String page, String pageSize) throws Exception
    {
        List<Map<String,Object>> re = new ArrayList<>();
        List<Map<String,String>> re = new ArrayList<>();
        //获取患者
        Patient patient = patientDao.findByCode(patientCode);
@ -57,10 +74,20 @@ public class PatientRecordService {
        if(!StringUtils.isEmpty(response))
        {
            JSONArray array = new JSONArray(response);
            String max = "";
            String min = "";
            for (int i=0;i<array.length();i++) {
                JSONObject item = array.getJSONObject(i);
                Map<String,Object> map = new HashMap<>();
                if(i==0) //最大值
                {
                    max = item.optString("END_TIME");
                }
                else if(i==array.length()-1) //最小值
                {
                    min = item.optString("END_TIME");
                }
                Map<String,String> map = new HashMap<>();
                map.put("id",item.optString("EVENT"));
                map.put("patient",patientCode);
                map.put("eventDate",item.optString("END_TIME"));
@ -72,24 +99,38 @@ public class PatientRecordService {
                re.add(map);
            }
            //*******排序、过滤
        }
        else{
            //过滤***********
            for(PatientEvent item:eventList)
            {
                Map<String,String> map = new HashMap<>();
                map.put("id",item.getId().toString());
                map.put("patient",item.getPatient());
                map.put("eventDate",DateUtil.dateToStrLong(item.getEventDate()));
                map.put("eventType",item.getEventType());
                map.put("orgName",item.getOrgName());
                map.put("dianosis",item.getDianosis());
                map.put("createTime",DateUtil.dateToStrLong(item.getCreateTime()));
                map.put("dataFrom","2");   //APP数据
                re.add(map);
            }
            //排序
            re = sortMapList(re,"eventDate","DESC");
        }
        for(PatientEvent item:eventList)
        {
            Map<String,Object> map = new HashMap<>();
            map.put("id",item.getId().toString());
            map.put("patient",item.getPatient());
            map.put("eventDate",DateUtil.dateToStrLong(item.getEventDate()));
            map.put("eventType",item.getEventType());
            map.put("orgName",item.getOrgName());
            map.put("dianosis",item.getDianosis());
            map.put("createTime",DateUtil.dateToStrLong(item.getCreateTime()));
            map.put("dataFrom","2");   //APP数据
            re.add(map);
        else{
            for(PatientEvent item:eventList)
            {
                Map<String,String> map = new HashMap<>();
                map.put("id",item.getId().toString());
                map.put("patient",item.getPatient());
                map.put("eventDate",DateUtil.dateToStrLong(item.getEventDate()));
                map.put("eventType",item.getEventType());
                map.put("orgName",item.getOrgName());
                map.put("dianosis",item.getDianosis());
                map.put("createTime",DateUtil.dateToStrLong(item.getCreateTime()));
                map.put("dataFrom","2");   //APP数据
                re.add(map);
            }
        }
        return re;
@ -125,9 +166,9 @@ public class PatientRecordService {
    /**
     * 获取检查检验列表
     */
    public List<Map<String,Object>> getExamAndLabReport(String patientCode,String page,String pageSize) throws Exception
    public List<Map<String,String>> getExamAndLabReport(String patientCode,String page,String pageSize) throws Exception
    {
        List<Map<String,Object>> re = new ArrayList<>();
        List<Map<String,String>> re = new ArrayList<>();
        //获取患者
        Patient patient = patientDao.findByCode(patientCode);
@ -139,7 +180,7 @@ public class PatientRecordService {
        String sql = "select a.*,b.img_type as catalog,GROUP_CONCAT(b.img_label) as label from wlyy_patient_event a\n" +
                "left join wlyy_patient_event_img b on b.event_id=a.id and b.img_type in ('检查报告','检验报告')\n" +
                "where a.patient='"+patientCode+"'\n" +
                "group by b.img_type";
                "group by b.img_type order by a.event_date desc";
        List<Map<String,Object>> appList = jdbcTemplate.queryForList(sql);
        if(!StringUtils.isEmpty(response))
@ -148,7 +189,7 @@ public class PatientRecordService {
            for (int i=0;i<array.length();i++) {
                JSONObject item = array.getJSONObject(i);
                Map<String,Object> map = new HashMap<>();
                Map<String,String> map = new HashMap<>();
                map.put("id",item.optString("EVENT"));
                map.put("patient",patientCode);
                map.put("eventDate",item.optString("END_TIME"));
@ -170,34 +211,58 @@ public class PatientRecordService {
                re.add(map);
            }
            //*******排序、过滤
        }
        else{
        }
        for(Map<String,Object> item:appList)
        {
            Map<String,Object> map = new HashMap<>();
            map.put("id",item.get("id"));
            map.put("patient",patientCode);
            map.put("eventDate",DateUtil.dateToStrLong((Date) item.get("event_date")));
            String type = "";
            if("检验报告".equals(item.get("catalog")))
            //*******过滤
            for(Map<String,Object> item:appList)
            {
                type = "检验";
                Map<String,String> map = new HashMap<>();
                map.put("id",item.get("id").toString());
                map.put("patient",patientCode);
                map.put("eventDate",DateUtil.dateToStrLong((Date) item.get("event_date")));
                String type = "";
                if("检验报告".equals(item.get("catalog")))
                {
                    type = "检验";
                }
                else if("检查报告".equals(item.get("catalog")))
                {
                    type = "检查";
                }
                map.put("type",type);
                map.put("catalogCode","");
                map.put("serial","");
                map.put("orgName",String.valueOf(item.get("org_name")));
                map.put("label",String.valueOf(item.get("label"))); //检测项目
                map.put("dataFrom","2");//基卫数据
                re.add(map);
            }
            else if("检查报告".equals(item.get("catalog")))
            //排序
            re = sortMapList(re,"eventDate","DESC");
        }
        else{
            for(Map<String,Object> item:appList)
            {
                type = "检查";
                Map<String,String> map = new HashMap<>();
                map.put("id",String.valueOf(item.get("id")));
                map.put("patient",patientCode);
                map.put("eventDate",DateUtil.dateToStrLong((Date) item.get("event_date")));
                String type = "";
                if("检验报告".equals(item.get("catalog")))
                {
                    type = "检验";
                }
                else if("检查报告".equals(item.get("catalog")))
                {
                    type = "检查";
                }
                map.put("type",type);
                map.put("catalogCode","");
                map.put("serial","");
                map.put("orgName",String.valueOf(item.get("org_name")));
                map.put("label",String.valueOf(item.get("label"))); //检测项目
                map.put("dataFrom","2");//基卫数据
                re.add(map);
            }
            map.put("type",type);
            map.put("catalogCode","");
            map.put("serial","");
            map.put("orgName",item.get("org_name"));
            map.put("label",item.get("label")); //检测项目
            map.put("dataFrom","1");//基卫数据
            re.add(map);
        }
        return re;

+ 2 - 2
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/jw/JwSmjkService.java

@ -77,7 +77,7 @@ public class JwSmjkService {
                    if (status == 200) {
                        String data = responseObject.getString("data");
                        if (!StringUtils.isEmpty(data) && data.startsWith("error")) {
                            throw new Exception(re);
                            throw new Exception(data);
                        } else {
                            JSONObject jsonData = new JSONObject(data);
                            JSONArray jsonArray = jsonData.getJSONArray("EventList");
@ -214,7 +214,7 @@ public class JwSmjkService {
                    if (status == 200) {
                        String data = jsonObject.getString("data");
                        if (!StringUtils.isEmpty(data) && data.startsWith("error")) {
                            throw new Exception(re);
                            throw new Exception(data);
                        } else {
                            JSONObject jsonData = new JSONObject(data);
                            JSONArray jsonArray = jsonData.getJSONArray("EhrList");

+ 4 - 5
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/archives/PatientArchivesController.java

@ -43,7 +43,7 @@ public class PatientArchivesController extends BaseController {
                              @ApiParam(name="pageSize",value="每页几行",defaultValue = "10")
                              @RequestParam(value="pageSize",required = true) String pageSize) {
        try {
            List<Map<String,Object>> result = patientRecordService.getAllEvent(getUID(),type,page,pageSize);
            List<Map<String,String>> result = patientRecordService.getAllEvent(getUID(),type,page,pageSize);
            return write(200, "获取就诊记录成功!", "data", result);
        } catch (Exception e) {
@ -95,7 +95,7 @@ public class PatientArchivesController extends BaseController {
                               @ApiParam(name="pageSize",value="每页几行",defaultValue = "10")
                                   @RequestParam(value="pageSize",required = true) String pageSize) {
        try {
            String result = patientRecordService.getDrugsListPage(getUID(), page, pageSize);
            String result = patientRecordService.getDrugsListPage(getUID(), page, pageSize);     //"P20161008001"
            return write(200, "获取用药记录成功!", "data", result);
        } catch (Exception e) {
@ -113,8 +113,7 @@ public class PatientArchivesController extends BaseController {
                                    @RequestParam(value="pageSize",required = true) String pageSize)
    {
        try {
            //"443a196ef8744536a531260eb26c05d7"
            List<Map<String,Object>> result = patientRecordService.getExamAndLabReport(getUID(), page, pageSize);
            List<Map<String,String>> result = patientRecordService.getExamAndLabReport(getUID(), page, pageSize);
            return write(200, "获取检查检验报告成功!", "data", result);
        } catch (Exception e) {
@ -143,7 +142,7 @@ public class PatientArchivesController extends BaseController {
    @RequestMapping(value = "/event/save", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
    @ResponseBody
    @ApiOperation("保存就诊事件详情")
    public String saveEventDetail(@ApiParam(name="data",value="就诊事件json数据",defaultValue = "{}")
    public String saveEventDetail(@ApiParam(name="data",value="就诊事件json数据",defaultValue = "")
                                 @RequestParam(value="data",required = true) String data)
    {
        try {