@Override public void buildQuery(EncounterSearchCriteria criteria, IQuery<?> query) { super.buildQuery(criteria, query); if (criteria.getPatient() != null) { query.where(Encounter.PATIENT.hasId(criteria.getPatient().getId())); } if (criteria.getPeriod() != null) { Date start = criteria.getPeriod().getStart(); Date end = criteria.getPeriod().getEnd(); if (start != null) { if (end == null) { query.where(Encounter.LOCATION_PERIOD.exactly().day(start)); } else { query.where(Encounter.LOCATION_PERIOD.afterOrEquals().day(start)); query.where(Encounter.LOCATION_PERIOD.beforeOrEquals().day(end)); } } else if (end != null) { query.where(Encounter.LOCATION_PERIOD.exactly().day(end)); } } if (criteria.getType() != null) { query.where(Encounter.TYPE.exactly().code(criteria.getType())); } }
query.where(Patient.BIRTHDATE.exactly().day(criteria.getBirth()));
query.where(Patient.BIRTHDATE.exactly().day(criteria.getBirth()));
@Override public void buildQuery(EncounterSearchCriteria criteria, IQuery<Bundle> query) { super.buildQuery(criteria, query); if (criteria.getPatient() != null) { query.where(Encounter.PATIENT.hasId(criteria.getPatient().getId())); } if (criteria.getPeriod() != null) { Date start = criteria.getPeriod().getStart(); Date end = criteria.getPeriod().getEnd(); if (start != null) { if (end == null) { query.where(Encounter.LOCATION_PERIOD.exactly().day(start)); } else { query.where(Encounter.LOCATION_PERIOD.afterOrEquals().day(start)); query.where(Encounter.LOCATION_PERIOD.beforeOrEquals().day(end)); } } else if (end != null) { query.where(Encounter.LOCATION_PERIOD.exactly().day(end)); } } if (criteria.getType() != null) { query.where(Encounter.TYPE.exactly().code(criteria.getType())); } }
public static void main(String[] theArgs) { FhirContext ctx = FhirContext.forDstu3(); IGenericClient client = ctx.newRestfulGenericClient("http://fhirtest.uhn.ca/baseDstu3"); // Build a search and execute it Bundle response = client.search() .forResource(Patient.class) .where(Patient.NAME.matches().value("Test")) .and(Patient.BIRTHDATE.before().day("2014-01-01")) .count(100) .returnBundle(Bundle.class) .execute(); // How many resources did we find? System.out.println("Responses: " + response.getTotal()); // Print the ID of the first one System.out.println("First response ID: " + response.getEntry().get(0).getResource().getId()); } }
@Test public void testSendManualPdqmWithBirthdayRange() { Bundle result = client.search() .forResource(PdqPatient.class) .where(PdqPatient.BIRTHDATE.exactly().day("2011-12-31")) .and(PdqPatient.FAMILY.matches().value("Miller")) .returnBundle(Bundle.class) .execute(); assertEquals(Bundle.BundleType.SEARCHSET, result.getType()); assertEquals(ResourceType.Bundle, result.getResourceType()); assertTrue(result.hasEntry()); }
.where(Patient.BIRTHDATE.beforeOrEquals().day("2011-01-01")) .and(Patient.CAREPROVIDER.hasChainedProperty(Organization.NAME.matches().value("Health"))) .returnBundle(ca.uhn.fhir.model.dstu2.resource.Bundle.class) .forResource(Patient.class) .encodedJson() .where(Patient.BIRTHDATE.beforeOrEquals().day("2012-01-22")) .and(Patient.BIRTHDATE.after().day("2011-01-01")) .withTag("http://acme.org/codes", "needs-review") .include(Patient.INCLUDE_ORGANIZATION.asRecursive()) .where(Observation.CODE_VALUE_DATE .withLeft(Observation.CODE.exactly().code("FOO$BAR")) .withRight(Observation.VALUE_DATE.exactly().day("2001-01-01"))) .returnBundle(Bundle.class) .execute();