Browse Source

标准术语维护

zhaops 4 years ago
parent
commit
1a267122b9

+ 22 - 1
src/main/java/com/diagbot/entity/node/EntityInfo.java

@@ -77,5 +77,26 @@ public class EntityInfo {
     private String conflict_gender;
 
     //药品代码通用名
-
+    //"批准文号", "药品本位码", "药品企业", "最小包装数量", "注册规格",
+    //"最小制剂单位", "最小包装单位", "包装材质", "注册剂型", "标准注册剂型"
+    //"最小包装数量"
+    private Double min_pack_num;
+    //"注册剂型"
+    private String reg_JiXin;
+    //"药品本位码"
+    private String BenWei_Code;
+    // "最小包装单位"
+    private String min_pack_unit;
+    // "注册规格"
+    private String reg_GuiGe;
+    //"包装材质"
+    private String pack_CaiLiao;
+    //"药品企业"
+    private String producer;
+    //"批准文号"
+    private String license_num;
+    //"最小制剂单位"
+    private String min_prod_unit;
+    //"标准注册剂型"
+    private String stand_reg_JiXin;
 }

+ 17 - 0
src/main/java/com/diagbot/entity/node/FoodAllergen.java

@@ -0,0 +1,17 @@
+package com.diagbot.entity.node;
+
+import com.diagbot.entity.node.base.BaseNode;
+import lombok.Getter;
+import lombok.Setter;
+import org.neo4j.ogm.annotation.NodeEntity;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/12/16 13:14
+ */
+@Setter
+@Getter
+@NodeEntity(label = "食物过敏原")
+public class FoodAllergen extends BaseNode {
+}

+ 20 - 0
src/main/java/com/diagbot/entity/node/LisSubNameAndResult.java

@@ -0,0 +1,20 @@
+package com.diagbot.entity.node;
+
+import com.diagbot.entity.node.base.BaseNode;
+import lombok.Getter;
+import lombok.Setter;
+import org.neo4j.ogm.annotation.NodeEntity;
+import org.neo4j.ogm.annotation.Property;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/12/16 13:23
+ */
+@Getter
+@Setter
+@NodeEntity(label = "化验细项及结果")
+public class LisSubNameAndResult extends BaseNode {
+    @Property(name = "special")
+    private String special;
+}

+ 3 - 0
src/main/java/com/diagbot/entity/node/MedCodeName.java

@@ -44,6 +44,9 @@ public class MedCodeName extends BaseNode  {
 	@Property(name = "最小制剂单位")
 	private String min_prod_unit;
 
+	@Property(name = "标准注册剂型")
+	private String stand_reg_JiXin;
+
 	@Relationship(type = "药品相关药品类别", direction = Relationship.OUTGOING)
 	private Set<MedCodeNameMedClass> medCodeNameMedclasss = new HashSet<>();
 

+ 46 - 5
src/main/java/com/diagbot/facade/EntityInfoFacade.java

@@ -52,7 +52,8 @@ public class EntityInfoFacade {
     DiseaseRepository diseaseRepository;
     @Autowired
     LisRepository lisRepository;
-    //TODO 化验细项及结果
+    @Autowired
+    LisSubNameAndResultRepository lisSubNameAndResultRepository;
     @Autowired
     LisCriticalRepository lisCriticalRepository;
     @Autowired
@@ -105,7 +106,8 @@ public class EntityInfoFacade {
     MedAllergenRepository medAllergenRepository;
     @Autowired
     AllergenRepository allergenRepository;
-    //TODO 食物过敏原
+    @Autowired
+    FoodAllergenRepository foodAllergenRepository;
     @Autowired
     TransfusionRemindRepository transfusionRemindRepository;
 
@@ -288,7 +290,11 @@ public class EntityInfoFacade {
                 }
                 break;
             case "化验细项及结果":
-                //特殊处理
+                if (entityInfo.getId() == null) {
+                    lisSubNameAndResultRepository.create(entityInfo, entityInfo.getSpecial());
+                } else {
+                    lisSubNameAndResultRepository.update(entityInfo, entityInfo.getSpecial());
+                }
                 break;
             case "实验室检查危急值":
                 if (entityInfo.getId() == null) {
@@ -298,10 +304,38 @@ public class EntityInfoFacade {
                 }
                 break;
             case "药品代码通用名":
-                //特殊处理
+                if (entityInfo.getId() == null) {
+                    medicineCodeRepository.create(entityInfo,
+                            entityInfo.getMin_pack_num(),
+                            entityInfo.getReg_JiXin(),
+                            entityInfo.getBenWei_Code(),
+                            entityInfo.getMin_pack_unit(),
+                            entityInfo.getReg_GuiGe(),
+                            entityInfo.getPack_CaiLiao(),
+                            entityInfo.getProducer(),
+                            entityInfo.getLicense_num(),
+                            entityInfo.getMin_prod_unit(),
+                            entityInfo.getStand_reg_JiXin());
+                } else {
+                    medicineCodeRepository.update(entityInfo,
+                            entityInfo.getMin_pack_num(),
+                            entityInfo.getReg_JiXin(),
+                            entityInfo.getBenWei_Code(),
+                            entityInfo.getMin_pack_unit(),
+                            entityInfo.getReg_GuiGe(),
+                            entityInfo.getPack_CaiLiao(),
+                            entityInfo.getProducer(),
+                            entityInfo.getLicense_num(),
+                            entityInfo.getMin_prod_unit(),
+                            entityInfo.getStand_reg_JiXin());
+                }
                 break;
             case "药品注册名称":
-                //特殊处理
+                if (entityInfo.getId() == null) {
+                    medRegNameRepository.create(entityInfo, entityInfo.getRisklevel(), entityInfo.getConflict_geiyao(), entityInfo.getConflict_gender(), entityInfo.getResult(), entityInfo.getAlias());
+                } else {
+                    medRegNameRepository.update(entityInfo, entityInfo.getRisklevel(), entityInfo.getConflict_geiyao(), entityInfo.getConflict_gender(), entityInfo.getResult(), entityInfo.getAlias());
+                }
                 break;
             case "体征":
                 if (entityInfo.getId() == null) {
@@ -537,6 +571,13 @@ public class EntityInfoFacade {
                 }
                 break;
             case "食物过敏原":
+                if (entityInfo.getId() == null) {
+                    FoodAllergen foodAllergen = new FoodAllergen();
+                    BeanUtil.copyProperties(entityInfo, foodAllergen);
+                    foodAllergenRepository.save(foodAllergen);
+                } else {
+                    entityInfoRepository.update(entityInfo);
+                }
                 break;
             case "输血提醒指标":
                 if (entityInfo.getId() == null) {

+ 12 - 0
src/main/java/com/diagbot/repository/FoodAllergenRepository.java

@@ -0,0 +1,12 @@
+package com.diagbot.repository;
+
+import com.diagbot.entity.node.FoodAllergen;
+import org.springframework.data.neo4j.repository.Neo4jRepository;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/12/16 13:19
+ */
+public interface FoodAllergenRepository extends Neo4jRepository<FoodAllergen,Long> {
+}

+ 39 - 0
src/main/java/com/diagbot/repository/LisSubNameAndResultRepository.java

@@ -0,0 +1,39 @@
+package com.diagbot.repository;
+
+import com.diagbot.entity.node.EntityInfo;
+import com.diagbot.entity.node.LisSubNameAndResult;
+import org.springframework.data.neo4j.annotation.Query;
+import org.springframework.data.neo4j.repository.Neo4jRepository;
+import org.springframework.data.repository.query.Param;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/12/16 13:25
+ */
+public interface LisSubNameAndResultRepository extends Neo4jRepository<LisSubNameAndResult,Long> {
+    @Query("match (n:化验细项及结果) \n" +
+            "where id(n) = :#{#entityInfo.id} \n" +
+            "set  " +
+            "n.name = :#{#entityInfo.name}," +
+            "n.拼音编码 = :#{#entityInfo.pycode}," +
+            "n.静态知识标识 = :#{#entityInfo.is_kl}," +
+            "n.状态 = :#{#entityInfo.status}," +
+            "n.special = {special}" +
+            "\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
+    LisSubNameAndResult update(@Param("entityInfo") EntityInfo entityInfo,
+                   @Param("special") String special);
+
+    @Query("create (n:化验细项及结果) \n" +
+            "set  " +
+            "n.name = :#{#entityInfo.name}," +
+            "n.拼音编码 = :#{#entityInfo.pycode}," +
+            "n.静态知识标识 = :#{#entityInfo.is_kl}," +
+            "n.状态 = :#{#entityInfo.status}," +
+            "n.special = {special}" +
+            "\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
+    LisSubNameAndResult create(@Param("entityInfo") EntityInfo entityInfo,
+                   @Param("special") String special);
+}

+ 44 - 0
src/main/java/com/diagbot/repository/MedRegNameRepository.java

@@ -1,7 +1,10 @@
 package com.diagbot.repository;
 
+import com.diagbot.entity.node.EntityInfo;
 import com.diagbot.entity.node.MedRegName;
+import org.springframework.data.neo4j.annotation.Query;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
+import org.springframework.data.repository.query.Param;
 
 import java.util.List;
 
@@ -11,5 +14,46 @@ public interface MedRegNameRepository extends Neo4jRepository<MedRegName, Long>
     List<MedRegName> findByNameIs(String name);
 
     List<MedRegName> findByNameContaining(String name);
+
+    @Query("match (n:药品注册名称) \n" +
+            "where id(n) = :#{#entityInfo.id} \n" +
+            "set  " +
+            "n.name = :#{#entityInfo.name}," +
+            "n.拼音编码 = :#{#entityInfo.pycode}," +
+            "n.静态知识标识 = :#{#entityInfo.is_kl}," +
+            "n.状态 = :#{#entityInfo.status}," +
+            "n.药品高危级别 = {risklevel}," +
+            "n.禁忌给药途径 = {conflict_geiyao}," +
+            "n.禁忌性别 = {conflict_gender}," +
+            "n.结果 = {result}," +
+            "n.名称 = {alias}" +
+            "\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
+    MedRegName update(@Param("entityInfo") EntityInfo entityInfo,
+                      @Param("risklevel") String risklevel,
+                      @Param("conflict_geiyao") String conflict_geiyao,
+                      @Param("conflict_gender") String conflict_gender,
+                      @Param("result") String result,
+                      @Param("alias") String alias);
+
+    @Query("create (n:药品注册名称) \n" +
+            "set  " +
+            "n.name = :#{#entityInfo.name}," +
+            "n.拼音编码 = :#{#entityInfo.pycode}," +
+            "n.静态知识标识 = :#{#entityInfo.is_kl}," +
+            "n.状态 = :#{#entityInfo.status}," +
+            "n.药品高危级别 = {risklevel}," +
+            "n.禁忌给药途径 = {conflict_geiyao}," +
+            "n.禁忌性别 = {conflict_gender}," +
+            "n.结果 = {result}," +
+            "n.名称 = {alias}" +
+            "\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
+    MedRegName create(@Param("entityInfo") EntityInfo entityInfo,
+                      @Param("risklevel") String risklevel,
+                      @Param("conflict_geiyao") String conflict_geiyao,
+                      @Param("conflict_gender") String conflict_gender,
+                      @Param("result") String result,
+                      @Param("alias") String alias);
 }
 

+ 62 - 1
src/main/java/com/diagbot/repository/MedicineCodeRepository.java

@@ -1,9 +1,10 @@
 package com.diagbot.repository;
 
-import com.diagbot.entity.node.MedCode;
+import com.diagbot.entity.node.EntityInfo;
 import com.diagbot.entity.node.MedCodeName;
 import org.springframework.data.neo4j.annotation.Query;
 import org.springframework.data.neo4j.repository.Neo4jRepository;
+import org.springframework.data.repository.query.Param;
 
 import java.util.List;
 
@@ -13,5 +14,65 @@ public interface MedicineCodeRepository extends Neo4jRepository<MedCodeName, Lon
     List<MedCodeName> findByNameIs(String name);
 
     List<MedCodeName> findByNameContaining(String name);
+
+    @Query("match (n:药品代码通用名) \n" +
+            "where id(n) = :#{#entityInfo.id} \n" +
+            "set  " +
+            "n.name = :#{#entityInfo.name}," +
+            "n.拼音编码 = :#{#entityInfo.pycode}," +
+            "n.静态知识标识 = :#{#entityInfo.is_kl}," +
+            "n.状态 = :#{#entityInfo.status}," +
+            "n.注册剂型 = {reg_JiXin}," +
+            "n.药品本位码 = {BenWei_Code}," +
+            "n.最小包装单位 = {min_pack_unit}," +
+            "n.注册规格 = {reg_GuiGe}," +
+            "n.包装材质 = {pack_CaiLiao}," +
+            "n.药品企业 = {producer}," +
+            "n.批准文号 = {license_num}," +
+            "n.最小制剂单位 = {min_prod_unit}," +
+            "n.标准注册剂型 = {stand_reg_JiXin}" +
+            "\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
+    MedCodeName update(@Param("entityInfo") EntityInfo entityInfo,
+                       @Param("min_pack_num") Double min_pack_num,
+                       @Param("reg_JiXin") String reg_JiXin,
+                       @Param("BenWei_Code") String BenWei_Code,
+                       @Param("min_pack_unit") String min_pack_unit,
+                       @Param("reg_GuiGe") String reg_GuiGe,
+                       @Param("pack_CaiLiao") String pack_CaiLiao,
+                       @Param("producer") String producer,
+                       @Param("license_num") String license_num,
+                       @Param("min_prod_unit") String min_prod_unit,
+                       @Param("stand_reg_JiXin") String stand_reg_JiXin);
+
+    @Query("create (n:药品代码通用名) \n" +
+            "set  " +
+            "n.name = :#{#entityInfo.name}," +
+            "n.拼音编码 = :#{#entityInfo.pycode}," +
+            "n.静态知识标识 = :#{#entityInfo.is_kl}," +
+            "n.状态 = :#{#entityInfo.status}," +
+            "n.最小包装数量 = {min_pack_num}," +
+            "n.注册剂型 = {reg_JiXin}," +
+            "n.药品本位码 = {BenWei_Code}," +
+            "n.最小包装单位 = {min_pack_unit}," +
+            "n.注册规格 = {reg_GuiGe}," +
+            "n.包装材质 = {pack_CaiLiao}," +
+            "n.药品企业 = {producer}," +
+            "n.批准文号 = {license_num}," +
+            "n.最小制剂单位 = {min_prod_unit}," +
+            "n.标准注册剂型 = {stand_reg_JiXin}" +
+            "\n" +
+            "RETURN n,[ (n)-[r]->(m) | [ r, m ] ], ID(n)\n")
+    MedCodeName create(@Param("entityInfo") EntityInfo entityInfo,
+                       @Param("min_pack_num") Double min_pack_num,
+                       @Param("reg_JiXin") String reg_JiXin,
+                       @Param("BenWei_Code") String BenWei_Code,
+                       @Param("min_pack_unit") String min_pack_unit,
+                       @Param("reg_GuiGe") String reg_GuiGe,
+                       @Param("pack_CaiLiao") String pack_CaiLiao,
+                       @Param("producer") String producer,
+                       @Param("license_num") String license_num,
+                       @Param("min_prod_unit") String min_prod_unit,
+                       @Param("stand_reg_JiXin") String stand_reg_JiXin);
 }
 

+ 2 - 2
src/main/java/com/diagbot/repository/YiBaoOperationNameRepository.java

@@ -55,7 +55,7 @@ public interface YiBaoOperationNameRepository extends Neo4jRepository<YiBaoOpera
     @Query("MATCH (n:医保手术和操作名称) RETURN DISTINCT n.name as name LIMIT {size}")
     List<String> getOperationNames(@Param("size") Integer size);
 
-    @Query("match (n:医保疾病名称) \n" +
+    @Query("match (n:医保手术和操作名称) \n" +
             "where id(n) = :#{#entityInfo.id} \n" +
             "set  " +
             "n.name = :#{#entityInfo.name}," +
@@ -68,7 +68,7 @@ public interface YiBaoOperationNameRepository extends Neo4jRepository<YiBaoOpera
     YiBaoOperationName update(@Param("entityInfo") EntityInfo entityInfo,
                               @Param("opgrade") String opgrade);
 
-    @Query("create (n:医保疾病名称) \n" +
+    @Query("create (n:医保手术和操作名称) \n" +
             "set  " +
             "n.name = :#{#entityInfo.name}," +
             "n.拼音编码 = :#{#entityInfo.pycode}," +

+ 13 - 3
src/main/java/com/diagbot/web/EntityInfoController.java

@@ -58,7 +58,7 @@ public class EntityInfoController {
                     "is_kl:静态知识标识(0-无,1-有,默认0)<br>" +
                     "labelType:术语类型-知识图谱标签类型(详情见字典)<br>" +
                     "age:年龄<br>" +
-                    "gender:性别<br>" +
+                    "gender:性别(男、女)<br>" +
                     "unit:单位(实验室检查名称、实验室检查、体征、实验室检查危急值)<br>" +
                     "alias:别名(医保诊断名称、药物过敏原、药品注册名称)<br>" +
                     "result:结果(药物过敏原、药品注册名称)<br>" +
@@ -73,9 +73,19 @@ public class EntityInfoController {
                     "highriskcond:高危条件(医保手术和操作属性)<br>" +
                     "special:特殊标志(化验细项及结果属性:是)<br>" +
                     "medtype:药品类型(药物过敏原属性:药品、药品类别)<br>" +
-                    "risklevel:药品高危级别(药品注册名称属性)<br>" +
+                    "risklevel:药品高危级别(药品注册名称属性:A级高危、B级高危、C级高危)<br>" +
                     "conflict_geiyao:禁忌给药途径(药品注册名称属性)<br>" +
-                    "conflict_gender:禁忌性别(药品注册名称属性)<br>")
+                    "conflict_gender:禁忌性别(药品注册名称属性:男、女)<br>" +
+                    "min_pack_num:最小包装数量(药品代码通用名属性)<br>" +
+                    "reg_JiXin:注册剂型(药品代码通用名属性)<br>" +
+                    "BenWei_Code:药品本位码(药品代码通用名属性)<br>" +
+                    "min_pack_unit:最小包装单位(药品代码通用名属性)<br>" +
+                    "reg_GuiGe:注册规格(药品代码通用名属性)<br>" +
+                    "pack_CaiLiao:包装材质(药品代码通用名属性)<br>" +
+                    "producer:药品企业(药品代码通用名属性)<br>" +
+                    "license_num:批准文号(药品代码通用名属性)<br>" +
+                    "min_prod_unit:最小制剂单位(药品代码通用名属性)<br>" +
+                    "stand_reg_JiXin:标准注册剂型(药品代码通用名属性)<br>")
     @PostMapping("/saveEntity")
     public RespDTO<Boolean> saveEntity(@RequestBody EntityInfo entityInfo) {
         Boolean data = entityInfoFacade.saveEntity(entityInfo);