|
@ -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();
|
|
|
}
|
|
|
}
|
|
|
}
|