|
@@ -144,7 +144,7 @@ public class RationalUseServiceImpl implements RationalUseService {
|
|
|
setTryResult(psLiust, mzChargeDetail);
|
|
|
}
|
|
|
}
|
|
|
- String detailsXml = drugInfoFunc(currentList, hisList, mzPrescriptionVo.getPatientId(), psLiust, mzPrescriptionVo.getIcdCode(), mzPrescriptionVo.getIcdText(), doctXml);
|
|
|
+ String detailsXml = drugInfoFunc(currentList, hisList, psLiust, doctXml,mzPrescriptionVo);
|
|
|
String params = String.format("{\"BaseXml\": \"%s\", \"DetailsXml\" : \"%s\"}", baseXml, detailsXml);
|
|
|
log.info(params);
|
|
|
String data = HttpUtil.httpPost(rationalUseOfMedicineUrl, params, "application/json", 4000);
|
|
@@ -226,20 +226,18 @@ public class RationalUseServiceImpl implements RationalUseService {
|
|
|
*
|
|
|
* @param currentList
|
|
|
* @param hisList
|
|
|
- * @param patientId
|
|
|
* @param psLiust
|
|
|
- * @param icdCode
|
|
|
- * @param icdText
|
|
|
* @param doctXml
|
|
|
+ * @param mzPrescriptionVo
|
|
|
* @return
|
|
|
*/
|
|
|
- private String drugInfoFunc(List<List<MzChargeDetail>> currentList, List<List<MzChargeDetail>> hisList, String patientId, List<XunHuanJieDian> psLiust, String icdCode, String icdText, String doctXml) throws MzException {
|
|
|
+ private String drugInfoFunc(List<List<MzChargeDetail>> currentList, List<List<MzChargeDetail>> hisList, List<XunHuanJieDian> psLiust, String doctXml,MzPrescriptionVo mzPrescriptionVo) throws MzException {
|
|
|
int times = 0;
|
|
|
- MzPatientMi mzPatientMi = mzPatientMiMapper.selectByPatientId(patientId);
|
|
|
+ MzPatientMi mzPatientMi = mzPatientMiMapper.selectByPatientId(mzPrescriptionVo.getPatientId());
|
|
|
if (mzPatientMi == null) {
|
|
|
throw new MzException("当前病人信息不存在,请先保存病人信息!");
|
|
|
}
|
|
|
- MzVisitTable lastMzVisitTable = mzVisitTableService.queryLastMzVisitTableByPatientId(patientId);
|
|
|
+ MzVisitTable lastMzVisitTable = mzVisitTableService.queryLastMzVisitTableByPatientId(mzPrescriptionVo.getPatientId());
|
|
|
if (lastMzVisitTable != null) {
|
|
|
times = lastMzVisitTable.getTimes();
|
|
|
}
|
|
@@ -258,17 +256,17 @@ public class RationalUseServiceImpl implements RationalUseService {
|
|
|
// 就诊类型
|
|
|
.append("<treat_type>").append("100").append("</treat_type>")
|
|
|
// 就诊号
|
|
|
- .append("<treat_code>").append(patientId).append("_").append(times).append("_1").append("</treat_code>")
|
|
|
+ .append("<treat_code>").append(mzPrescriptionVo.getPatientId()).append("_").append(times).append("_1").append("</treat_code>")
|
|
|
.append("<is_repeat>").append("1").append("</is_repeat>")
|
|
|
.append("<bed_no></bed_no>")
|
|
|
.append("<patient>")
|
|
|
- .append("<pati_id>").append(patientId).append("</pati_id>")
|
|
|
+ .append("<pati_id>").append(mzPrescriptionVo.getPatientId()).append("</pati_id>")
|
|
|
.append("<name>").append(nullToBlank(mzPatientMi.getName())).append("</name>")
|
|
|
.append("<is_infant></is_infant>")
|
|
|
.append("<birth>").append(nullToBlank(mzPatientMi.getBirthDayStr())).append("</birth>")
|
|
|
.append("<sex>").append(nullToBlank(mzPatientMi.getGender())).append("</sex>")
|
|
|
- .append("<weight></weight>")
|
|
|
- .append("<height></height>")
|
|
|
+ .append("<weight>").append(mzPrescriptionVo.getMzBlRecord().getWeight()).append("</weight>")
|
|
|
+ .append("<height>").append("</height>")
|
|
|
.append("<id_card>").append(mzPatientMi.getSocialNo()).append("</id_card>")
|
|
|
.append("<medical_record></medical_record>")
|
|
|
.append("<card_type></card_type>")
|
|
@@ -299,17 +297,25 @@ public class RationalUseServiceImpl implements RationalUseService {
|
|
|
// 诊断
|
|
|
sbf.append("<diagnose_data>");
|
|
|
List<XunHuanJieDian> diagnosticData = new ArrayList<>();
|
|
|
- List<String> arr = Arrays.asList(icdCode.split(","));
|
|
|
- List<String> icdTextArr = Arrays.asList(icdText.split(","));
|
|
|
- for (int i = 0; i < arr.size(); i++) {
|
|
|
- String str = arr.get(i);
|
|
|
- if (str == null || StringUtils.isBlank(str)) {
|
|
|
- continue;
|
|
|
+ if(mzPrescriptionVo.getIcdCode()!=null && StringUtils.isNotBlank(mzPrescriptionVo.getIcdCode())){
|
|
|
+ List<String> arr = Arrays.asList(mzPrescriptionVo.getIcdCode().split(","));
|
|
|
+ List<String> icdTextArr = Arrays.asList(mzPrescriptionVo.getIcdText().split(","));
|
|
|
+ for (int i = 0; i < arr.size(); i++) {
|
|
|
+ String str = arr.get(i);
|
|
|
+ if (str == null || StringUtils.isBlank(str)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ XunHuanJieDian xunHuanJieDian = new XunHuanJieDian();
|
|
|
+ xunHuanJieDian.setCode(str);
|
|
|
+ xunHuanJieDian.setType("2");
|
|
|
+ xunHuanJieDian.setName(icdTextArr.get(i));
|
|
|
+ diagnosticData.add(xunHuanJieDian);
|
|
|
}
|
|
|
+ }else if(StringUtils.isNotBlank(mzPrescriptionVo.getMzBlRecord().getTentativeDiagnosis())){
|
|
|
XunHuanJieDian xunHuanJieDian = new XunHuanJieDian();
|
|
|
- xunHuanJieDian.setCode(str);
|
|
|
+ xunHuanJieDian.setCode("");
|
|
|
xunHuanJieDian.setType("0");
|
|
|
- xunHuanJieDian.setName(icdTextArr.get(i));
|
|
|
+ xunHuanJieDian.setName(mzPrescriptionVo.getMzBlRecord().getTentativeDiagnosis());
|
|
|
diagnosticData.add(xunHuanJieDian);
|
|
|
}
|
|
|
// 诊断节点
|
|
@@ -317,9 +323,9 @@ public class RationalUseServiceImpl implements RationalUseService {
|
|
|
sbf.append("</diagnose_data>").append("</patient>");
|
|
|
// 处方信息
|
|
|
sbf.append("<prescription_data>");
|
|
|
- setYpDetail(currentList, patientId, doctXml, times, date, sbf);
|
|
|
+ setYpDetail(currentList, mzPrescriptionVo.getPatientId(), doctXml, times, date, sbf);
|
|
|
if (hisList != null && hisList.size() > 0) {
|
|
|
- setYpDetail(hisList, patientId, doctXml, times, date, sbf);
|
|
|
+ setYpDetail(hisList, mzPrescriptionVo.getPatientId(), doctXml, times, date, sbf);
|
|
|
}
|
|
|
sbf.append("</prescription_data></details_xml>");
|
|
|
return sbf.toString();
|
|
@@ -362,15 +368,15 @@ public class RationalUseServiceImpl implements RationalUseService {
|
|
|
.append("<quantity>").append(nullToBlank(quantity + ypZdDict.getPackUnitDesc())).append("</quantity>")
|
|
|
.append("<group>").append(mzChargeDetail.getGroupOrder()).append("</group>")
|
|
|
.append("<reason>").append("</reason>")
|
|
|
- .append("<dose_unit>").append(StringUtils.isNotBlank(ypZdDict.getWeighUnit()) ? UnitTypeEnum.getUnitTypeByCode(mzChargeDetail.getDrugUnit()).name : "").append("</dose_unit>")
|
|
|
+ .append("<dose_unit>").append(StringUtils.isNotBlank(mzChargeDetail.getDrugUnit()) ? UnitTypeEnum.getUnitTypeByCode(mzChargeDetail.getDrugUnit()).name : "").append("</dose_unit>")
|
|
|
.append("<dose>").append(mzChargeDetail.getDrugQuan()).append("</dose>")
|
|
|
- .append("<kyzl>").append("</kyzl>")
|
|
|
- .append("<zl_unit>").append("</zl_unit>")
|
|
|
+ .append("<zl_unit>").append(StringUtils.isNotBlank(ypZdDict.getPackUnit()) ? UnitTypeEnum.getUnitTypeByCode(ypZdDict.getPackUnit()).name : "").append("</zl_unit>")
|
|
|
+ .append("<kyzl>").append(quantity).append("</kyzl>")
|
|
|
.append("<freq>").append("MZ").append(nullToBlank(mzChargeDetail.getFrequency())).append("</freq>")
|
|
|
.append("<administer>").append("MZ").append(mzChargeDetail.getSupplyCode()).append("</administer>")
|
|
|
- .append("<begin_time></begin_time>")
|
|
|
- .append("<end_time></end_time>")
|
|
|
- .append("<days>").append("</days>")
|
|
|
+ .append("<begin_time>").append(date).append("</begin_time>")
|
|
|
+ //.append("<end_time>").append(date).append("</end_time>")
|
|
|
+ .append("<days>").append(mzChargeDetail.getOrderDays()).append("</days>")
|
|
|
.append(doctXml)
|
|
|
.append("<PREVENTIVE_TYPE>").append("0").append("</PREVENTIVE_TYPE>")
|
|
|
.append("<money>").append(ypZdDict.getPackRetprice().multiply(quantity)).append("</money>")
|