Browse Source

通过HTTP POST调用知识图谱的API接口

MarkHuang 6 years ago
parent
commit
97b060aa2a

+ 9 - 1
graph-web/pom.xml

@@ -65,7 +65,14 @@
             <version>1.0.0</version>
             <scope>compile</scope>
         </dependency>
-    </dependencies>
+
+		<dependency>
+			<groupId>org.neo4j.driver</groupId>
+			<artifactId>neo4j-java-driver</artifactId>
+			<version>1.6.1</version>
+		</dependency>
+
+	</dependencies>
 
 	<build>
 		<plugins>
@@ -99,6 +106,7 @@
 				<directory>src/main/resources</directory>
 				<includes>
 					<include>**/*.yml</include>
+					<include>**/*.properties</include>
 				</includes>
 			</resource>
 		</resources>

+ 1 - 0
graph-web/src/main/java/org/diagbot/graphWeb/controller/GraphController.java

@@ -10,6 +10,7 @@ import org.diagbot.graphWeb.work.HighRiskCalculate;
 import org.diagbot.common.work.ResponseData;
 import org.diagbot.common.work.SearchData;
 import org.diagbot.pub.api.Response;
+import org.diagbot.pub.utils.PropertiesUtil;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;

+ 17 - 14
graph-web/src/main/java/org/diagbot/graphWeb/work/HighRiskCalculate.java

@@ -5,29 +5,32 @@ import org.diagbot.graph.javabean.GdbResponse;
 import org.diagbot.graph.jdbc.DriverManager;
 import org.diagbot.graph.jdbc.Neo4jAPI;
 import org.diagbot.pub.api.Response;
+import org.diagbot.pub.utils.PropertiesUtil;
+import org.diagbot.pub.utils.http.HttpApi;
 import org.neo4j.driver.v1.Driver;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.LinkedHashMap;
 import java.util.Map;
 
 public class HighRiskCalculate {
-   private Driver driver=null;
-   private Neo4jAPI n4api=null;
     public Response<GdbResponse> calculateHighRisk(HttpServletRequest request, SearchData searchData) throws Exception {
         GdbResponse responseData = new GdbResponse();
         Response<GdbResponse> objectResponse = new Response<>();
-        Map<String,String> RSet = null;
-        if (driver == null) {
-            driver = DriverManager.newDrive();
-        }
-        if (driver != null && driver.session() != null) {
-            n4api = new Neo4jAPI(driver);
-            if(searchData.getDiag().trim()!=null){
-                String diag = searchData.getDiag();
-                RSet = n4api.getHighRisk(diag);
-            }
-           responseData.setResult(RSet);
-        }
+
+        PropertiesUtil propertiesUtil = new PropertiesUtil("url.properties");
+        //调用图谱API
+        HttpApi<Response> api = new HttpApi<Response>();
+        // 根据疾病信息获取高危属性
+        Response highRiskResponse = api.doPost(propertiesUtil.getProperty("highrisk.http.url"), searchData,
+                Response.class);
+
+        Map data = (Map<String, Map>)highRiskResponse.getData();
+
+        responseData.setStatus(data.get("status").toString());
+        responseData.setResult((Map<String,String>)data.get("result"));
+
+
         objectResponse.setData(responseData);
         return objectResponse;
     }

+ 2 - 0
graph-web/src/main/resources/url.properties

@@ -0,0 +1,2 @@
+#highrisk.http.url=http://192.168.2.234:8080/knowledge/getHighRisk
+highrisk.http.url=http://192.168.3.9:8080/knowledge/getHighRisk

+ 2 - 1
graphdb/pom.xml

@@ -5,7 +5,7 @@
 
     <groupId>org.diagbot</groupId>
     <artifactId>graphdb</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
+    <version>1.0.0</version>
     <packaging>jar</packaging>
 
     <name>graphdb</name>
@@ -77,6 +77,7 @@
             <artifactId>logstash-logback-encoder</artifactId>
             <version>5.2</version>
         </dependency>
+
     </dependencies>
 
     <build>

+ 1 - 1
graphdb/src/main/java/org/diagbot/service/KnowledgeService.java

@@ -39,7 +39,7 @@ public interface KnowledgeService {
     List<Map<String, Object>> findHighRiskDisease(QueryVo queryVo);
 
     // 获取高危疾病列表
-    List<Map<String, Object>> getHighRiskDisease(SearchData searchData);
+    Map<String, String> getHighRiskDisease(SearchData searchData);
 
     // 获取推荐项目
     List<Map<String, Object>> getRecommendItem(QueryVo queryVo);

+ 11 - 5
graphdb/src/main/java/org/diagbot/service/impl/KnowledgeServiceImpl.java

@@ -180,14 +180,20 @@ public class KnowledgeServiceImpl implements KnowledgeService {
     }
 
     @Override
-    public List<Map<String, Object>> getHighRiskDisease(SearchData searchData) {
+    public Map<String, String> getHighRiskDisease(SearchData searchData) {
         String diag = searchData.getDiag();
         String[] diseaseArray = diag.split(",|,|、");
-        List<String> diseaseList = new ArrayList<>();
-        for (String di : diseaseArray) {
-            diseaseList.add(di);
+        List<String> diseaseList = Arrays.asList(diseaseArray);
+
+        Map<String, String> map = new HashMap<>();
+        List<Map<String, Object>> list = diseaseRepository.getHighRisk(diseaseList);
+
+        for (Map hrmap:list) {
+            String name = hrmap.get("name").toString();
+            String risk = hrmap.get("risk").toString();
+            map.put(name, risk);
         }
-        List<Map<String, Object>> map = diseaseRepository.getHighRisk(diseaseList);
+
         return map;
     }
 

+ 7 - 2
graphdb/src/main/java/org/diagbot/web/KnowledgeController.java

@@ -145,8 +145,13 @@ public class KnowledgeController {
      * 获取高危疾病列表
      */
     @RequestMapping("/getHighRisk")
-    public List<Map<String, Object>> getHighRisk(@Valid @RequestBody SearchData searchData){
-        return knowledgeService.getHighRiskDisease(searchData);
+    public Response<GdbResponse> getHighRisk(@Valid @RequestBody SearchData searchData){
+        Response<GdbResponse> resp = new Response<>();
+        GdbResponse gdbResponse = new GdbResponse();
+        gdbResponse.setResult(knowledgeService.getHighRiskDisease(searchData));
+        resp.setData(gdbResponse);
+
+        return resp;
     }
 
     /**