Guest User

Untitled

a guest
Sep 24th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.57 KB | None | 0 0
  1. public void readObsTableAndCreateNode() throws Exception {
  2. try {
  3. Class.forName("com.mysql.jdbc.Driver");
  4. connect = DriverManager.getConnection("jdbc:mysql://localhost/openmrsnew?user=root&password=qwas");
  5. statement = connect.createStatement();
  6. resultSet = statement.executeQuery("select obs_id, person_id, concept_id, encounter_id, order_id, obs_datetime, value_text, date_created, creator, uuid, voided from obs where `obs`.`date_created` > '2018-09-20 00:00:00' and concept_id != 33334002 limit 2");
  7.  
  8. List<HashMap<String, Object>> cypherQueriesList = new ArrayList<HashMap<String, Object>>();
  9.  
  10. while (resultSet.next()) {
  11.  
  12. HashMap<String, Object> cipherQueryParams = new HashMap<String, Object>();
  13. Integer obsId = Integer.parseInt(resultSet.getString("obs_id"));
  14. Integer personId = Integer.parseInt(resultSet.getString("person_id"));
  15. Integer conceptId = Integer.parseInt(resultSet.getString("concept_id"));
  16. Integer creator = Integer.parseInt(resultSet.getString("creator"));
  17. Integer voided = Integer.parseInt(resultSet.getString("voided"));
  18. Integer encounterId = encounterId = Integer.parseInt(resultSet.getString("encounter_id"));
  19. String date_created = resultSet.getString("date_created");
  20. String value_text= resultSet.getString("value_text");
  21. String uuid = resultSet.getString("uuid");
  22. String obs_datetime= resultSet.getString("obs_datetime");
  23.  
  24. ((HashMap<String, Object>) cipherQueryParams).put("creator", creator);
  25. ((HashMap<String, Object>) cipherQueryParams).put("valueText", value_text);
  26. ((HashMap<String, Object>) cipherQueryParams).put("uuid", uuid);
  27. ((HashMap<String, Object>) cipherQueryParams).put("dateCreated", date_created);
  28. ((HashMap<String, Object>) cipherQueryParams).put("obsDatetime", obs_datetime);
  29. ((HashMap<String, Object>) cipherQueryParams).put("obsId", obsId);
  30. ((HashMap<String, Object>) cipherQueryParams).put("encounterId", encounterId);
  31. ((HashMap<String, Object>) cipherQueryParams).put("conceptId", conceptId);
  32. ((HashMap<String, Object>) cipherQueryParams).put("personId", personId);
  33. ((HashMap<String, Object>) cipherQueryParams).put("voided", voided);
  34.  
  35. cypherQueriesList.add(cipherQueryParams);
  36. }
  37.  
  38. HashMap<String, Object> cypherQuerybatch = new HashMap<String, Object>();
  39. cypherQuerybatch.put("batch", cypherQueriesList);
  40.  
  41. // I am using merge because I dont want duplicated enteries
  42.  
  43. String cypherQuery = "UNWIND {batch} as row MERGE (m:temp { obsId: row.obsId ,valueText: row.valueText, uuid: row.uuid, dateCreated: row.dateCreated , obsDatetime: row.obsDatetime })"
  44. + " WITH m, row MATCH (c:Concept {conceptId: row.conceptId }) MERGE (m)-[:CONCEPT]->(c) "
  45. + " WITH m, row MATCH (e:Encounter {encounterId: row.encounterId }) MERGE (m)-[:ENCOUNTER]->(e) "
  46. + " WITH m, row MATCH (u:Users {userId: row.creator }) MERGE (m)-[:USERS]->(u) "
  47. + " WITH m, row MATCH (p:Person {personId: row.personId}) MERGE (m)-[:PERSON]->(p) "
  48. + " RETURN m";
  49.  
  50. runCypherWithParams(cypherQuery, cypherQuerybatch);
  51.  
  52. } catch (Exception e) {
  53. throw e;
  54. } finally {
  55. close();
  56. }
  57.  
  58. }
  59.  
  60.  
  61.  
  62. private void runCypherWithParams(String cypherQuery, Map<String, Object> parameters) throws Exception{
  63. System.out.println("Posting Data to Neo4J browser...");
  64. try {
  65. connNeo4j = new ConNeo4j("bolt://localhost:7687", "neo4j", "qwas");
  66. connNeo4j.execQueryBySession(cypherQuery, parameters);
  67. } catch (Exception e) {
  68. e.printStackTrace();
  69. }finally {
  70.  
  71. }
  72.  
  73. }
  74.  
  75.  
  76.  
  77. public void execQueryBySession(String query, Map<String, Object> parameters) {
  78. try {
  79. Session session = driver.session();
  80. StatementResult result = session.run(query, parameters);
  81.  
  82. System.out.println("Success:- " + result);
  83. } catch (Exception e) {
  84. System.out.println("[WARNING] Null Row" + e.getMessage());
  85. }
  86. }
  87.  
  88. MERGE (m:Temp { obsId: 742241 ,valueText: NULL}) return m;
  89.  
  90. MERGE (m:Temp { obsId: 742241})
  91. ON CREATE SET m.valueText = NULL
  92. ON MATCH SET m.valueText = NULL
  93. return m;
Add Comment
Please, Sign In to add comment