|
@@ -20,7 +20,16 @@ import com.diagbot.entity.node.OralMedicine;
|
|
import com.diagbot.entity.node.PacsDescribe;
|
|
import com.diagbot.entity.node.PacsDescribe;
|
|
import com.diagbot.entity.node.Vital;
|
|
import com.diagbot.entity.node.Vital;
|
|
import com.diagbot.entity.node.YiBaoOperationName;
|
|
import com.diagbot.entity.node.YiBaoOperationName;
|
|
-import com.diagbot.entity.relationship.*;
|
|
|
|
|
|
+import com.diagbot.entity.relationship.YiBaoOperationNameClinicalFinding;
|
|
|
|
+import com.diagbot.entity.relationship.YiBaoOperationNameConflictDevice;
|
|
|
|
+import com.diagbot.entity.relationship.YiBaoOperationNameDisease;
|
|
|
|
+import com.diagbot.entity.relationship.YiBaoOperationNameGender;
|
|
|
|
+import com.diagbot.entity.relationship.YiBaoOperationNameGroup;
|
|
|
|
+import com.diagbot.entity.relationship.YiBaoOperationNameLis;
|
|
|
|
+import com.diagbot.entity.relationship.YiBaoOperationNameMedAllergen;
|
|
|
|
+import com.diagbot.entity.relationship.YiBaoOperationNameOralMedicine;
|
|
|
|
+import com.diagbot.entity.relationship.YiBaoOperationNamePacsDescribe;
|
|
|
|
+import com.diagbot.entity.relationship.YiBaoOperationNameVital;
|
|
import com.diagbot.enums.TypeEnum;
|
|
import com.diagbot.enums.TypeEnum;
|
|
import com.diagbot.model.label.PacsLabel;
|
|
import com.diagbot.model.label.PacsLabel;
|
|
import com.diagbot.model.label.VitalLabel;
|
|
import com.diagbot.model.label.VitalLabel;
|
|
@@ -28,14 +37,44 @@ import com.diagbot.util.CoreUtil;
|
|
import com.diagbot.util.ListUtil;
|
|
import com.diagbot.util.ListUtil;
|
|
import com.diagbot.util.NeoUtil;
|
|
import com.diagbot.util.NeoUtil;
|
|
import com.diagbot.util.StringUtil;
|
|
import com.diagbot.util.StringUtil;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
import java.util.Set;
|
|
|
|
|
|
|
|
+@Component
|
|
public class YiBaoOperationNameNode {
|
|
public class YiBaoOperationNameNode {
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ MedAllergenRepository medAllergenRepository;
|
|
|
|
+ @Autowired
|
|
|
|
+ GenderRepository genderRepository;
|
|
|
|
+ @Autowired
|
|
|
|
+ LisRepository lisRepository;
|
|
|
|
+ @Autowired
|
|
|
|
+ GroupRepository groupRepository;
|
|
|
|
+ @Autowired
|
|
|
|
+ ClinicalFindingRepository clinicalFindingRepository;
|
|
|
|
+ @Autowired
|
|
|
|
+ VitalRepository vitalRepository;
|
|
|
|
+ @Autowired
|
|
|
|
+ AgeRepository ageRepository;
|
|
|
|
+ @Autowired
|
|
|
|
+ DiseaseRepository diseaseRepository;
|
|
|
|
+ @Autowired
|
|
|
|
+ BillConflictItemRepository billConflictItemRepository;
|
|
|
|
+ @Autowired
|
|
|
|
+ ConflictDeviceRepository conflictDeviceRepository;
|
|
|
|
+ @Autowired
|
|
|
|
+ OralMedicineRepository oralMedicineRepository;
|
|
|
|
+ @Autowired
|
|
|
|
+ PacsDescribeRepository pacsDescribeRepository;
|
|
|
|
+ @Autowired
|
|
|
|
+ AllergenRepository allergenRepository;
|
|
|
|
+
|
|
|
|
|
|
public OperationBillNeoDTO YiBaoOperationtoOperationDTO(YiBaoOperationName operation) {
|
|
public OperationBillNeoDTO YiBaoOperationtoOperationDTO(YiBaoOperationName operation) {
|
|
OperationBillNeoDTO opBillNeoDTO = new OperationBillNeoDTO();
|
|
OperationBillNeoDTO opBillNeoDTO = new OperationBillNeoDTO();
|
|
@@ -104,7 +143,7 @@ public class YiBaoOperationNameNode {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- Set<YiBaoOperationNameOralMedicine> yiBaoOperationNameOralMeds= operation.getOralmeds();
|
|
|
|
|
|
+ Set<YiBaoOperationNameOralMedicine> yiBaoOperationNameOralMeds = operation.getOralmeds();
|
|
for (YiBaoOperationNameOralMedicine yiBaoOperationNameOralMed : yiBaoOperationNameOralMeds) {
|
|
for (YiBaoOperationNameOralMedicine yiBaoOperationNameOralMed : yiBaoOperationNameOralMeds) {
|
|
if (NeoUtil.isExist(yiBaoOperationNameOralMed)) {
|
|
if (NeoUtil.isExist(yiBaoOperationNameOralMed)) {
|
|
if (NeoUtil.isExist(yiBaoOperationNameOralMed.getOralMedicine())) {
|
|
if (NeoUtil.isExist(yiBaoOperationNameOralMed.getOralMedicine())) {
|
|
@@ -326,7 +365,7 @@ public class YiBaoOperationNameNode {
|
|
String cond = operation.getHighriskcond();
|
|
String cond = operation.getHighriskcond();
|
|
JSONObject jobj = JSONObject.parseObject(cond);
|
|
JSONObject jobj = JSONObject.parseObject(cond);
|
|
|
|
|
|
- if (null!=jobj) {
|
|
|
|
|
|
+ if (null != jobj) {
|
|
// 判断年龄
|
|
// 判断年龄
|
|
JSONObject ageobj = jobj.getJSONObject("年龄");
|
|
JSONObject ageobj = jobj.getJSONObject("年龄");
|
|
|
|
|
|
@@ -419,5 +458,244 @@ public class YiBaoOperationNameNode {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 更新关系状态属性
|
|
|
|
+ */
|
|
|
|
+ public void updateRelationExt(YiBaoOperationName yiBaoOperationName, String relname, Integer status, Integer ruleType, String e_name, YiBaoOperationNameRepository yiBaoOperationNameRepository) {
|
|
|
|
+ Boolean isExist = false;
|
|
|
|
+ try {
|
|
|
|
+ switch (relname) {
|
|
|
|
+ case "医保手术和操作名称禁忌性别":
|
|
|
|
+ Gender gender = genderRepository.findByNameIs(e_name).get(0);
|
|
|
|
+ YiBaoOperationNameGender yiBaoOperationNameGender = new YiBaoOperationNameGender();
|
|
|
|
+ yiBaoOperationNameGender.setGender(gender);
|
|
|
|
+ yiBaoOperationNameGender.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ yiBaoOperationNameGender.setStatus(status);
|
|
|
|
+ yiBaoOperationNameGender.setRuleType(ruleType);
|
|
|
|
+ yiBaoOperationName.setGender(yiBaoOperationNameGender);
|
|
|
|
+ break;
|
|
|
|
+ case "医保手术和操作名称禁忌禁忌人群":
|
|
|
|
+ Group group = groupRepository.findByNameIs(e_name).get(0);
|
|
|
|
+ Set<YiBaoOperationNameGroup> yiBaoOperationNameGroupSet = yiBaoOperationName.getGroups();
|
|
|
|
+ isExist = false;
|
|
|
|
+ for (YiBaoOperationNameGroup item : yiBaoOperationNameGroupSet) {
|
|
|
|
+ if (item.getGroup() != null
|
|
|
|
+ && item.getGroup().getName().equals(e_name)) {
|
|
|
|
+ isExist = true;
|
|
|
|
+ item.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ item.setGroup(group);
|
|
|
|
+ item.setStatus(status);
|
|
|
|
+ item.setRuleType(ruleType);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (!isExist) {
|
|
|
|
+ YiBaoOperationNameGroup yiBaoOperationNameGroup = new YiBaoOperationNameGroup();
|
|
|
|
+ yiBaoOperationNameGroup.setGroup(group);
|
|
|
|
+ yiBaoOperationNameGroup.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ yiBaoOperationNameGroup.setStatus(status);
|
|
|
|
+ yiBaoOperationNameGroup.setRuleType(ruleType);
|
|
|
|
+ yiBaoOperationNameGroupSet.add(yiBaoOperationNameGroup);
|
|
|
|
+ }
|
|
|
|
+ yiBaoOperationName.setGroups(yiBaoOperationNameGroupSet);
|
|
|
|
+ break;
|
|
|
|
+ case "医保手术和操作名称禁忌药物过敏原":
|
|
|
|
+ MedAllergen medAllergen = medAllergenRepository.findByNameIs(e_name).get(0);
|
|
|
|
+ Set<YiBaoOperationNameMedAllergen> yiBaoOperationNameMedAllergenSet = yiBaoOperationName.getMedallergens();
|
|
|
|
+ isExist = false;
|
|
|
|
+ for (YiBaoOperationNameMedAllergen item : yiBaoOperationNameMedAllergenSet) {
|
|
|
|
+ if (item.getMedAllergen() != null
|
|
|
|
+ && item.getMedAllergen().getName().equals(e_name)) {
|
|
|
|
+ isExist = true;
|
|
|
|
+ item.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ item.setMedAllergen(medAllergen);
|
|
|
|
+ item.setStatus(status);
|
|
|
|
+ item.setRuleType(ruleType);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (!isExist) {
|
|
|
|
+ YiBaoOperationNameMedAllergen yiBaoOperationNameMedAllergen = new YiBaoOperationNameMedAllergen();
|
|
|
|
+ yiBaoOperationNameMedAllergen.setMedAllergen(medAllergen);
|
|
|
|
+ yiBaoOperationNameMedAllergen.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ yiBaoOperationNameMedAllergen.setStatus(status);
|
|
|
|
+ yiBaoOperationNameMedAllergen.setRuleType(ruleType);
|
|
|
|
+ yiBaoOperationNameMedAllergenSet.add(yiBaoOperationNameMedAllergen);
|
|
|
|
+ }
|
|
|
|
+ yiBaoOperationName.setMedallergens(yiBaoOperationNameMedAllergenSet);
|
|
|
|
+ break;
|
|
|
|
+ case "医保手术和操作名称禁忌临床表现":
|
|
|
|
+ ClinicalFinding clinicalFinding = clinicalFindingRepository.findByNameIs(e_name).get(0);
|
|
|
|
+ Set<YiBaoOperationNameClinicalFinding> yiBaoOperationNameClinicalFindingSet = yiBaoOperationName.getClinicalFindings();
|
|
|
|
+ isExist = false;
|
|
|
|
+ for (YiBaoOperationNameClinicalFinding item : yiBaoOperationNameClinicalFindingSet) {
|
|
|
|
+ if (item.getClinicalFinding() != null
|
|
|
|
+ && item.getClinicalFinding().getName().equals(e_name)) {
|
|
|
|
+ isExist = true;
|
|
|
|
+ item.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ item.setClinicalFinding(clinicalFinding);
|
|
|
|
+ item.setStatus(status);
|
|
|
|
+ item.setRuleType(ruleType);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (!isExist) {
|
|
|
|
+ YiBaoOperationNameClinicalFinding yiBaoOperationNameClinicalFinding = new YiBaoOperationNameClinicalFinding();
|
|
|
|
+ yiBaoOperationNameClinicalFinding.setClinicalFinding(clinicalFinding);
|
|
|
|
+ yiBaoOperationNameClinicalFinding.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ yiBaoOperationNameClinicalFinding.setStatus(status);
|
|
|
|
+ yiBaoOperationNameClinicalFinding.setRuleType(ruleType);
|
|
|
|
+ yiBaoOperationNameClinicalFindingSet.add(yiBaoOperationNameClinicalFinding);
|
|
|
|
+ }
|
|
|
|
+ yiBaoOperationName.setClinicalFindings(yiBaoOperationNameClinicalFindingSet);
|
|
|
|
+ break;
|
|
|
|
+ case "医保手术和操作名称禁忌实验室检查":
|
|
|
|
+ Lis lis = lisRepository.findByNameIs(e_name).get(0);
|
|
|
|
+ Set<YiBaoOperationNameLis> yiBaoOperationNameLisSet = yiBaoOperationName.getLiss();
|
|
|
|
+ isExist = false;
|
|
|
|
+ for (YiBaoOperationNameLis item : yiBaoOperationNameLisSet) {
|
|
|
|
+ if (item.getLis() != null
|
|
|
|
+ && item.getLis().getName().equals(e_name)) {
|
|
|
|
+ isExist = true;
|
|
|
|
+ item.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ item.setLis(lis);
|
|
|
|
+ item.setStatus(status);
|
|
|
|
+ item.setRuleType(ruleType);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (!isExist) {
|
|
|
|
+ YiBaoOperationNameLis yiBaoOperationNameLis = new YiBaoOperationNameLis();
|
|
|
|
+ yiBaoOperationNameLis.setLis(lis);
|
|
|
|
+ yiBaoOperationNameLis.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ yiBaoOperationNameLis.setStatus(status);
|
|
|
|
+ yiBaoOperationNameLis.setRuleType(ruleType);
|
|
|
|
+ yiBaoOperationNameLisSet.add(yiBaoOperationNameLis);
|
|
|
|
+ }
|
|
|
|
+ yiBaoOperationName.setLiss(yiBaoOperationNameLisSet);
|
|
|
|
+ break;
|
|
|
|
+ case "医保手术和操作名称禁忌疾病":
|
|
|
|
+ Disease disease = diseaseRepository.findByNameIs(e_name).get(0);
|
|
|
|
+ Set<YiBaoOperationNameDisease> yiBaoOperationNameDiseaseSet = yiBaoOperationName.getDiseases();
|
|
|
|
+ isExist = false;
|
|
|
|
+ for (YiBaoOperationNameDisease item : yiBaoOperationNameDiseaseSet) {
|
|
|
|
+ if (item.getDisease() != null
|
|
|
|
+ && item.getDisease().getName().equals(e_name)) {
|
|
|
|
+ isExist = true;
|
|
|
|
+ item.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ item.setDisease(disease);
|
|
|
|
+ item.setStatus(status);
|
|
|
|
+ item.setRuleType(ruleType);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (!isExist) {
|
|
|
|
+ YiBaoOperationNameDisease yiBaoOperationNameDisease = new YiBaoOperationNameDisease();
|
|
|
|
+ yiBaoOperationNameDisease.setDisease(disease);
|
|
|
|
+ yiBaoOperationNameDisease.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ yiBaoOperationNameDisease.setStatus(status);
|
|
|
|
+ yiBaoOperationNameDisease.setRuleType(ruleType);
|
|
|
|
+ yiBaoOperationNameDiseaseSet.add(yiBaoOperationNameDisease);
|
|
|
|
+ }
|
|
|
|
+ yiBaoOperationName.setDiseases(yiBaoOperationNameDiseaseSet);
|
|
|
|
+ break;
|
|
|
|
+ case "医保手术和操作名称禁忌禁忌医疗器械及物品":
|
|
|
|
+ ConflictDevice conflictDevice = conflictDeviceRepository.findByNameIs(e_name).get(0);
|
|
|
|
+ Set<YiBaoOperationNameConflictDevice> yiBaoOperationNameConflictDeviceSet = yiBaoOperationName.getConflictdevices();
|
|
|
|
+ isExist = false;
|
|
|
|
+ for (YiBaoOperationNameConflictDevice item : yiBaoOperationNameConflictDeviceSet) {
|
|
|
|
+ if (item.getConflictDevice() != null
|
|
|
|
+ && item.getConflictDevice().getName().equals(e_name)) {
|
|
|
|
+ isExist = true;
|
|
|
|
+ item.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ item.setConflictDevice(conflictDevice);
|
|
|
|
+ item.setStatus(status);
|
|
|
|
+ item.setRuleType(ruleType);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (!isExist) {
|
|
|
|
+ YiBaoOperationNameConflictDevice yiBaoOperationNameConflictDevice = new YiBaoOperationNameConflictDevice();
|
|
|
|
+ yiBaoOperationNameConflictDevice.setConflictDevice(conflictDevice);
|
|
|
|
+ yiBaoOperationNameConflictDevice.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ yiBaoOperationNameConflictDevice.setStatus(status);
|
|
|
|
+ yiBaoOperationNameConflictDevice.setRuleType(ruleType);
|
|
|
|
+ yiBaoOperationNameConflictDeviceSet.add(yiBaoOperationNameConflictDevice);
|
|
|
|
+ }
|
|
|
|
+ yiBaoOperationName.setConflictdevices(yiBaoOperationNameConflictDeviceSet);
|
|
|
|
+ break;
|
|
|
|
+ case "医保手术和操作名称禁忌体征":
|
|
|
|
+ Vital vital = vitalRepository.findByNameIs(e_name).get(0);
|
|
|
|
+ Set<YiBaoOperationNameVital> yiBaoOperationNameVitalSet = yiBaoOperationName.getVitals();
|
|
|
|
+ isExist = false;
|
|
|
|
+ for (YiBaoOperationNameVital item : yiBaoOperationNameVitalSet) {
|
|
|
|
+ if (item.getVital() != null
|
|
|
|
+ && item.getVital().getName().equals(e_name)) {
|
|
|
|
+ isExist = true;
|
|
|
|
+ item.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ item.setVital(vital);
|
|
|
|
+ item.setStatus(status);
|
|
|
|
+ item.setRuleType(ruleType);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (!isExist) {
|
|
|
|
+ YiBaoOperationNameVital yiBaoOperationNameVital = new YiBaoOperationNameVital();
|
|
|
|
+ yiBaoOperationNameVital.setVital(vital);
|
|
|
|
+ yiBaoOperationNameVital.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ yiBaoOperationNameVital.setStatus(status);
|
|
|
|
+ yiBaoOperationNameVital.setRuleType(ruleType);
|
|
|
|
+ yiBaoOperationNameVitalSet.add(yiBaoOperationNameVital);
|
|
|
|
+ }
|
|
|
|
+ yiBaoOperationName.setVitals(yiBaoOperationNameVitalSet);
|
|
|
|
+ break;
|
|
|
|
+ case "医保手术和操作名称禁忌服用药品":
|
|
|
|
+ OralMedicine oralMedicine = oralMedicineRepository.findByNameIs(e_name).get(0);
|
|
|
|
+ Set<YiBaoOperationNameOralMedicine> yiBaoOperationNameOralMedicineSet = yiBaoOperationName.getOralmeds();
|
|
|
|
+ isExist = false;
|
|
|
|
+ for (YiBaoOperationNameOralMedicine item : yiBaoOperationNameOralMedicineSet) {
|
|
|
|
+ if (item.getOralMedicine() != null
|
|
|
|
+ && item.getOralMedicine().getName().equals(e_name)) {
|
|
|
|
+ isExist = true;
|
|
|
|
+ item.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ item.setOralMedicine(oralMedicine);
|
|
|
|
+ item.setStatus(status);
|
|
|
|
+ item.setRuleType(ruleType);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (!isExist) {
|
|
|
|
+ YiBaoOperationNameOralMedicine yiBaoOperationNameOralMedicine = new YiBaoOperationNameOralMedicine();
|
|
|
|
+ yiBaoOperationNameOralMedicine.setOralMedicine(oralMedicine);
|
|
|
|
+ yiBaoOperationNameOralMedicine.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ yiBaoOperationNameOralMedicine.setStatus(status);
|
|
|
|
+ yiBaoOperationNameOralMedicine.setRuleType(ruleType);
|
|
|
|
+ yiBaoOperationNameOralMedicineSet.add(yiBaoOperationNameOralMedicine);
|
|
|
|
+ }
|
|
|
|
+ yiBaoOperationName.setOralmeds(yiBaoOperationNameOralMedicineSet);
|
|
|
|
+ break;
|
|
|
|
+ case "医保手术和操作名称禁忌辅助检查名称描述":
|
|
|
|
+ PacsDescribe pacsDescribe = pacsDescribeRepository.findByNameIs(e_name).get(0);
|
|
|
|
+ Set<YiBaoOperationNamePacsDescribe> yiBaoOperationNamePacsDescribeSet = yiBaoOperationName.getPacsdescs();
|
|
|
|
+ isExist = false;
|
|
|
|
+ for (YiBaoOperationNamePacsDescribe item : yiBaoOperationNamePacsDescribeSet) {
|
|
|
|
+ if (item.getPacsDescribe() != null
|
|
|
|
+ && item.getPacsDescribe().getName().equals(e_name)) {
|
|
|
|
+ isExist = true;
|
|
|
|
+ item.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ item.setPacsDescribe(pacsDescribe);
|
|
|
|
+ item.setStatus(status);
|
|
|
|
+ item.setRuleType(ruleType);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (!isExist) {
|
|
|
|
+ YiBaoOperationNamePacsDescribe yiBaoOperationNamePacsDescribe = new YiBaoOperationNamePacsDescribe();
|
|
|
|
+ yiBaoOperationNamePacsDescribe.setPacsDescribe(pacsDescribe);
|
|
|
|
+ yiBaoOperationNamePacsDescribe.setYiBaoOperationName(yiBaoOperationName);
|
|
|
|
+ yiBaoOperationNamePacsDescribe.setStatus(status);
|
|
|
|
+ yiBaoOperationNamePacsDescribe.setRuleType(ruleType);
|
|
|
|
+ yiBaoOperationNamePacsDescribeSet.add(yiBaoOperationNamePacsDescribe);
|
|
|
|
+ }
|
|
|
|
+ yiBaoOperationName.setPacsdescs(yiBaoOperationNamePacsDescribeSet);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ yiBaoOperationNameRepository.save(yiBaoOperationName, 1);
|
|
|
|
+ } catch (Exception ex) {
|
|
|
|
+ ex.printStackTrace();
|
|
|
|
+ } finally {
|
|
|
|
|
|
-}
|
|
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|