|
@@ -3,19 +3,71 @@ package com.diagbot.repository;
|
|
|
import com.diagbot.dto.BillNeoDTO;
|
|
|
import com.diagbot.dto.PacsBillNeoDTO;
|
|
|
import com.diagbot.entity.BaseNodeInfo;
|
|
|
+import com.diagbot.entity.node.Allergen;
|
|
|
import com.diagbot.entity.node.BillConflictItem;
|
|
|
import com.diagbot.entity.node.ClinicalFinding;
|
|
|
+import com.diagbot.entity.node.ConflictDevice;
|
|
|
+import com.diagbot.entity.node.Disease;
|
|
|
+import com.diagbot.entity.node.Gender;
|
|
|
+import com.diagbot.entity.node.Group;
|
|
|
+import com.diagbot.entity.node.Lis;
|
|
|
+import com.diagbot.entity.node.MedAllergen;
|
|
|
+import com.diagbot.entity.node.OralMedicine;
|
|
|
+import com.diagbot.entity.node.PacsDescribe;
|
|
|
import com.diagbot.entity.node.PacsName;
|
|
|
-import com.diagbot.entity.relationship.*;
|
|
|
-import com.diagbot.entity.relationship.base.BaseRelation;
|
|
|
+import com.diagbot.entity.node.Vital;
|
|
|
+import com.diagbot.entity.relationship.PacsNameAllergen;
|
|
|
+import com.diagbot.entity.relationship.PacsNameBillConflictItem;
|
|
|
+import com.diagbot.entity.relationship.PacsNameClinicalFinding;
|
|
|
+import com.diagbot.entity.relationship.PacsNameConflictDevice;
|
|
|
+import com.diagbot.entity.relationship.PacsNameDisease;
|
|
|
+import com.diagbot.entity.relationship.PacsNameGender;
|
|
|
+import com.diagbot.entity.relationship.PacsNameGroup;
|
|
|
+import com.diagbot.entity.relationship.PacsNameLis;
|
|
|
+import com.diagbot.entity.relationship.PacsNameMedAllergen;
|
|
|
+import com.diagbot.entity.relationship.PacsNameOralMedicine;
|
|
|
+import com.diagbot.entity.relationship.PacsNamePacsDescribe;
|
|
|
+import com.diagbot.entity.relationship.PacsNameVital;
|
|
|
import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.util.NeoUtil;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
|
-import java.util.*;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
public class PacsNameNode {
|
|
|
|
|
|
+ @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 PacsBillNeoDTO PacstoPACSDTO(PacsName pacs) {
|
|
|
PacsBillNeoDTO pacsBillNeoDTO = new PacsBillNeoDTO();
|
|
@@ -409,6 +461,308 @@ public class PacsNameNode {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 更新关系状态属性
|
|
|
+ */
|
|
|
+ public void updateRelationExt(PacsName pacsName, String relname, Integer status, Integer ruleType, String e_name, PacsNameRepository pacsNameRepository) {
|
|
|
+ Boolean isExist = false;
|
|
|
+ try {
|
|
|
+ switch (relname) {
|
|
|
+ case "辅助检查名称禁忌性别":
|
|
|
+ Gender gender = genderRepository.findByNameIs(e_name).get(0);
|
|
|
+ PacsNameGender pacsNameGender = new PacsNameGender();
|
|
|
+ pacsNameGender.setGender(gender);
|
|
|
+ pacsNameGender.setPacsName(pacsName);
|
|
|
+ pacsNameGender.setStatus(status);
|
|
|
+ pacsNameGender.setRuleType(ruleType);
|
|
|
+ pacsName.setPacsNameGender(pacsNameGender);
|
|
|
+ pacsNameRepository.save(pacsName, 1);
|
|
|
+ break;
|
|
|
+ case "辅助检查名称禁忌禁忌人群":
|
|
|
+ Group group = groupRepository.findByNameIs(e_name).get(0);
|
|
|
+ Set<PacsNameGroup> pacsNameGroupSet = pacsName.getPacsNameGroups();
|
|
|
+ isExist = false;
|
|
|
+ for (PacsNameGroup item : pacsNameGroupSet) {
|
|
|
+ if (item.getGroup() != null
|
|
|
+ && item.getGroup().getName().equals(e_name)) {
|
|
|
+ isExist = true;
|
|
|
+ item.setPacsName(pacsName);
|
|
|
+ item.setGroup(group);
|
|
|
+ item.setStatus(status);
|
|
|
+ item.setRuleType(ruleType);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!isExist) {
|
|
|
+ PacsNameGroup pacsNameGroup = new PacsNameGroup();
|
|
|
+ pacsNameGroup.setGroup(group);
|
|
|
+ pacsNameGroup.setPacsName(pacsName);
|
|
|
+ pacsNameGroup.setStatus(status);
|
|
|
+ pacsNameGroup.setRuleType(ruleType);
|
|
|
+ pacsNameGroupSet.add(pacsNameGroup);
|
|
|
+ }
|
|
|
+ pacsName.setPacsNameGroups(pacsNameGroupSet);
|
|
|
+ pacsNameRepository.save(pacsName, 1);
|
|
|
+ break;
|
|
|
+ case "辅助检查名称禁忌药物过敏原":
|
|
|
+ MedAllergen medAllergen = medAllergenRepository.findByNameIs(e_name).get(0);
|
|
|
+ Set<PacsNameMedAllergen> pacsNameMedAllergenSet = pacsName.getPacsNameMedallergens();
|
|
|
+ isExist = false;
|
|
|
+ for (PacsNameMedAllergen item : pacsNameMedAllergenSet) {
|
|
|
+ if (item.getMedAllergen() != null
|
|
|
+ && item.getMedAllergen().getName().equals(e_name)) {
|
|
|
+ isExist = true;
|
|
|
+ item.setPacsName(pacsName);
|
|
|
+ item.setMedAllergen(medAllergen);
|
|
|
+ item.setStatus(status);
|
|
|
+ item.setRuleType(ruleType);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!isExist) {
|
|
|
+ PacsNameMedAllergen pacsNameMedAllergen = new PacsNameMedAllergen();
|
|
|
+ pacsNameMedAllergen.setMedAllergen(medAllergen);
|
|
|
+ pacsNameMedAllergen.setPacsName(pacsName);
|
|
|
+ pacsNameMedAllergen.setStatus(status);
|
|
|
+ pacsNameMedAllergen.setRuleType(ruleType);
|
|
|
+ pacsNameMedAllergenSet.add(pacsNameMedAllergen);
|
|
|
+ }
|
|
|
+ pacsName.setPacsNameMedallergens(pacsNameMedAllergenSet);
|
|
|
+ pacsNameRepository.save(pacsName, 1);
|
|
|
+ break;
|
|
|
+ case "辅助检查名称禁忌临床表现":
|
|
|
+ ClinicalFinding clinicalFinding = clinicalFindingRepository.findByNameIs(e_name).get(0);
|
|
|
+ Set<PacsNameClinicalFinding> pacsNameClinicalFindingSet = pacsName.getPacsNameClinicalfindings();
|
|
|
+ isExist = false;
|
|
|
+ for (PacsNameClinicalFinding item : pacsNameClinicalFindingSet) {
|
|
|
+ if (item.getClinicalFinding() != null
|
|
|
+ && item.getClinicalFinding().getName().equals(e_name)) {
|
|
|
+ isExist = true;
|
|
|
+ item.setPacsName(pacsName);
|
|
|
+ item.setClinicalFinding(clinicalFinding);
|
|
|
+ item.setStatus(status);
|
|
|
+ item.setRuleType(ruleType);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!isExist) {
|
|
|
+ PacsNameClinicalFinding pacsNameClinicalFinding = new PacsNameClinicalFinding();
|
|
|
+ pacsNameClinicalFinding.setClinicalFinding(clinicalFinding);
|
|
|
+ pacsNameClinicalFinding.setPacsName(pacsName);
|
|
|
+ pacsNameClinicalFinding.setStatus(status);
|
|
|
+ pacsNameClinicalFinding.setRuleType(ruleType);
|
|
|
+ pacsNameClinicalFindingSet.add(pacsNameClinicalFinding);
|
|
|
+ }
|
|
|
+ pacsName.setPacsNameClinicalfindings(pacsNameClinicalFindingSet);
|
|
|
+ pacsNameRepository.save(pacsName, 1);
|
|
|
+ break;
|
|
|
+ case "辅助检查名称禁忌实验室检查名称":
|
|
|
+ break;
|
|
|
+ case "辅助检查名称禁忌实验室检查":
|
|
|
+ Lis lis = lisRepository.findByNameIs(e_name).get(0);
|
|
|
+ Set<PacsNameLis> pacsNameLisSet = pacsName.getPacsNameLis();
|
|
|
+ isExist = false;
|
|
|
+ for (PacsNameLis item : pacsNameLisSet) {
|
|
|
+ if (item.getLis() != null
|
|
|
+ && item.getLis().getName().equals(e_name)) {
|
|
|
+ isExist = true;
|
|
|
+ item.setPacsName(pacsName);
|
|
|
+ item.setLis(lis);
|
|
|
+ item.setStatus(status);
|
|
|
+ item.setRuleType(ruleType);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!isExist) {
|
|
|
+ PacsNameLis pacsNameLis = new PacsNameLis();
|
|
|
+ pacsNameLis.setLis(lis);
|
|
|
+ pacsNameLis.setPacsName(pacsName);
|
|
|
+ pacsNameLis.setStatus(status);
|
|
|
+ pacsNameLis.setRuleType(ruleType);
|
|
|
+ pacsNameLisSet.add(pacsNameLis);
|
|
|
+ }
|
|
|
+ pacsName.setPacsNameLis(pacsNameLisSet);
|
|
|
+ pacsNameRepository.save(pacsName, 1);
|
|
|
+ break;
|
|
|
+ case "辅助检查名称禁忌疾病":
|
|
|
+ Disease disease = diseaseRepository.findByNameIs(e_name).get(0);
|
|
|
+ Set<PacsNameDisease> pacsNameDiseaseSet = pacsName.getPacsNameDiseases();
|
|
|
+ isExist = false;
|
|
|
+ for (PacsNameDisease item : pacsNameDiseaseSet) {
|
|
|
+ if (item.getDisease() != null
|
|
|
+ && item.getDisease().getName().equals(e_name)) {
|
|
|
+ isExist = true;
|
|
|
+ item.setPacsName(pacsName);
|
|
|
+ item.setDisease(disease);
|
|
|
+ item.setStatus(status);
|
|
|
+ item.setRuleType(ruleType);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!isExist) {
|
|
|
+ PacsNameDisease pacsNameDisease = new PacsNameDisease();
|
|
|
+ pacsNameDisease.setDisease(disease);
|
|
|
+ pacsNameDisease.setPacsName(pacsName);
|
|
|
+ pacsNameDisease.setStatus(status);
|
|
|
+ pacsNameDisease.setRuleType(ruleType);
|
|
|
+ pacsNameDiseaseSet.add(pacsNameDisease);
|
|
|
+ }
|
|
|
+ pacsName.setPacsNameDiseases(pacsNameDiseaseSet);
|
|
|
+ pacsNameRepository.save(pacsName, 1);
|
|
|
+ break;
|
|
|
+ case "辅助检查名称禁忌禁忌医疗器械及物品":
|
|
|
+ ConflictDevice conflictDevice = conflictDeviceRepository.findByNameIs(e_name).get(0);
|
|
|
+ Set<PacsNameConflictDevice> pacsNameConflictDeviceSet = pacsName.getPacsNameConflictdevices();
|
|
|
+ isExist = false;
|
|
|
+ for (PacsNameConflictDevice item : pacsNameConflictDeviceSet) {
|
|
|
+ if (item.getConflictDevice() != null
|
|
|
+ && item.getConflictDevice().getName().equals(e_name)) {
|
|
|
+ isExist = true;
|
|
|
+ item.setPacsName(pacsName);
|
|
|
+ item.setConflictDevice(conflictDevice);
|
|
|
+ item.setStatus(status);
|
|
|
+ item.setRuleType(ruleType);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!isExist) {
|
|
|
+ PacsNameConflictDevice pacsNameConflictDevice = new PacsNameConflictDevice();
|
|
|
+ pacsNameConflictDevice.setConflictDevice(conflictDevice);
|
|
|
+ pacsNameConflictDevice.setPacsName(pacsName);
|
|
|
+ pacsNameConflictDevice.setStatus(status);
|
|
|
+ pacsNameConflictDevice.setRuleType(ruleType);
|
|
|
+ pacsNameConflictDeviceSet.add(pacsNameConflictDevice);
|
|
|
+ }
|
|
|
+ pacsName.setPacsNameConflictdevices(pacsNameConflictDeviceSet);
|
|
|
+ pacsNameRepository.save(pacsName, 1);
|
|
|
+ break;
|
|
|
+ case "辅助检查名称禁忌体征":
|
|
|
+ Vital vital = vitalRepository.findByNameIs(e_name).get(0);
|
|
|
+ Set<PacsNameVital> pacsNameVitalSet = pacsName.getPacsNameVitals();
|
|
|
+ isExist = false;
|
|
|
+ for (PacsNameVital item : pacsNameVitalSet) {
|
|
|
+ if (item.getVital() != null
|
|
|
+ && item.getVital().getName().equals(e_name)) {
|
|
|
+ isExist = true;
|
|
|
+ item.setPacsName(pacsName);
|
|
|
+ item.setVital(vital);
|
|
|
+ item.setStatus(status);
|
|
|
+ item.setRuleType(ruleType);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!isExist) {
|
|
|
+ PacsNameVital pacsNameVital = new PacsNameVital();
|
|
|
+ pacsNameVital.setVital(vital);
|
|
|
+ pacsNameVital.setPacsName(pacsName);
|
|
|
+ pacsNameVital.setStatus(status);
|
|
|
+ pacsNameVital.setRuleType(ruleType);
|
|
|
+ pacsNameVitalSet.add(pacsNameVital);
|
|
|
+ }
|
|
|
+ pacsName.setPacsNameVitals(pacsNameVitalSet);
|
|
|
+ pacsNameRepository.save(pacsName, 1);
|
|
|
+ break;
|
|
|
+ case "辅助检查名称禁忌服用药品":
|
|
|
+ OralMedicine oralMedicine = oralMedicineRepository.findByNameIs(e_name).get(0);
|
|
|
+ Set<PacsNameOralMedicine> pacsNameOralMedicineSet = pacsName.getPacsNameOralmedicines();
|
|
|
+ isExist = false;
|
|
|
+ for (PacsNameOralMedicine item : pacsNameOralMedicineSet) {
|
|
|
+ if (item.getOralMedicine() != null
|
|
|
+ && item.getOralMedicine().getName().equals(e_name)) {
|
|
|
+ isExist = true;
|
|
|
+ item.setPacsName(pacsName);
|
|
|
+ item.setOralMedicine(oralMedicine);
|
|
|
+ item.setStatus(status);
|
|
|
+ item.setRuleType(ruleType);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!isExist) {
|
|
|
+ PacsNameOralMedicine pacsNameOralMedicine = new PacsNameOralMedicine();
|
|
|
+ pacsNameOralMedicine.setOralMedicine(oralMedicine);
|
|
|
+ pacsNameOralMedicine.setPacsName(pacsName);
|
|
|
+ pacsNameOralMedicine.setStatus(status);
|
|
|
+ pacsNameOralMedicine.setRuleType(ruleType);
|
|
|
+ pacsNameOralMedicineSet.add(pacsNameOralMedicine);
|
|
|
+ }
|
|
|
+ pacsName.setPacsNameOralmedicines(pacsNameOralMedicineSet);
|
|
|
+ pacsNameRepository.save(pacsName, 1);
|
|
|
+ break;
|
|
|
+ case "辅助检查名称禁忌辅助检查名称描述":
|
|
|
+ PacsDescribe pacsDescribe = pacsDescribeRepository.findByNameIs(e_name).get(0);
|
|
|
+ Set<PacsNamePacsDescribe> pacsNamePacsDescribeSet = pacsName.getPacsNamePacsdescribes();
|
|
|
+ isExist = false;
|
|
|
+ for (PacsNamePacsDescribe item : pacsNamePacsDescribeSet) {
|
|
|
+ if (item.getPacsDescribe() != null
|
|
|
+ && item.getPacsDescribe().getName().equals(e_name)) {
|
|
|
+ isExist = true;
|
|
|
+ item.setPacsName(pacsName);
|
|
|
+ item.setPacsDescribe(pacsDescribe);
|
|
|
+ item.setStatus(status);
|
|
|
+ item.setRuleType(ruleType);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!isExist) {
|
|
|
+ PacsNamePacsDescribe pacsNamePacsDescribe = new PacsNamePacsDescribe();
|
|
|
+ pacsNamePacsDescribe.setPacsDescribe(pacsDescribe);
|
|
|
+ pacsNamePacsDescribe.setPacsName(pacsName);
|
|
|
+ pacsNamePacsDescribe.setStatus(status);
|
|
|
+ pacsNamePacsDescribe.setRuleType(ruleType);
|
|
|
+ pacsNamePacsDescribeSet.add(pacsNamePacsDescribe);
|
|
|
+ }
|
|
|
+ pacsName.setPacsNamePacsdescribes(pacsNamePacsDescribeSet);
|
|
|
+ pacsNameRepository.save(pacsName, 1);
|
|
|
+ break;
|
|
|
+ case "辅助检查名称禁忌过敏原":
|
|
|
+ Allergen allergen = allergenRepository.findByNameIs(e_name).get(0);
|
|
|
+ Set<PacsNameAllergen> pacsNameAllergenSet = pacsName.getPacsNameAllergens();
|
|
|
+ isExist = false;
|
|
|
+ for (PacsNameAllergen item : pacsNameAllergenSet) {
|
|
|
+ if (item.getAllergen() != null
|
|
|
+ && item.getAllergen().getName().equals(e_name)) {
|
|
|
+ isExist = true;
|
|
|
+ item.setPacsName(pacsName);
|
|
|
+ item.setAllergen(allergen);
|
|
|
+ item.setStatus(status);
|
|
|
+ item.setRuleType(ruleType);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!isExist) {
|
|
|
+ PacsNameAllergen pacsNameAllergen = new PacsNameAllergen();
|
|
|
+ pacsNameAllergen.setAllergen(allergen);
|
|
|
+ pacsNameAllergen.setPacsName(pacsName);
|
|
|
+ pacsNameAllergen.setStatus(status);
|
|
|
+ pacsNameAllergen.setRuleType(ruleType);
|
|
|
+ pacsNameAllergenSet.add(pacsNameAllergen);
|
|
|
+ }
|
|
|
+ pacsName.setPacsNameAllergens(pacsNameAllergenSet);
|
|
|
+ pacsNameRepository.save(pacsName, 1);
|
|
|
+ break;
|
|
|
+ case "辅助检查名称禁忌开单项互斥":
|
|
|
+ BillConflictItem billConflictItem = billConflictItemRepository.findByNameIs(e_name).get(0);
|
|
|
+ Set<PacsNameBillConflictItem> pacsNameBillConflictItemSet = pacsName.getPacsNameBillConflictItems();
|
|
|
+ isExist = false;
|
|
|
+ for (PacsNameBillConflictItem item : pacsNameBillConflictItemSet) {
|
|
|
+ if (item.getBillConflictItem() != null
|
|
|
+ && item.getBillConflictItem().getName().equals(e_name)) {
|
|
|
+ isExist = true;
|
|
|
+ item.setPacsName(pacsName);
|
|
|
+ item.setBillConflictItem(billConflictItem);
|
|
|
+ item.setStatus(status);
|
|
|
+ item.setRuleType(ruleType);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!isExist) {
|
|
|
+ PacsNameBillConflictItem pacsNameBillConflictItem = new PacsNameBillConflictItem();
|
|
|
+ pacsNameBillConflictItem.setBillConflictItem(billConflictItem);
|
|
|
+ pacsNameBillConflictItem.setPacsName(pacsName);
|
|
|
+ pacsNameBillConflictItem.setStatus(status);
|
|
|
+ pacsNameBillConflictItem.setRuleType(ruleType);
|
|
|
+ pacsNameBillConflictItemSet.add(pacsNameBillConflictItem);
|
|
|
+ }
|
|
|
+ pacsName.setPacsNameBillConflictItems(pacsNameBillConflictItemSet);
|
|
|
+ pacsNameRepository.save(pacsName, 1);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ } catch (Exception ex) {
|
|
|
+ ex.printStackTrace();
|
|
|
+ } finally {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|