Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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
Exemplo n.º 4
0
def _observationGenerator(encounter_date,
                          observation_date,
                          adherence=DOT_ADHERENCE_EMPTY):
    return CObservation(
        encounter_date=encounter_date,
        observed_date=observation_date,
        adherence=adherence,
    )
Exemplo n.º 5
0
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
Exemplo n.º 6
0
    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()