@Override public StringContent getContent(String language, String name) { List<StringContent> result = queryView("by_language_and_name", ComplexKey.of(language, name)); return result.isEmpty() ? null : result.get(0); }
public ComplexKey { String key; String value; } ComplexKey monday = new ComplexKey("monday", "monday"); ComplexKey notCategorized = new ComplexKey("Z_Not Categorized", "Not Categorized");
private ViewQuery createBackReferenceQuery(String thisId, DocumentReferences ann, String fieldName) { boolean desc = ann.descendingSortOrder(); ComplexKey start = ComplexKey.of(thisId, fieldName); ComplexKey end = ComplexKey.of(thisId, fieldName, ComplexKey.emptyObject()); if (desc) { ComplexKey tmp = start; start = end; end = tmp; } return new ViewQuery().designDocId(resolveDesignDocId(ann)) .viewName(resolveViewName(ann, fieldName)) .includeDocs(true) .descending(ann.descendingSortOrder()).startKey(start) .endKey(end); }
@Override public boolean isContentAvailable(String language, String name) { return !queryView("by_language_and_name", ComplexKey.of(language, name)).isEmpty(); }
public static ComplexKey of(Object... components) { return new ComplexKey(components); } /**
@Override public boolean isContentAvailable(String language, String name) { return !queryView("by_language_and_name", ComplexKey.of(language, name)).isEmpty(); }
@Override @View(name = "find_by_motech_id_and_encounter_type", map = "function(doc) {if(doc.type === 'Encounter') emit([doc.encounterPatientId, doc.encounterType]);}") public List<CouchEncounterImpl> findEncountersByMotechIdAndEncounterType(String motechId, String encounterType) { return queryView("find_by_motech_id_and_encounter_type", ComplexKey.of(motechId, encounterType)); }
@View(name = "find_by_parameter", map = FUNCTION_DOC_EMIT_DOC_PARAMETERS) public List<CouchEventLog> findAllByParameter(String parameter, String value) { return queryView("find_by_parameter", ComplexKey.of(parameter, value)); }
@View(name = "find_by_subject_and_parameter", map = FUNCTION_DOC_EMIT_DOC_SUBJECT_PARAMETERS) public List<CouchEventLog> findAllBySubjectAndParameter(String subject, String parameter, String value) { return queryView("find_by_subject_and_parameter", ComplexKey.of(subject, parameter, value)); }
@Override public StreamContent getContent(String language, String name) { List<StreamContent> result = queryView("by_language_and_name", ComplexKey.of(language, name)); if (result == null || result.isEmpty()) { return null; } StreamContent fetchedContent = result.get(0); AttachmentInputStream attachmentInputStream = db.getAttachment(fetchedContent.getId(), fetchedContent.getId()); fetchedContent.setInputStream(attachmentInputStream); return fetchedContent; }
@View(name = "by_triggerkey", map = "function(doc) { if (doc.type === 'CouchDbTrigger') emit([doc.trigger_name, doc.trigger_group], doc._id); }") public List<CouchDbTrigger> getTriggersByKeys(List<TriggerKey> triggerKeys) throws JobPersistenceException { List<ComplexKey> keys = new ArrayList<ComplexKey>(); for (TriggerKey triggerKey : triggerKeys) { keys.add(ComplexKey.of(triggerKey.getName(), triggerKey.getGroup())); } return db.queryView(createQuery("by_triggerkey").includeDocs(true).keys(keys), type); }
@View(name = "by_jobkey", map = "function(doc) { if (doc.type === 'CouchDbJobDetail') emit([doc.name, doc.group], doc._id); }") public List<CouchDbJobDetail> getJobs(List<JobKey> jobKeys) { List<ComplexKey> keys = new ArrayList<ComplexKey>(); for (JobKey jobKey : jobKeys) { keys.add(ComplexKey.of(jobKey.getName(), jobKey.getGroup())); } return db.queryView(createQuery("by_jobkey").includeDocs(true).keys(keys), type); }
@View(name = "by_property", map = "function(doc) { \n" + " if (doc.type === 'AppointmentCalendar') {\n" + " for (var i = 0; i < doc.visits.length; i++) {\n" + " for (var prop in doc.visits[i].data)\n" + " emit([prop, doc.visits[i].data[prop]], {\"externalId\" :doc.externalId,\"visit\" : doc.visits[i]});\n" + " }\n" + " }\n" + "}\n") public List<VisitResponse> findByMetadataProperty(String property, String value) { List<VisitQueryResult> visitQueryResults = db.queryView(createQuery("by_property").key(ComplexKey.of(property, value)).includeDocs(false), VisitQueryResult.class); return extractVisitResponse(visitQueryResults); }
@Override @View(name = "find_observations_by_patient_id_and_concept_name", map = "function (doc) { if (doc.type === 'Encounter') for each(item in doc.observations) { emit([doc.encounterPatientId, item.conceptName], item); recursiveDescent(item); } function recursiveDescent(obsNode) { for each(item in obsNode.dependantObservations) { emit([doc.encounterPatientId, item.conceptName], item); recursiveDescent(item) }}}") public List<MRSObservation> findObservationsByPatientIdAndConceptName(String motechId, String conceptName) { ViewQuery viewQuery = createQuery("find_observations_by_patient_id_and_concept_name").key(ComplexKey.of(motechId, conceptName)).includeDocs(false); ViewResult viewResult = db.queryView(viewQuery); List<MRSObservation> obsList = new ArrayList<MRSObservation>(); for (Row row : viewResult.getRows()) { JsonNode value = row.getValueAsNode(); String text = value.toString(); MRSObservation obs = (CouchObservation) CouchJsonUtils.readJson(text, CouchObservation.class); obsList.add(obs); } return obsList; }
@View(name = "by_jobkey", map = "function(doc) { if (doc.type === 'CouchDbTrigger') emit([doc.job_name, doc.job_group], doc._id); }") public List<CouchDbTrigger> findByJob(JobKey jobKey) { return db.queryView(createQuery("by_jobkey").key(ComplexKey.of(jobKey.getName(), jobKey.getGroup())).includeDocs(true), type); }