|
@ -1,5 +1,6 @@
|
|
|
package com.yihu.wlyy.service.app.consult;
|
|
|
|
|
|
import com.yihu.wlyy.adapter.PresModeAdapter;
|
|
|
import com.yihu.wlyy.entity.consult.Consult;
|
|
|
import com.yihu.wlyy.entity.consult.ConsultTeam;
|
|
|
import com.yihu.wlyy.entity.consult.ConsultTeamDoctor;
|
|
@ -35,6 +36,7 @@ import com.yihu.wlyy.service.app.prescription.PrescriptionInfoService;
|
|
|
import com.yihu.wlyy.service.app.prescription.PrescriptionLogService;
|
|
|
import com.yihu.wlyy.service.app.talk.TalkGroupService;
|
|
|
import com.yihu.wlyy.service.third.jw.JwPrescriptionService;
|
|
|
import com.yihu.wlyy.service.third.jw.ZyDictService;
|
|
|
import com.yihu.wlyy.task.PushMsgTask;
|
|
|
import com.yihu.wlyy.util.DateUtil;
|
|
|
import com.yihu.wlyy.util.HttpClientUtil;
|
|
@ -133,6 +135,10 @@ public class ConsultTeamService extends ConsultService {
|
|
|
private JwPrescriptionService jwPrescriptionService;
|
|
|
@Autowired
|
|
|
private PrescriptionInfoService prescriptionInfoService;
|
|
|
@Autowired
|
|
|
private PresModeAdapter presModeAdapter;
|
|
|
@Autowired
|
|
|
private ZyDictService zyDictService;
|
|
|
|
|
|
Map<Integer, String> relations = new HashMap<>();
|
|
|
|
|
@ -1024,11 +1030,10 @@ public class ConsultTeamService extends ConsultService {
|
|
|
* @param reason
|
|
|
* @return
|
|
|
*/
|
|
|
public String savePrescription(Prescription prescription,String jwCode,Doctor doctor,Patient p,ConsultTeam ct,String reason) throws Exception{
|
|
|
String re = "";
|
|
|
public void savePrescription(Prescription prescription,String jwCode,Doctor doctor,Patient p,ConsultTeam ct,String reason) throws Exception{
|
|
|
//获取智业处方详细
|
|
|
// String response = jwPrescriptionService.getRecipe(jwCode,p.getSsc());
|
|
|
// JSONObject jsonObject =
|
|
|
String response = jwPrescriptionService.getRecipe(jwCode,p.getSsc());
|
|
|
com.alibaba.fastjson.JSONObject jsonObject = presModeAdapter.modelToSinglePrescription(response);
|
|
|
|
|
|
//续方主表
|
|
|
prescription.setCode(getCode());
|
|
@ -1049,51 +1054,68 @@ public class ConsultTeamService extends ConsultService {
|
|
|
prescription.setType(PrescriptionLog.PrescriptionLogType.create.getValue());
|
|
|
prescription.setStatus(PrescriptionLog.PrescriptionLogStatus.revieweding.getValue());
|
|
|
prescription.setConsult(ct.getConsult());
|
|
|
//保存智业的医生信息
|
|
|
Map<String,Object> map = zyDictService.findJwDoctorByDoctor(doctor.getCode());
|
|
|
if(map!=null){
|
|
|
prescription.setJwDoctorCode(map.get("jw_doctor").toString());
|
|
|
prescription.setJwHospital(map.get("jw_doctor_hospital").toString());
|
|
|
}
|
|
|
|
|
|
prescriptionDao.save(prescription);
|
|
|
|
|
|
//保存续方药品(处方)信息
|
|
|
PrescriptionInfo prescriptionInfo = new PrescriptionInfo();
|
|
|
prescriptionInfo.setPrescriptionCode(prescription.getCode());
|
|
|
prescriptionInfo.setCode(getCode());
|
|
|
prescriptionInfo.setDel(1);
|
|
|
prescriptionInfo.setDirection("口服");//药品用法
|
|
|
prescriptionInfo.setDrugCode("药品code");//药品code
|
|
|
prescriptionInfo.setDrugName("药品名称");//药品名称
|
|
|
prescriptionInfo.setDrugRate("每次1.25mg q.d.");//吃药频率
|
|
|
prescriptionInfo.setDrugFormat("2.5mg*80片/盒");//药品规格
|
|
|
prescriptionInfo.setNum(10);//药品数目
|
|
|
prescriptionInfo.setPrice(10);//药品单价
|
|
|
prescriptionInfo.setIsRefrigerate(0);//是否冷藏 1是 0否
|
|
|
prescriptionInfo.setJwSubCode("");//智业子处方号
|
|
|
prescriptionInfo.setDrugNumUnit("");//数量单位编码
|
|
|
prescriptionInfo.setDrugNumUnitName("");//数量单位名称
|
|
|
prescriptionInfo.setCost(1);//金额
|
|
|
prescriptionInfo.setCharge(0);//自付
|
|
|
prescriptionInfo.setBindFlag("0");//成组标志, 0.非成组,1.成组
|
|
|
prescriptionInfo.setDayCount(2);//用药天数
|
|
|
prescriptionInfo.setDrugUsage("");//用药方法编码
|
|
|
prescriptionInfo.setUsageName("");//用药方法名称
|
|
|
prescriptionInfo.setPhysicDose("");//用药剂量
|
|
|
prescriptionInfo.setPhysicDoseUnit("");//剂量单位编码
|
|
|
prescriptionInfo.setPhysicDoseUnitName("");//剂量单位名称
|
|
|
prescriptionInfo.setPhysicAmount("");//用药总量
|
|
|
prescriptionInfo.setPhysicAmountUnit("");//总量单位编码
|
|
|
prescriptionInfo.setPhysicAmountUnitName("");//总量单位名称
|
|
|
prescriptionInfo.setPhysicInjectPlace("");//注射地点编码
|
|
|
prescriptionInfo.setPhysicInjectPlaceName("");//注射地点名称
|
|
|
prescriptionInfo.setPhysicSkinTest("");//注射地点名称
|
|
|
prescriptionInfo.setPhysicSkinTestName("");//皮试类型名称
|
|
|
prescriptionInfo.setRemark("");//备注
|
|
|
prescriptionInfoDao.save(prescriptionInfo);
|
|
|
com.alibaba.fastjson.JSONArray infos = jsonObject.getJSONArray("prescriptionInfo");
|
|
|
for(int i=0;i<infos.size();i++){
|
|
|
com.alibaba.fastjson.JSONObject info = infos.getJSONObject(i);
|
|
|
PrescriptionInfo prescriptionInfo = new PrescriptionInfo();
|
|
|
prescriptionInfo.setPrescriptionCode(prescription.getCode());
|
|
|
prescriptionInfo.setCode(getCode());
|
|
|
prescriptionInfo.setDel(1);
|
|
|
prescriptionInfo.setDirection(info.getString("USAGE_NAME"));//药品用法
|
|
|
prescriptionInfo.setDrugCode(info.getString("drugCode"));//药品code
|
|
|
prescriptionInfo.setDrugName(info.getString("drugName"));//药品名称
|
|
|
prescriptionInfo.setDrugRate(info.getString("drugRate"));//吃药频率
|
|
|
prescriptionInfo.setDrugFormat(info.getString("drugFormat"));//药品规格
|
|
|
prescriptionInfo.setNum(doubleToInt(info.getDouble("num")));//药品数目
|
|
|
prescriptionInfo.setPrice(doubleToInt(info.getDouble("price")));//药品单价
|
|
|
prescriptionInfo.setIsRefrigerate(0);//是否冷藏 1是 0否
|
|
|
prescriptionInfo.setJwSubCode("");//智业子处方号
|
|
|
prescriptionInfo.setDrugNumUnit(info.getString("drugNumUnit"));//数量单位编码
|
|
|
prescriptionInfo.setDrugNumUnitName(info.getString("drugNumUnitName"));//数量单位名称
|
|
|
prescriptionInfo.setCost(doubleToInt(info.getDouble("cost")));//金额
|
|
|
prescriptionInfo.setCharge(doubleToInt(info.getDouble("charge")));//自付
|
|
|
prescriptionInfo.setBindFlag(info.getString("bindFlag"));//成组标志, 0.非成组,1.成组
|
|
|
prescriptionInfo.setDayCount(info.getInteger("dayCount"));//用药天数
|
|
|
prescriptionInfo.setDrugUsage(info.getString("drugUsage"));//用药方法编码
|
|
|
prescriptionInfo.setUsageName(info.getString("usageName"));//用药方法名称
|
|
|
prescriptionInfo.setPhysicDose(info.getString("physicDose"));//用药剂量
|
|
|
prescriptionInfo.setPhysicDoseUnit(info.getString("physicDoseUnit"));//剂量单位编码
|
|
|
prescriptionInfo.setPhysicDoseUnitName(info.getString("physicDoseUnitName"));//剂量单位名称
|
|
|
prescriptionInfo.setPhysicAmount(info.getString("physicAmount"));//用药总量
|
|
|
prescriptionInfo.setPhysicAmountUnit(info.getString("physicAmount"));//总量单位编码
|
|
|
prescriptionInfo.setPhysicAmountUnitName(info.getString("physicAmountUnitName"));//总量单位名称
|
|
|
prescriptionInfo.setPhysicInjectPlace(info.getString("physicInjectPlace"));//注射地点编码
|
|
|
prescriptionInfo.setPhysicInjectPlaceName(info.getString("physicInjectPlaceName"));//注射地点名称
|
|
|
prescriptionInfo.setPhysicSkinTest(info.getString("physicSkinTest"));//注射地点名称
|
|
|
prescriptionInfo.setPhysicSkinTestName(info.getString("physicSkinTestName"));//皮试类型名称
|
|
|
prescriptionInfo.setRemark(info.getString("Remark"));//备注
|
|
|
prescriptionInfoDao.save(prescriptionInfo);
|
|
|
}
|
|
|
|
|
|
//保存续方疾病类型
|
|
|
PrescriptionDiagnosis diagnosis = new PrescriptionDiagnosis();
|
|
|
diagnosis.setCode("1");
|
|
|
diagnosis.setPrescriptionCode(prescription.getCode());
|
|
|
diagnosis.setCreateTime(new Date());
|
|
|
diagnosis.setName("高血压");
|
|
|
diagnosis.setUpdateTime(new Date());
|
|
|
prescriptionDiagnosisDao.save(diagnosis);
|
|
|
com.alibaba.fastjson.JSONArray jaDiagnosis = jsonObject.getJSONArray("prescriptionDt");
|
|
|
for (Iterator iterator = jaDiagnosis.iterator(); iterator.hasNext();) {
|
|
|
com.alibaba.fastjson.JSONObject json = (com.alibaba.fastjson.JSONObject) iterator.next();
|
|
|
PrescriptionDiagnosis diagnosis = new PrescriptionDiagnosis();
|
|
|
diagnosis.setCode(json.getString("code"));
|
|
|
diagnosis.setPrescriptionCode(prescription.getCode());
|
|
|
diagnosis.setCreateTime(new Date());
|
|
|
diagnosis.setName(json.getString("name"));
|
|
|
diagnosis.setHealthProblemName(json.getString("healthProblemName"));
|
|
|
diagnosis.setHealthProblem(json.getString("healthProblem"));
|
|
|
diagnosis.setUpdateTime(new Date());
|
|
|
prescriptionDiagnosisDao.save(diagnosis);
|
|
|
}
|
|
|
|
|
|
//保存审核信息
|
|
|
PrescriptionReviewed reviewed = new PrescriptionReviewed();
|
|
@ -1107,11 +1129,21 @@ public class ConsultTeamService extends ConsultService {
|
|
|
reviewed.setHospitalName(prescription.getHospitalName());
|
|
|
prescriptionReviewedDao.save(reviewed);
|
|
|
|
|
|
re +=diagnosis.getName();
|
|
|
|
|
|
//添加保存日志
|
|
|
prescriptionLogService.addLog(prescription, PrescriptionLog.PrescriptionLogType.create.getValue(),1,1);
|
|
|
|
|
|
return re;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* double*100转int
|
|
|
* @param d
|
|
|
* @return
|
|
|
*/
|
|
|
private Integer doubleToInt(Double d){
|
|
|
if(d==null){
|
|
|
return 0;
|
|
|
}
|
|
|
return new Double(d*100).intValue();
|
|
|
}
|
|
|
|
|
|
/**
|