Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package test.dynamotest; import ca.uhn.fhir.model.dstu2.resource.Patient; import ca.uhn.fhir.parser.IParser; import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; import com.amazonaws.services.dynamodbv2.document.Item; import com.amazonaws.services.dynamodbv2.document.ItemCollection; import com.amazonaws.services.dynamodbv2.document.QueryOutcome; import com.amazonaws.services.dynamodbv2.document.spec.QuerySpec; import com.amazonaws.services.dynamodbv2.document.utils.ValueMap; import com.amazonaws.services.dynamodbv2.model.AttributeValue; import com.amazonaws.services.dynamodbv2.model.ScanRequest; import com.amazonaws.services.dynamodbv2.model.ScanResult; import com.amazonaws.util.json.JSONObject; import com.eho.dynamodb.DynamoDBConnection; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import java.util.Scanner; /** * * @author borna.jafarpour */ public class dynamotest { public static void main2(String[] args) throws Exception { /*String file="patient-test.json"; JSONObject patient = new JSONObject(readFile(file)); IParser json_parser = DynamoDBConenction.fCtx.newJsonParser(); Patient p = json_parser.parseResource(Patient.class, patient.toString()); //System.out.println(json_parser.encodeResourceToString(p)); patient.put(DynamoDBConenction.PRIMARY_KEY, /*"8bb46c10-74c4-4700-9386-067827468e6f"*/ ///"123123" ); //System.out.println("----> " + DynamoDBConenction.upload_resource(patient.toString()).getPutItemResult()); // System.out.println("----> " + DynamoDBConenction.update_resource(patient.toString()).getUpdateItemResult()); //DynamoDBConenction.upload_resource(patient.toString()); // Item anitem = new Item(); // anitem.withInt("salaam", 0); // anitem.getInt("salam"); /*JSONObject jo = new JSONObject(patient3); Map<String,Object> result = new ObjectMapper().readValue(jo.toString(), LinkedHashMap.class); Item i = new Item(); i.withJSON("1", patient3); System.out.println(patient3); System.out.println("========================================================="); System.out.println(i.toJSONPretty());*/ //test_dynamo_db_search(); test_dynamo_db_query(); } public static void test_dynamo_db_query() { AmazonDynamoDB client = DynamoDBConnection.getDynamoDBClient(); Map<String, AttributeValue> expressionAttributeValues = new HashMap<>(); Map<String, String> expressionAttributeNames = new HashMap<>(); expressionAttributeValues.put(":given", new AttributeValue().withS("kazem")); expressionAttributeNames.put("#name", "name"); expressionAttributeNames.put("#jsondocument", "json-document"); ScanRequest scanRequest = new ScanRequest().withTableName(DynamoDBConnection.PATIENT_TABLE) .withFilterExpression( "(#jsondocument.#name[0].given[0] = :given) AND (#jsondocument.#name[0].given[0] = :given)") .withExpressionAttributeNames(expressionAttributeNames) .withExpressionAttributeValues(expressionAttributeValues); ScanResult result = client.scan(scanRequest); System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); for (Map<String, AttributeValue> item : result.getItems()) { System.out.println(item.toString()); } System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"); } private static String readFile(String file) throws IOException { /*BufferedReader reader = new BufferedReader( new FileReader (file)); String line = null; StringBuilder stringBuilder = new StringBuilder(); String ls = System.getProperty("line.separator"); while( ( line = reader.readLine() ) != null ) { stringBuilder.append( line ); stringBuilder.append( ls ); } return stringBuilder.toString();*/ String s = ""; try { s = new Scanner(new File(file)).useDelimiter("\\Z").next(); } catch (Exception e) { System.err.println(e.getMessage()); } return s; } private static String patient3 = "{ \"resourceType\": \"Patient\", \"id\": \"example\", \"text\": { \"status\": \"generated\", \"div\": \"<div>\\n \\n <table>\\n \\n <tbody>\\n \\n <tr>\\n \\n <td>Name</td>\\n \\n <td>Peter James \\n <b>Chalmers</b> ("Jim")\\n </td>\\n \\n </tr>\\n \\n <tr>\\n \\n <td>Address</td>\\n \\n <td>534 Erewhon, Pleasantville, Vic, 3999</td>\\n \\n </tr>\\n \\n <tr>\\n \\n <td>Contacts</td>\\n \\n <td>Home: unknown. Work: (03) 5555 6473</td>\\n \\n </tr>\\n \\n <tr>\\n \\n <td>Id</td>\\n \\n <td>MRN: 12345 (Acme Healthcare)</td>\\n \\n </tr>\\n \\n </tbody>\\n \\n </table> \\n \\n </div>\" }, \"identifier\": [ { \"fhir_comments\": [ \" MRN assigned by ACME healthcare on 6-May 2001 \" ], \"use\": \"usual\", \"type\": { \"coding\": [ { \"system\": \"http://hl7.org/fhir/v2/0203\", \"code\": \"MR\" } ] }, \"system\": \"urn:oid:1.2.36.146.595.217.0.1\", \"value\": \"12345\", \"period\": { \"start\": \"2001-05-06\" }, \"assigner\": { \"display\": \"Acme Healthcare\" } } ], \"active\": true, \"name\": [ { \"fhir_comments\": [ \" Peter James Chalmers, but called \\\"Jim\\\" \" ], \"use\": \"official\", \"family\": [ \"Chalmers\" ], \"given\": [ \"Peter\", \"James\" ] }, { \"use\": \"usual\", \"given\": [ \"Jim\" ] } ], \"telecom\": [ { \"fhir_comments\": [ \" home communication details aren't known \" ], \"use\": \"home\" }, { \"system\": \"phone\", \"value\": \"(03) 5555 6473\", \"use\": \"work\" } ], \"gender\": \"male\", \"_gender\": { \"fhir_comments\": [ \" use FHIR code system for male / female \" ] }, \"birthDate\": \"1974-12-25\", \"_birthDate\": { \"extension\": [ { \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-birthTime\", \"valueDateTime\": \"1974-12-25T14:35:45-05:00\" } ] }, \"deceasedBoolean\": false, \"address\": [ { \"use\": \"home\", \"type\": \"both\", \"line\": [ \"534 Erewhon St\" ], \"city\": \"PleasantVille\", \"district\": \"Rainbow\", \"state\": \"Vic\", \"postalCode\": \"3999\", \"period\": { \"start\": \"1974-12-25\" } } ], \"contact\": [ { \"relationship\": [ { \"coding\": [ { \"system\": \"http://hl7.org/fhir/patient-contact-relationship\", \"code\": \"partner\" } ] } ], \"name\": { \"family\": [ \"du\", \"March\" ], \"_family\": [ { \"extension\": [ { \"fhir_comments\": [ \" the \\\"du\\\" part is a family name prefix (VV in iso 21090) \" ], \"url\": \"http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier\", \"valueCode\": \"VV\" } ] }, null ], \"given\": [ \"Bndicte\" ] }, \"telecom\": [ { \"system\": \"phone\", \"value\": \"+33 (237) 998327\" } ], \"gender\": \"female\", \"period\": { \"start\": \"2012\", \"_start\": { \"fhir_comments\": [ \" The contact relationship started in 2012 \" ] } } } ], \"managingOrganization\": { \"reference\": \"Organization/1\" } }"; }