def tabular_data(self, mode, case_id, start_date, end_date): #, limit=50, skip=0): try: case_doc = PactPatientCase.get(case_id) except ResourceNotFound: case_doc = None if case_doc is not None: # patient is selected startkey = [ case_id, 'anchor_date', start_date.year, start_date.month, start_date.day ] endkey = [ case_id, 'anchor_date', end_date.year, end_date.month, end_date.day ] elif case_doc is None: # patient is not selected, do all patients startkey = [start_date.year, start_date.month, start_date.day] endkey = [end_date.year, end_date.month, end_date.day] skip = 0 view_results = CObservation.view( 'pact/dots_observations', startkey=startkey, endkey=endkey, limit=COUCH_CHUNK_LIMIT, skip=skip, classes={ None: CObservation }, ).all() while len(view_results) > 0: if skip > COUCH_MAX_LIMIT: logging.error( "Pact DOT admin query: Too much data returned for query %s-%s" % (startkey, endkey)) break for v in view_results: yield v skip += COUCH_CHUNK_LIMIT view_results = CObservation.view( 'pact/dots_observations', startkey=startkey, endkey=endkey, limit=COUCH_CHUNK_LIMIT, skip=skip, classes={ None: CObservation }, ).all()
def query_observations_singledoc(doc_id): """ Hit couch to get the CObservations for a single xform submission """ key = ['doc_id', doc_id] observations = CObservation.view('pact/dots_observations', key=key, classes={None: CObservation}).all() return observations
def _observationGenerator(encounter_date, observation_date, adherence=DOT_ADHERENCE_EMPTY): return CObservation( encounter_date=encounter_date, observed_date=observation_date, adherence=adherence, )
def query_observations(case_id, start_date, end_date): """ Hit couch to get the CObservations for the given date range of the OBSERVED dates. These are the actual observation day cells in which they filled in DOT data. args: start_date and end_date as datetime objects """ startkey = [case_id, 'anchor_date', start_date.year, start_date.month, start_date.day] endkey = [case_id, 'anchor_date', end_date.year, end_date.month, end_date.day] observations = CObservation.view('pact/dots_observations', startkey=startkey, endkey=endkey).all() return observations
def tabular_data(self, mode, case_id, start_date, end_date):#, limit=50, skip=0): try: case_doc = PactPatientCase.get(case_id) except ResourceNotFound: case_doc = None if case_doc is not None: #patient is selected startkey = [case_id, 'anchor_date', start_date.year, start_date.month, start_date.day] endkey = [case_id, 'anchor_date', end_date.year, end_date.month, end_date.day] elif case_doc is None: #patient is not selected, do all patients startkey = [start_date.year, start_date.month, start_date.day] endkey = [end_date.year, end_date.month, end_date.day] skip = 0 view_results = CObservation.view( 'pact/dots_observations', startkey=startkey, endkey=endkey, limit=COUCH_CHUNK_LIMIT, skip=skip, classes={None: CObservation}, ).all() while len(view_results) > 0: if skip > COUCH_MAX_LIMIT: logging.error("Pact DOT admin query: Too much data returned for query %s-%s" % (startkey, endkey)) break for v in view_results: yield v skip += COUCH_CHUNK_LIMIT view_results = CObservation.view( 'pact/dots_observations', startkey=startkey, endkey=endkey, limit=COUCH_CHUNK_LIMIT, skip=skip, classes={None: CObservation}, ).all()