def get_patient_display_cache(case_ids): """ For a given set of case_ids, return name and pact_ids """ if len(case_ids) == 0: return {} case_es = ReportCaseES(PACT_DOMAIN) query = { "fields": [ "_id", "name", ], "script_fields": { "case_id": { "script": "_source._id" }, "pactid": get_report_script_field("pactid"), "first_name": get_report_script_field("first_name"), "last_name": get_report_script_field("last_name"), }, "filter": { "and": [ { "term": { "domain.exact": "pact" } }, { "ids": { "values": case_ids, } } ] }, "size": len(case_ids) } res = case_es.run_query(query) from pact.reports.patient import PactPatientInfoReport ret = {} for entry in res['hits']['hits']: case_id = entry['fields']['case_id'] ret[case_id] = entry['fields'] ret[case_id]['url'] = PactPatientInfoReport.get_url(*['pact']) + "?patient_id=%s" % case_id return ret
def get_patient_display_cache(case_ids): """ For a given set of case_ids, return name and pact_ids """ if len(case_ids) == 0: return {} case_es = ReportCaseES(PACT_DOMAIN) query = { "fields": [ "_id", "name", ], "script_fields": { "case_id": { "script": "_source._id" }, "pactid": get_report_script_field("pactid"), "first_name": get_report_script_field("first_name"), "last_name": get_report_script_field("last_name"), }, "filter": { "and": [{ "term": { "domain.exact": "pact" } }, { "ids": { "values": case_ids, } }] }, "size": len(case_ids) } res = case_es.run_query(query) from pact.reports.patient import PactPatientInfoReport ret = {} for entry in res['hits']['hits']: case_id = entry['fields']['case_id'] ret[case_id] = entry['fields'] ret[case_id]['url'] = PactPatientInfoReport.get_url( *['pact']) + "?patient_id=%s" % case_id return ret
def dots_submissions_by_case(case_id, query_date, username=None): """ Actually run query for username submissions todo: do terms for the pact_ids instead of individual term? """ xform_es = ReportXFormES(PACT_DOMAIN) script_fields = { "doc_id": get_report_script_field('_id', is_known=True), "pact_id": get_report_script_field("form.pact_id"), "encounter_date": get_report_script_field('form.encounter_date'), "username": get_report_script_field('form.meta.username', is_known=True), "visit_type": get_report_script_field('form.visit_type'), "visit_kept": get_report_script_field('form.visit_kept'), "contact_type": get_report_script_field('form.contact_type'), "observed_art": get_report_script_field('form.observed_art'), "observed_non_art": get_report_script_field('form.observed_non_art'), "observer_non_art_dose": get_report_script_field('form.observed_non_art_dose'), "observed_art_dose": get_report_script_field('form.observed_art_dose'), "pillbox_check": get_report_script_field('form.pillbox_check.check'), "scheduled": get_report_script_field('form.scheduled'), } term_block = {'form.#type': 'dots_form'} if username is not None: term_block['form.meta.username'] = username query = xform_es.by_case_id_query(PACT_DOMAIN, case_id, terms=term_block, date_field='form.encounter_date.#value', startdate=query_date, enddate=query_date) query['sort'] = {'received_on': 'asc'} query['script_fields'] = script_fields query['size'] = 1 query['from'] = 0 res = xform_es.run_query(query) print simplejson.dumps(res, indent=2) return res
def dots_submissions_by_case(case_id, query_date, username=None): """ Actually run query for username submissions todo: do terms for the pact_ids instead of individual term? """ xform_es = ReportXFormES(PACT_DOMAIN) script_fields = { "doc_id": get_report_script_field('_id', is_known=True), "pact_id": get_report_script_field("form.pact_id"), "encounter_date": get_report_script_field('form.encounter_date'), "username": get_report_script_field('form.meta.username', is_known=True), "visit_type": get_report_script_field('form.visit_type'), "visit_kept": get_report_script_field('form.visit_kept'), "contact_type": get_report_script_field('form.contact_type'), "observed_art": get_report_script_field('form.observed_art'), "observed_non_art": get_report_script_field('form.observed_non_art'), "observer_non_art_dose": get_report_script_field('form.observed_non_art_dose'), "observed_art_dose": get_report_script_field('form.observed_art_dose'), "pillbox_check": get_report_script_field('form.pillbox_check.check'), "scheduled": get_report_script_field('form.scheduled'), } term_block = {'form.#type': 'dots_form'} if username is not None: term_block['form.meta.username'] = username query = xform_es.by_case_id_query(PACT_DOMAIN, case_id, terms=term_block, date_field='form.encounter_date.#value', startdate=query_date, enddate=query_date) query['sort'] = {'received_on': 'asc'} query['script_fields'] = script_fields query['size'] = 1 query['from'] = 0 res = xform_es.run_query(query) print json.dumps(res, indent=2) return res