|
|
@@ -1043,7 +1043,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
if (mzPatientMi == null) {
|
|
|
throw new MzException("当前病人信息不存在,请先保存病人信息!");
|
|
|
}
|
|
|
- //判断当前患者本次就诊是否死急诊号
|
|
|
+ //判断当前患者本次就诊是否是急诊号
|
|
|
Integer JzFlag = getJzFlag(mzPrescriptionVo, mzPatientMi);
|
|
|
setPrescriptionDetail(mzPrescriptionVo, YesNoEnum.YES, mzPatientMi.getBirthDay());
|
|
|
if (dbClinic != null && dbClinic.getId() != null && StringUtils.isNotBlank(dbClinic.getPatientId()) && dbClinic.getTimes() != null && ClinicStatusEnum.HAD_CLINIC.code.equals(dbClinic.getClinicStatus())) {
|
|
|
@@ -1181,9 +1181,9 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
* 设置处方明细的描述
|
|
|
*
|
|
|
* @param mzPrescriptionVo
|
|
|
- * @param savePrescription Yes 新处方 已入库处方
|
|
|
+ * @param chargeOrDiscount 加收或者打折 Yes 新处方需要计算 No 已入库处方以及不需要计算
|
|
|
*/
|
|
|
- private void setPrescriptionDetail(MzPrescriptionVo mzPrescriptionVo, YesNoEnum savePrescription, Date birthDay) throws MzException {
|
|
|
+ public void setPrescriptionDetail(MzPrescriptionVo mzPrescriptionVo, YesNoEnum chargeOrDiscount, Date birthDay) throws MzException {
|
|
|
Map<String, Object> prescriptionDetail = new HashMap<>();
|
|
|
List<Map<String, Object>> zyPrescription = new ArrayList();
|
|
|
prescriptionDetail.put("zyPrescription", zyPrescription);
|
|
|
@@ -1206,7 +1206,7 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
if (mzPrescriptionVo.getMzYjReqList() != null && mzPrescriptionVo.getMzYjReqList().size() > 0) {
|
|
|
Map<String, Object> yjMap = new HashMap<>();
|
|
|
yjMap.put("amount", BigDecimal.ZERO);
|
|
|
- List<String> detail = new ArrayList<>();
|
|
|
+ List<Map<String,Object>> detail = new ArrayList<>();
|
|
|
Map<String, Object> jcHalfFareMap = null;
|
|
|
//List<Map<String, List<ZdChargeItem>>> fullZdChargeItemList = new ArrayList<>();
|
|
|
//医技医嘱码对应的处方明细
|
|
|
@@ -1217,18 +1217,30 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
Map<String, MzYjReq> mzYjReqMap = null;
|
|
|
for (int i = 0; i < mzPrescriptionVo.getMzYjReqList().size(); i++) {
|
|
|
MzYjReq mzYjReq = mzPrescriptionVo.getMzYjReqList().get(i);
|
|
|
+ Map<String, Object> yjDetail = new HashMap<>();
|
|
|
+ detail.add(yjDetail);
|
|
|
int index = i + 1;
|
|
|
+ yjDetail.put("index",index);
|
|
|
+ yjDetail.put("orderCode",mzYjReq.getOrderCode());
|
|
|
+ yjDetail.put("name",mzYjReq.getGroupName());
|
|
|
String name = index + "." + mzYjReq.getGroupName();
|
|
|
if (StringUtils.isNotBlank(mzYjReq.getJyRemark())) {
|
|
|
name += " 备注:" + mzYjReq.getJyRemark();
|
|
|
+ yjDetail.put("remark",mzYjReq.getJyRemark());
|
|
|
}
|
|
|
- detail.add(name);
|
|
|
- if (emrFzjc == null) {
|
|
|
- emrFzjc = name;
|
|
|
- } else {
|
|
|
- emrFzjc += "," + name;
|
|
|
+ //检查
|
|
|
+ if("3".equals(mzYjReq.getReqType())){
|
|
|
+ if (emrFzjc == null) {
|
|
|
+ emrFzjc = name;
|
|
|
+ } else {
|
|
|
+ emrFzjc += " " + name;
|
|
|
+ }
|
|
|
+ yjDetail.put("inspectPart",mzYjReq.getInspectPart());
|
|
|
+ }else {
|
|
|
+ yjDetail.put("inspectStuff",mzYjReq.getInspectStuff());
|
|
|
}
|
|
|
- if (YesNoEnum.YES.equals(savePrescription)) {
|
|
|
+ yjDetail.put("execDept",mzYjReq.getExecDept());
|
|
|
+ if (YesNoEnum.YES.equals(chargeOrDiscount)) {
|
|
|
if (jcHalfFareMap == null) {
|
|
|
jcHalfFareMap = new HashMap<>();
|
|
|
}
|
|
|
@@ -1312,13 +1324,23 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
}
|
|
|
amount = amount.add(tempAmount);
|
|
|
tempMap.put("amount", amount);
|
|
|
- List<String> detail = (List<String>) tempMap.get("detail");
|
|
|
- String name = mzChargeDetail.getTcName();
|
|
|
+ List<Map<String,Object>> detail = (List<Map<String,Object>>) tempMap.get("detail");
|
|
|
+ Map<String,Object> zyDetail = new HashMap<>();
|
|
|
+ zyDetail.put("orderCode",mzChargeDetail.getChargeItemCode()+"_"+mzChargeDetail.getSerial());
|
|
|
+ zyDetail.put("name",mzChargeDetail.getTcName());
|
|
|
if (StringUtils.isNotBlank(mzChargeDetail.getInstructionText())) {
|
|
|
- name += "[" + mzChargeDetail.getInstructionText() + "]";
|
|
|
+ zyDetail.put("instructionCode",mzChargeDetail.getInstructionCode());
|
|
|
+ zyDetail.put("instructionText",mzChargeDetail.getInstructionText());
|
|
|
}
|
|
|
- name += mzChargeDetail.getQuantity() + "g";
|
|
|
- detail.add(name);
|
|
|
+ zyDetail.put("quantity",mzChargeDetail.getQuantity());
|
|
|
+// zyDetail.put("cyMtjs",mzChargeDetail.getCyMtjs());
|
|
|
+// zyDetail.put("cyJsl",mzChargeDetail.getCyJsl());
|
|
|
+// zyDetail.put("cyZql",mzChargeDetail.getCyZql());
|
|
|
+// zyDetail.put("cyFj",mzChargeDetail.getCyFj());
|
|
|
+// zyDetail.put("cyFfcs",mzChargeDetail.getCyFfcs());
|
|
|
+// zyDetail.put("cyFysm",mzChargeDetail.getCyFysm());
|
|
|
+// zyDetail.put("cyJssm",mzChargeDetail.getCyJssm());
|
|
|
+ detail.add(zyDetail);
|
|
|
} else if (Constants.YJ_GROUP_NO.equals(mzChargeDetail.getGroupNo())) {
|
|
|
if (Constants.TC.equals(mzChargeDetail.getBillItemCode()) || Constants.SSWRF.equals(mzChargeDetail.getBillItemCode())) {
|
|
|
continue;
|
|
|
@@ -1334,10 +1356,10 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
continue;
|
|
|
}
|
|
|
if (zlPrescription.size() == 0) {
|
|
|
- Map<String, Object> yjMap = new HashMap<>();
|
|
|
- yjMap.put("amount", BigDecimal.ZERO);
|
|
|
- yjMap.put("detail", new ArrayList<>());
|
|
|
- zlPrescription.add(yjMap);
|
|
|
+ Map<String, Object> zlMap = new HashMap<>();
|
|
|
+ zlMap.put("amount", BigDecimal.ZERO);
|
|
|
+ zlMap.put("detail", new ArrayList<>());
|
|
|
+ zlPrescription.add(zlMap);
|
|
|
}
|
|
|
Map<String, Object> tempMap = zlPrescription.get(0);
|
|
|
BigDecimal amount = (BigDecimal) tempMap.get("amount");
|
|
|
@@ -1365,13 +1387,17 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
tempMap.put("amount", amount);
|
|
|
if (StringUtils.isBlank(mzChargeDetail.getTcNo())) {
|
|
|
//诊疗项目
|
|
|
- List<String> detail = (List<String>) tempMap.get("detail");
|
|
|
+ List<Map<String, Object>> detail = (List<Map<String, Object>>) tempMap.get("detail");
|
|
|
+ Map<String, Object> zlDetail = new HashMap<>();
|
|
|
int index = detail.size() + 1;
|
|
|
- String name = index + "." + mzChargeDetail.getTcName();
|
|
|
+ zlDetail.put("index",index);
|
|
|
+ zlDetail.put("orderCode",mzChargeDetail.getChargeItemCode());
|
|
|
+ zlDetail.put("name",mzChargeDetail.getTcName());
|
|
|
if (StringUtils.isNotBlank(mzChargeDetail.getInstructionText())) {
|
|
|
- name += " 备注:" + mzChargeDetail.getInstructionText();
|
|
|
+ zlDetail.put("instructionCode",mzChargeDetail.getInstructionCode());
|
|
|
+ zlDetail.put("instructionText",mzChargeDetail.getInstructionText());
|
|
|
}
|
|
|
- detail.add(name);
|
|
|
+ detail.add(zlDetail);
|
|
|
}
|
|
|
} else if (Constants.XY_ZCY_GROUP_NO.equals(mzChargeDetail.getGroupNo()) || Constants.YC_GROUP_NO.equals(mzChargeDetail.getGroupNo())) {
|
|
|
YpZdDict ypZdDict = ypZdDictService.queryYpZdDictByCodeAndSerial(mzChargeDetail.getChargeItemCode(), mzChargeDetail.getSerial());
|
|
|
@@ -1402,123 +1428,120 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
}
|
|
|
}
|
|
|
BigDecimal amount = (BigDecimal) xyDetailMap.get("amount");
|
|
|
- List<String> detail = (List<String>) xyDetailMap.get("detail");
|
|
|
+ List< Map<String, Object>> detail = (List< Map<String, Object>>) xyDetailMap.get("detail");
|
|
|
amount = amount.add(tempAmount);
|
|
|
xyDetailMap.put("amount", amount);
|
|
|
- String name = mzChargeDetail.getTcName();
|
|
|
- if (mzChargeDetail.getGroupOrder() != null) {
|
|
|
- name = mzChargeDetail.getGroupOrder() + "." + name;
|
|
|
+ Map<String, Object> xyDetail = new HashMap<>();
|
|
|
+ detail.add(xyDetail);
|
|
|
+ xyDetail.put("name",mzChargeDetail.getTcName());
|
|
|
+ xyDetail.put("orderCode",mzChargeDetail.getChargeItemCode()+"_"+mzChargeDetail.getSerial());
|
|
|
+ //String name = mzChargeDetail.getTcName();
|
|
|
+ if (mzChargeDetail.getGroupOrder() == null) {
|
|
|
+ mzChargeDetail.setGroupOrder(1);
|
|
|
}
|
|
|
+ xyDetail.put("groupOrder",mzChargeDetail.getGroupOrder());
|
|
|
if (StringUtils.isNotBlank(ypZdDict.getManuCode())) {
|
|
|
String manufactoryName = ypZdManufactoryService.queryYpZdManufactoryByCode(ypZdDict.getManuCode());
|
|
|
if (StringUtils.isNotBlank(manufactoryName)) {
|
|
|
- name += "(" + manufactoryName + ") ";
|
|
|
+ xyDetail.put("manufactoryName",manufactoryName);
|
|
|
}
|
|
|
}
|
|
|
- String unitDesc = "";
|
|
|
if (mzChargeDetail.getDrugUnit() != null) {
|
|
|
- unitDesc = UnitTypeEnum.getUnitTypeByCode(mzChargeDetail.getDrugUnit()).name;
|
|
|
-// if (mzChargeDetail.getDrugUnit().equals(ypZdDict.getWeighUnit()) && ypZdDict.getWeight() != null) {
|
|
|
-// name += " " + ypZdDict.getWeight().doubleValue() + unitDesc;
|
|
|
-// } else if (mzChargeDetail.getDrugUnit().equals(ypZdDict.getVolUnit()) && ypZdDict.getVolum() != null) {
|
|
|
-// name += " " + ypZdDict.getVolum().doubleValue() + unitDesc;
|
|
|
-// }
|
|
|
- // name += " " + mzChargeDetail.getDrugQuan() + unitDesc;
|
|
|
+ xyDetail.put("unitDesc",UnitTypeEnum.getUnitTypeByCode(mzChargeDetail.getDrugUnit()).name);
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(ypZdDict.getSpecification())) {
|
|
|
- name += ypZdDict.getSpecification() + " X ";
|
|
|
+ xyDetail.put("specification",ypZdDict.getSpecification());
|
|
|
}
|
|
|
- name += mzChargeDetail.getQuantity() + UnitTypeEnum.getUnitTypeByCode(ypZdDict.getPackUnit()).name;
|
|
|
- // name += " 共" + mzChargeDetail.getQuantity() + UnitTypeEnum.getUnitTypeByCode(ypZdDict.getPackUnit()).name;
|
|
|
+ xyDetail.put("quantity",mzChargeDetail.getQuantity());
|
|
|
+ xyDetail.put("packUnit",UnitTypeEnum.getUnitTypeByCode(ypZdDict.getPackUnit()).name);
|
|
|
if (StringUtils.isNotBlank(mzChargeDetail.getSupplyCode())) {
|
|
|
MzZdSupplyType mzZdSupplyType = mzZdSupplyTypeMapper.selectMzZdSupplyTypeByCode(mzChargeDetail.getSupplyCode());
|
|
|
- //SupplyTypeEnum supplyTypeEnum = SupplyTypeEnum.getSupplyTypeByCode(mzChargeDetail.getSupplyCode());
|
|
|
if (mzZdSupplyType != null) {
|
|
|
- name += " 用法:" + mzZdSupplyType.getSupplyName();
|
|
|
- name += " " + mzChargeDetail.getDrugQuan() + unitDesc;
|
|
|
+ xyDetail.put("supplyName",mzZdSupplyType.getSupplyName());
|
|
|
+ xyDetail.put("drugQuan",mzChargeDetail.getDrugQuan());
|
|
|
}
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(mzChargeDetail.getFrequency())) {
|
|
|
OrderFrequencyEnum orderFrequencyEnum = OrderFrequencyEnum.getOrderFrequencyByCode(mzChargeDetail.getFrequency());
|
|
|
if (orderFrequencyEnum != null) {
|
|
|
- name += " 频次:" + orderFrequencyEnum.name;
|
|
|
+ xyDetail.put("frequency",orderFrequencyEnum.name);
|
|
|
}
|
|
|
}
|
|
|
if (mzChargeDetail.getOrderDays() != null) {
|
|
|
- name += " " + mzChargeDetail.getOrderDays() + "天";
|
|
|
+ xyDetail.put("orderDays",mzChargeDetail.getOrderDays());
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(mzChargeDetail.getTryFlag()) && YesNoEnum.YES.code.toString().equals(mzChargeDetail.getTryFlag())) {
|
|
|
- name += " 皮试";
|
|
|
+ xyDetail.put("tryFlag","皮试");
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(mzChargeDetail.getInstructionText())) {
|
|
|
- name += " 医嘱:" + mzChargeDetail.getInstructionText();
|
|
|
+ xyDetail.put("instructionCode",mzChargeDetail.getInstructionCode());
|
|
|
+ xyDetail.put("instructionText",mzChargeDetail.getInstructionText());
|
|
|
}
|
|
|
- detail.add(name);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
MzZyReq mzZyReq = mzPrescriptionVo.getMzZyReq();
|
|
|
if (mzZyReq != null && mzZyReq.getReqDept() != null && StringUtils.isNotBlank(mzZyReq.getReqDept())) {
|
|
|
- String zyReqPrescription = "收住院";
|
|
|
- zyReqPrescription += " [" + zdUnitCodeService.queryDeptNameByIdInCache(mzZyReq.getReqDept());
|
|
|
+ Map<String, Object> zyDetail = new HashMap<>();
|
|
|
+ zyDetail.put("reqDept",zdUnitCodeService.queryDeptNameByIdInCache(mzZyReq.getReqDept()));
|
|
|
if (mzZyReq.getSmallDept() != null && StringUtils.isNotBlank(mzZyReq.getSmallDept())) {
|
|
|
- zyReqPrescription += " (" + zdUnitCodeService.queryDeptNameByIdInCache(mzZyReq.getSmallDept()) + ") ";
|
|
|
+ zyDetail.put("smallDept",zdUnitCodeService.queryDeptNameByIdInCache(mzZyReq.getSmallDept()));
|
|
|
}
|
|
|
- zyReqPrescription += "] ";
|
|
|
if (mzZyReq.getAdmissStatus() != null && StringUtils.isNotBlank(mzZyReq.getAdmissStatus())) {
|
|
|
CodeNameEntity codeNameEntity = mzZdCommonMapper.selectAdmissStatusByCode(mzZyReq.getAdmissStatus());
|
|
|
if (codeNameEntity != null) {
|
|
|
- zyReqPrescription += " " + codeNameEntity.getName();
|
|
|
+ zyDetail.put("admissStatus",codeNameEntity.getName());
|
|
|
}
|
|
|
}
|
|
|
- zyReqPrescription += " 侯床";
|
|
|
- prescriptionDetail.put("zyReqPrescription", zyReqPrescription);
|
|
|
+ zyDetail.put("bedNo",mzZyReq.getBedNo());
|
|
|
+ prescriptionDetail.put("zyReqPrescription", zyDetail);
|
|
|
}
|
|
|
mzPrescriptionVo.getMzBlRecord().setPrescriptionDetail(JsonUtil.object2Json(prescriptionDetail));
|
|
|
StringBuilder sbd = new StringBuilder();
|
|
|
- if (pyPrescription.size() > 0 || jePrescription.size() > 0 || mjPrescription.size() > 0 || ycPrescription.size() > 0) {
|
|
|
- sbd.append("西药治疗:");
|
|
|
- int index = 0;
|
|
|
- index = getIndex(pyPrescription, sbd, index);
|
|
|
- index = getIndex(ycPrescription, sbd, index);
|
|
|
- index = getIndex(mjPrescription, sbd, index);
|
|
|
- getIndex(jePrescription, sbd, index);
|
|
|
+ if (pyPrescription.size() > 0) {
|
|
|
+ sbd.append("西药(普药)治疗:</br>");
|
|
|
+ setXyDetail(pyPrescription, sbd);
|
|
|
+ }
|
|
|
+ if (mjPrescription.size() > 0) {
|
|
|
+ sbd.append("西药(麻、精一)治疗:</br>");
|
|
|
+ setXyDetail(mjPrescription, sbd);
|
|
|
+ }
|
|
|
+ if (jePrescription.size() > 0) {
|
|
|
+ sbd.append("西药(精二)治疗:</br>");
|
|
|
+ setXyDetail(jePrescription, sbd);
|
|
|
+ }
|
|
|
+ if (ycPrescription.size() > 0) {
|
|
|
+ sbd.append("医材治疗:</br>");
|
|
|
+ setXyDetail(ycPrescription, sbd);
|
|
|
}
|
|
|
if (zyPrescription.size() > 0) {
|
|
|
Map<String, Object> map = zyPrescription.get(0);
|
|
|
- if (sbd.length() > 0) {
|
|
|
- sbd.append(" ");
|
|
|
- }
|
|
|
- sbd.append("中药治疗:付数");
|
|
|
- sbd.append(map.get("zyfs"));
|
|
|
- getIndex(zyPrescription, sbd, 1);
|
|
|
+ sbd.append("中药治疗:付数 ");
|
|
|
+ sbd.append(map.get("zyfs")).append(" 付</br>");
|
|
|
+ setZyDetail(zyPrescription, sbd);
|
|
|
}
|
|
|
if (jcjyPrescription.size() > 0) {
|
|
|
List<String> detail = (List<String>) jcjyPrescription.get(0).get("detail");
|
|
|
if (detail != null && detail.size() > 0) {
|
|
|
- if (sbd.length() > 0) {
|
|
|
- sbd.append(" ");
|
|
|
- }
|
|
|
- sbd.append("辅助检查、检验:");
|
|
|
- getIndex(jcjyPrescription, sbd, 0);
|
|
|
+ sbd.append("辅助检查、检验:</br>");
|
|
|
+ setJcjyDetail(jcjyPrescription, sbd);
|
|
|
}
|
|
|
}
|
|
|
if (zlPrescription.size() > 0) {
|
|
|
List<String> detail = (List<String>) zlPrescription.get(0).get("detail");
|
|
|
if (detail != null && detail.size() > 0) {
|
|
|
- if (sbd.length() > 0) {
|
|
|
- sbd.append(" ");
|
|
|
- }
|
|
|
- sbd.append("诊疗:");
|
|
|
- getIndex(zlPrescription, sbd, 0);
|
|
|
+ sbd.append("诊疗:</br>");
|
|
|
+ setJcjyDetail(zlPrescription, sbd);
|
|
|
}
|
|
|
}
|
|
|
- String zyReqPrescription = (String) prescriptionDetail.get("zyReqPrescription");
|
|
|
- if (zyReqPrescription != null && StringUtils.isNotBlank(zyReqPrescription)) {
|
|
|
- if (sbd.length() > 0) {
|
|
|
- sbd.append(" ");
|
|
|
+ Map<String,Object> zyReqPrescription = (Map<String,Object>) prescriptionDetail.get("zyReqPrescription");
|
|
|
+ if (zyReqPrescription != null && zyReqPrescription.size()>0) {
|
|
|
+ sbd.append("入院处理:</br>").append("收住院 [").append(zyReqPrescription.get("reqDept"));
|
|
|
+ String smallDept=(String) zyReqPrescription.get("smallDept");
|
|
|
+ if(StringUtils.isNotBlank(smallDept)){
|
|
|
+ sbd.append("(").append(smallDept).append(")");
|
|
|
}
|
|
|
- sbd.append("入院处理:").append(zyReqPrescription);
|
|
|
+ sbd.append("} ").append(zyReqPrescription.get("admissStatus")==null?"":zyReqPrescription.get("admissStatus")).append("侯床").append("</br>");
|
|
|
}
|
|
|
mzPrescriptionVo.getMzBlRecord().setEmrFzjc(emrFzjc);
|
|
|
mzPrescriptionVo.getMzBlRecord().setEmrProcess(sbd.toString());
|
|
|
@@ -1741,25 +1764,82 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
return tempAmount;
|
|
|
}
|
|
|
|
|
|
- private int getIndex(List<Map<String, Object>> prescription, StringBuilder sbd, int index) {
|
|
|
+ /**
|
|
|
+ * 设置西成药
|
|
|
+ * @param prescription
|
|
|
+ * @param sbd
|
|
|
+ */
|
|
|
+ private void setXyDetail(List<Map<String, Object>> prescription, StringBuilder sbd) {
|
|
|
+ if (prescription.size() > 0) {
|
|
|
+ for (Map<String, Object> map : prescription) {
|
|
|
+ List<Map<String,Object>> detail = (List<Map<String,Object>>) map.get("detail");
|
|
|
+ if (detail.size() > 0) {
|
|
|
+ for (Map<String,Object> detailMap : detail) {
|
|
|
+ sbd.append(detailMap.get("groupOrder"))
|
|
|
+ .append(". ")
|
|
|
+ .append(detailMap.get("name"))
|
|
|
+ .append(" ")
|
|
|
+ .append(detailMap.get("specification")==null?"":detailMap.get("specification"))
|
|
|
+ .append(" X ")
|
|
|
+ .append(detailMap.get("quantity"))
|
|
|
+ .append(detailMap.get("packUnit"))
|
|
|
+ .append("</br>")
|
|
|
+ .append("用法:").append(detailMap.get("supplyName")==null?"":detailMap.get("supplyName"))
|
|
|
+ .append(" ")
|
|
|
+ .append(detailMap.get("drugQuan")==null?"":detailMap.get("drugQuan"))
|
|
|
+ .append(detailMap.get("packUnit"))
|
|
|
+ .append(" 频次: ")
|
|
|
+ .append(detailMap.get("frequency")==null?"":detailMap.get("frequency")).append(" ").append(detailMap.get("orderDays")==null?"":detailMap.get("orderDays")).append("天</br>");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置中药
|
|
|
+ * @param prescription
|
|
|
+ * @param sbd
|
|
|
+ */
|
|
|
+ private void setZyDetail(List<Map<String, Object>> prescription, StringBuilder sbd) {
|
|
|
if (prescription.size() > 0) {
|
|
|
for (Map<String, Object> map : prescription) {
|
|
|
- List<String> detail = (List<String>) map.get("detail");
|
|
|
+ List<Map<String,Object>> detail = (List<Map<String,Object>>) map.get("detail");
|
|
|
if (detail.size() > 0) {
|
|
|
- for (String str : detail) {
|
|
|
- if (index > 0) {
|
|
|
- sbd.append("_");
|
|
|
+ for (Map<String,Object> detailMap : detail) {
|
|
|
+ sbd.append(detailMap.get("name"));
|
|
|
+ String instructionText = (String)detailMap.get("instructionText");
|
|
|
+ if(StringUtils.isNotBlank(instructionText)){
|
|
|
+ sbd .append("[").append(instructionText).append("]");
|
|
|
}
|
|
|
- sbd.append(str);
|
|
|
- index++;
|
|
|
+ sbd .append(" ").append(detailMap.get("quantity")).append("g</br>");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return index;
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置辅助检查、检验\诊疗
|
|
|
+ * @param prescription
|
|
|
+ * @param sbd
|
|
|
+ */
|
|
|
+ private void setJcjyDetail(List<Map<String, Object>> prescription, StringBuilder sbd) {
|
|
|
+ if (prescription.size() > 0) {
|
|
|
+ for (Map<String, Object> map : prescription) {
|
|
|
+ List<Map<String,Object>> detail = (List<Map<String,Object>>) map.get("detail");
|
|
|
+ if (detail.size() > 0) {
|
|
|
+ for (Map<String,Object> detailMap : detail) {
|
|
|
+ sbd.append(detailMap.get("index")).append(".").append(detailMap.get("name")).append("</br>");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 设置完整处方 needPatient needVerify 同事为true 时是保存处方
|
|
|
*
|
|
|
@@ -1813,20 +1893,6 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
mzPatientMi = new MzPatientMi();
|
|
|
}
|
|
|
Date now = new Date();
|
|
|
- //(自助开处方且是保存入库的时候 或者是保存模板的时候
|
|
|
- boolean setEmrProcess = (needPatient && Constants.BRZZJF_CODE.equals(mzPrescriptionVo.getDoctorCode())) || !needVerify;
|
|
|
- //中药治疗
|
|
|
- String zyzlContent = null;
|
|
|
- //西药治疗
|
|
|
- String xyzlContent = null;
|
|
|
- //检查检验
|
|
|
- String jcjyContent = null;
|
|
|
- //诊疗治疗
|
|
|
- String zlzlContent = null;
|
|
|
- //辅助检查
|
|
|
- String emrFzjc = null;
|
|
|
- int zlIndex = 0;
|
|
|
- int xyIndex = 0;
|
|
|
String reqTzComment = getReqTzComment(mzPrescriptionVo.getMzBlRecord());
|
|
|
//保存医技入库
|
|
|
if (mzPrescriptionVo.getMzYjReqList() != null && mzPrescriptionVo.getMzYjReqList().size() > 0) {
|
|
|
@@ -1874,17 +1940,6 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
if (mzYjReq.getReqComment().length() > 37) {
|
|
|
mzYjReq.setReqComment(mzYjReq.getReqComment().substring(0, 36));
|
|
|
}
|
|
|
- if (setEmrProcess) {
|
|
|
- zlIndex++;
|
|
|
- String value = zlIndex + "." + mzYjReq.getOrderName() + " " + (mzYjReq.getJyRemark() == null ? "" : mzYjReq.getJyRemark()) + " ";
|
|
|
- if (jcjyContent == null) {
|
|
|
- jcjyContent = "辅助检查、检验:" + value;
|
|
|
- emrFzjc = value;
|
|
|
- } else {
|
|
|
- jcjyContent += "_" + value;
|
|
|
- emrFzjc += "," + value;
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
//保存药品入库
|
|
|
@@ -2021,18 +2076,6 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
mzChargeDetail.setDrugWin(1);
|
|
|
mzChargeDetail.setGroupType(Constants.XYF.equals(ypZdDict.getBillItemMz()) ? "1" : "2");
|
|
|
mzChargeDetail.setSupplyAmount(mzChargeDetail.getOrderDays() * OrderFrequencyEnum.getOrderFrequencyByCode(mzChargeDetail.getFrequency()).times);
|
|
|
- if (setEmrProcess) {
|
|
|
- xyIndex++;
|
|
|
- MzZdSupplyType mzZdSupplyType = mzZdSupplyTypeMapper.selectMzZdSupplyTypeByCode(mzChargeDetail.getSupplyCode());
|
|
|
- //SupplyTypeEnum supplyType = SupplyTypeEnum.getSupplyTypeByCode(mzChargeDetail.getSupplyCode());
|
|
|
- OrderFrequencyEnum orderFrequency = OrderFrequencyEnum.getOrderFrequencyByCode(mzChargeDetail.getFrequency());
|
|
|
- String value = xyIndex + "." + mzChargeDetail.getTcName() + " " + mzChargeDetail.getQuantity() + ypZdDict.getPackUnit() + " 用法:" + (mzZdSupplyType != null ? mzZdSupplyType.getSupplyName() : "") + " 频次:" + (orderFrequency != null ? orderFrequency.name : "") + " ";
|
|
|
- if (xyzlContent == null) {
|
|
|
- xyzlContent = "西药治疗:" + value;
|
|
|
- } else {
|
|
|
- xyzlContent += "_" + value;
|
|
|
- }
|
|
|
- }
|
|
|
} else if (Constants.CYF.equals(ypZdDict.getBillItemMz())) {
|
|
|
if (Constants.GRANULA_DRUG_KIND.equals(ypZdDict.getDrugKind())) {
|
|
|
mzChargeDetail.setGroupNo(Constants.GRANULA_GROUP_NO);
|
|
|
@@ -2046,18 +2089,6 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
throw new MzException("保存处方失败,第" + itemNo + "行药品的剂量为空");
|
|
|
}
|
|
|
mzChargeDetail.setSupplyAmount(1);
|
|
|
- if (setEmrProcess) {
|
|
|
- String value = mzChargeDetail.getTcName() + " ";
|
|
|
- if (StringUtils.isNotBlank(mzChargeDetail.getInstructionText())) {
|
|
|
- value += "[" + mzChargeDetail.getInstructionText() + "]";
|
|
|
- }
|
|
|
- value += mzChargeDetail.getDrugQuan() + "g" + " ";
|
|
|
- if (zyzlContent == null) {
|
|
|
- zyzlContent = "中药治疗:付数" + mzChargeDetail.getDrugWin() + "_" + value;
|
|
|
- } else {
|
|
|
- zyzlContent += "_" + value;
|
|
|
- }
|
|
|
- }
|
|
|
} else {
|
|
|
throw new MzException("保存处方失败,第" + itemNo + "行药品的账单类型错误");
|
|
|
}
|
|
|
@@ -2080,18 +2111,6 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
mzChargeDetail.setDrugWin(1);
|
|
|
mzChargeDetail.setGroupType(GroupTypeEnum.DIAGNOSIS.code);
|
|
|
mzChargeDetail.setSupplyAmount(1);
|
|
|
- //诊疗在页面开立的时候是在医技里,但是保存入库是在项目明细表
|
|
|
- if (setEmrProcess) {
|
|
|
- zlIndex++;
|
|
|
- String value = zlIndex + "." + mzChargeDetail.getTcName() + " " + mzChargeDetail.getInstructionText() + " ";
|
|
|
- if (zlzlContent == null) {
|
|
|
- zlzlContent = "诊疗:" + value;
|
|
|
- //emrFzjc = value;
|
|
|
- } else {
|
|
|
- zlzlContent += "_" + value;
|
|
|
- //emrFzjc += "," + value;
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
mzChargeDetail.setWarnDept(mzPrescriptionVo.getVisitDeptCode());
|
|
|
mzChargeDetail.setPriceId(mzPrescriptionVo.getDoctorCode());
|
|
|
@@ -2157,23 +2176,6 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
mzZyReq.setPatientId(mzPatientMi.getPatientId());
|
|
|
mzZyReq.setResponceType(mzPatientMi.getResponseType());
|
|
|
}
|
|
|
- if (setEmrProcess) {
|
|
|
- String emrProcess = "";
|
|
|
- if (xyzlContent != null) {
|
|
|
- emrProcess += xyzlContent;
|
|
|
- }
|
|
|
- if (zyzlContent != null) {
|
|
|
- emrProcess += zyzlContent;
|
|
|
- }
|
|
|
- if (jcjyContent != null) {
|
|
|
- emrProcess += jcjyContent;
|
|
|
- }
|
|
|
- if (zlzlContent != null) {
|
|
|
- emrProcess += zlzlContent;
|
|
|
- }
|
|
|
- mzPrescriptionVo.getMzBlRecord().setEmrProcess(emrProcess);
|
|
|
- mzPrescriptionVo.getMzBlRecord().setEmrFzjc(emrFzjc);
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -2214,6 +2216,34 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
return mzChargeDetailMapper.selectCountMzChargeDetailByPatientIdAndChargeItemCode(patientId, chargeItemCode);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void setMjGroupForTempDetail(List<MzChargeDetail> mzChargeDetailList) {
|
|
|
+ if(mzChargeDetailList==null || mzChargeDetailList.size()==0){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //麻、精一
|
|
|
+ List<MzZdYpYsh> mjyList = mzZdYpYshMapper.selectMjyByCommonParams(null, null);
|
|
|
+ Set<String> mjySet = null;
|
|
|
+ if (mjyList != null) {
|
|
|
+ mjySet = mjyList.stream().map(m -> m.getCode()).collect(Collectors.toSet());
|
|
|
+ }
|
|
|
+ //精二
|
|
|
+ List<MzZdYpYsh> jeList = mzZdYpYshMapper.selectJeByCommonParams(null, null);
|
|
|
+ Set<String> jeSet = null;
|
|
|
+ if (jeList != null) {
|
|
|
+ jeSet = jeList.stream().map(m -> m.getCode()).collect(Collectors.toSet());
|
|
|
+ }
|
|
|
+ for(MzChargeDetail mzChargeDetail:mzChargeDetailList){
|
|
|
+ if (mjySet != null && mjySet.contains(mzChargeDetail.getChargeItemCode().trim())) {
|
|
|
+ //麻精处方
|
|
|
+ mzChargeDetail.setGroupNo("111");
|
|
|
+ } else if (jeSet != null && jeSet.contains(mzChargeDetail.getChargeItemCode().trim())) {
|
|
|
+ //精二处方
|
|
|
+ mzChargeDetail.setGroupNo("131");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public Clinic nucleicAcidApplication(String patientId) throws MzException {
|
|
|
MzPatientMi mzPatientMi = mzPatientMiMapper.selectByPatientId(patientId);
|
|
|
@@ -2583,24 +2613,6 @@ public class MzChargeDetailServiceImpl implements MzChargeDetailService {
|
|
|
temSet.add(sbd.append(mzChargeDetail.getPatientId()).append("_").append(mzChargeDetail.getTimes()).append("_").append(mzChargeDetail.getReceiptNo()).append("_").append(mzChargeDetail.getItemNo()).append("_").append(mzChargeDetail.getChargeItemCode()).toString());
|
|
|
}
|
|
|
}
|
|
|
-// if (hisMzChargeDetailList != null && hisMzChargeDetailList.size() > 0) {
|
|
|
-// if (supplyChargeItemCodeSet == null) {
|
|
|
-// List<MzZdSupplyCharge> mzZdSupplyChargeList = mzZdSupplyChargeService.queryMzZdSupplyChargeByCodeList(SupplyTypeEnum.getAllSupplyTypeCode());
|
|
|
-// if (mzZdSupplyChargeList != null && mzZdSupplyChargeList.size() > 0) {
|
|
|
-// supplyChargeItemCodeSet = mzZdSupplyChargeList.stream().map(s -> s.getChargeCode()).collect(Collectors.toSet());
|
|
|
-// }
|
|
|
-// }
|
|
|
-// for (MzChargeDetail mzChargeDetail : hisMzChargeDetailList) {
|
|
|
-// if (temSet.contains(sbd.append(mzChargeDetail.getPatientId()).append("_").append(mzChargeDetail.getTimes()).append("_").append(mzChargeDetail.getReceiptNo()).append("_").append(mzChargeDetail.getItemNo()).append("_").append(mzChargeDetail.getChargeItemCode()).toString())) {
|
|
|
-// continue;
|
|
|
-// }
|
|
|
-// //是给药方式产生的诊疗项目,不添加进构造的处方
|
|
|
-// if (supplyChargeItemCodeSet != null && supplyChargeItemCodeSet.contains(mzChargeDetail.getChargeItemCode())) {
|
|
|
-// supplyList.add(mzChargeDetail);
|
|
|
-// }
|
|
|
-// mzChargeDetailList.add(mzChargeDetail);
|
|
|
-// }
|
|
|
-// }
|
|
|
}
|
|
|
//给药方式对应的诊疗项目不用回写到处方页面
|
|
|
if (supplyList != null && mzChargeDetailList != null) {
|