| 
					
				 | 
			
			
				@ -0,0 +1,166 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.figure.service.drug; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.fasterxml.jackson.databind.JavaType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.fasterxml.jackson.databind.ObjectMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.figure.dao.drug.MedicineDetailDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.figure.dao.drug.MedicineRecordDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.figure.dao.patient.PatientInfoDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.figure.model.drug.MedicineDetail; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.figure.model.drug.MedicineRecord; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.figure.model.patient.PatientInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.figure.service.BaseService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.figure.util.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.figure.util.HttpUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.figure.util.MapUtill; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.json.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Component; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import javax.transaction.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Created by yeshijie on 2017/3/13. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Component 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Transactional(rollbackOn = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class MedicineRecordService extends BaseService{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private MedicineRecordDao medicineRecordDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private MedicineDetailDao medicineDetailDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private PatientInfoDao patientInfoDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    ObjectMapper objectMapper = new ObjectMapper(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取基位用药记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void getJwDrugList() throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<PatientInfo> patientInfoList = patientInfoDao.findAllPatient(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<MedicineDetail> medicineDetailList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<MedicineRecord> medicineRecordList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        MedicineDetail detail = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        MedicineRecord record = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (PatientInfo patientInfo:patientInfoList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String drugs = getJwDrugList(patientInfo.getSsc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            System.out.println(drugs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(!StringUtils.isEmpty(drugs)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JavaType javaType = objectMapper.getTypeFactory().constructParametricType(List.class, Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<Map<String,Object>> list = objectMapper.readValue(drugs,javaType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(list!=null&&list.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    for (Map<String, Object> map:list){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String XMAN_ID = MapUtill.getMapString(map,"XMAN_ID"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String EVENT = MapUtill.getMapString(map,"EVENT"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        Integer ORG_ID = MapUtill.getMapInt(map,"ORG_ID"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        Integer TYPE = MapUtill.getMapInt(map,"TYPE"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        Integer SERIAL = MapUtill.getMapInt(map,"SERIAL"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String END_TIME = MapUtill.getMapString(map,"END_TIME"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String CATALOG_CODE = MapUtill.getMapString(map,"CATALOG_CODE"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String EHR_COMMIT_TIME = MapUtill.getMapString(map,"EHR_COMMIT_TIME"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String UNIONSSID = MapUtill.getMapString(map,"UNIONSSID"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String ORG_NAME = MapUtill.getMapString(map,"ORG_NAME"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        record = new MedicineRecord(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        record.setCzrq(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        record.setCode(getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        record.setCatalogCode(CATALOG_CODE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        record.setEhrCommitTime(DateUtil.strToDate(EHR_COMMIT_TIME)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        record.setEndTime(DateUtil.strToDate(END_TIME)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        record.setEvent(EVENT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        record.setOrgId(ORG_ID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        record.setOrgName(ORG_NAME); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        record.setPatient(patientInfo.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        record.setSerial(SERIAL+""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        record.setType(TYPE+""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        record.setUnionssid(UNIONSSID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        record.setXmanId(XMAN_ID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        medicineRecordList.add(record); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(!"[]".equals(MapUtill.getMapString(map,"MEDICINE"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            List<Map<String, Object>> detailList = (List<Map<String, Object>>)map.get("MEDICINE"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if(detailList!=null&&detailList.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                for (Map<String, Object> drug:detailList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String MEDICINE_NAME = MapUtill.getMapString(drug,"MEDICINE_NAME"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String MEDICINE_CODE = MapUtill.getMapString(drug,"MEDICINE_CODE"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    if(!StringUtils.isEmpty(MEDICINE_NAME)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        detail = new MedicineDetail(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        detail.setCzrq(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        detail.setMedicineCode(MEDICINE_CODE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        detail.setMedicineName(MEDICINE_NAME); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        detail.setMedicineRecordCode(record.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        medicineDetailList.add(detail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(medicineDetailList.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            medicineDetailDao.save(medicineDetailList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(medicineRecordList.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            medicineRecordDao.save(medicineRecordList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private static String getJwDrugList(String strSSID){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String drugUrl = "http://www.xmtyw.cn/wlyy/wlyy_service/record/drug"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String params = "strSSID="+strSSID+"&startNum=1&endNum=100"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String userAgent = "\"uid\":\"5fa5e88f7a4111e69f7c005056850d66\",\"doctorType\":3,\"name\":\"丘新花\",\"photo\":\"../../../images/d-male.png\",\"id\":2807,\"hospital\":\"ac02a9b87a3611e69f7c005056850d66\",\"userRole\":[{\"code\":\"350200\",\"name\":\"厦门市卫生与计划生育委员会\",\"areas\":\"350200\"}],\"token\":\"bdbe1d142e330a0e060f70489e383e86\""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String re = HttpUtil.sendGet(drugUrl,params,userAgent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject json = new JSONObject(re); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int status = json.getInt("status"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(status==200){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return json.getString("data"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return re; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static void main(String[] args) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String ssc = "D24500557"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String drugs = getJwDrugList(ssc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ObjectMapper objectMapper = new ObjectMapper(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JavaType javaType = objectMapper.getTypeFactory().constructParametricType(List.class, Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String,Object>> list = objectMapper.readValue(drugs,javaType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(list!=null&&list.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for (Map<String, Object> map:list){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String XMAN_ID = MapUtill.getMapString(map,"XMAN_ID"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String EVENT = MapUtill.getMapString(map,"EVENT"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Integer ORG_ID = MapUtill.getMapInt(map,"ORG_ID"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Integer TYPE = MapUtill.getMapInt(map,"TYPE"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Integer SERIAL = MapUtill.getMapInt(map,"SERIAL"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String END_TIME = MapUtill.getMapString(map,"END_TIME"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String CATALOG_CODE = MapUtill.getMapString(map,"CATALOG_CODE"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String EHR_COMMIT_TIME = MapUtill.getMapString(map,"EHR_COMMIT_TIME"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String UNIONSSID = MapUtill.getMapString(map,"UNIONSSID"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String ORG_NAME = MapUtill.getMapString(map,"ORG_NAME"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(!"[]".equals(MapUtill.getMapString(map,"MEDICINE"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        List<Map<String, Object>> detailList = (List<Map<String, Object>>)map.get("MEDICINE"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(detailList!=null&&detailList.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            for (Map<String, Object> drug:detailList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                String MEDICINE_NAME = MapUtill.getMapString(map,"MEDICINE_NAME"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                String MEDICINE_CODE = MapUtill.getMapString(map,"MEDICINE_CODE"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        System.out.println(detailList.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |