def _vitals_list(request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, category=None, record=None, carenet=None): """ List the vitals objects matching the passed query parameters. See :doc:`/query-api` for a listing of valid parameters. Will return :http:statuscode:`200` with a list of vitals on success, :http:statuscode:`400` if any invalid query parameters were passed. """ # change underscores to spaces in the category, to make it easier without URL encoding if category and not filters.has_key('category'): category = category.replace("_"," ") filters['category'] = category q = FactQuery(Vitals, VITALS_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record, carenet) try: return q.render(VITALS_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _simple_clinical_notes_list(request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record=None, carenet=None): """ List the simple_clinical_notes objects matching the passed query parameters. See :doc:`/query-api` for a listing of valid parameters. Will return :http:statuscode:`200` with a list of simple clinical notes on success, :http:statuscode:`400` if any invalid query parameters were passed. """ q = FactQuery(SimpleClinicalNote, SIMPLE_CLINICAL_NOTE_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record, carenet) try: return q.render(SIMPLE_CLINICAL_NOTE_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _vitals_list(request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, category=None, record=None, carenet=None): """ List the vitals objects matching the passed query parameters. See :doc:`/query-api` for a listing of valid parameters. Will return :http:statuscode:`200` with a list of vitals on success, :http:statuscode:`400` if any invalid query parameters were passed. """ # change underscores to spaces in the category, to make it easier without URL encoding if category and not filters.has_key('category'): category = category.replace("_", " ") filters['category'] = category q = FactQuery(Vitals, VITALS_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record, carenet) try: return q.render(VITALS_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _measurement_list(request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, lab_code, record=None, carenet=None): """ List the measurement objects matching the passed query parameters. See :doc:`/query-api` for a listing of valid parameters. Will return :http:statuscode:`200` with a list of measurements on success, :http:statuscode:`400` if any invalid query parameters were passed. """ query_filters = copy.copy(filters) if lab_code: query_filters['lab_code'] = lab_code q = FactQuery(Measurement, MEASUREMENT_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, query_filters, record, carenet) try: # hack, so we don't display lab_code in the output if it wasn't in the query string. q.execute() if q.query_filters.has_key('lab_code') and not filters.has_key('lab_code'): del q.query_filters['lab_code'] return q.render(MEASUREMENT_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def audit_query(request, query_options, record=None): """ Select Audit Objects via the Query API Interface. Accepts any argument specified by the :doc:`/query-api`, and filters available audit objects by the arguments. Will return :http:statuscode:`200` with XML containing individual or aggregated audit records on succes, :http:statuscode:`400` if any of the arguments to the query interface are invalid. """ query_filters = copy.copy(query_options["filters"]) if record: # Careful: security hole here. # /records/abc/audits/?record_id=bcd is dangerous # Eliminate that possibility if query_filters.has_key("record_id") and query_filters["record_id"] is not record.id: return HttpResponseBadRequest("Cannot make Audit queries over records not in the request url") query_filters["record_id"] = record.id query_options["filters"] = query_filters query_options["status"] = None # ignore status for audits q = FactQuery(Audit, AUDIT_FILTERS, query_options, record=None, carenet=None) try: # Don't display record_id in the output if it wasn't in the query string. q.execute() if q.query_filters.has_key("record_id") and not query_options["filters"].has_key("record_id"): del q.query_filters["record_id"] return q.render(AUDIT_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _measurement_list(request, query_options, lab_code, record=None, carenet=None): """ List the measurement objects matching the passed query parameters. See :doc:`/query-api` for a listing of valid parameters. Will return :http:statuscode:`200` with a list of measurements on success, :http:statuscode:`400` if any invalid query parameters were passed. """ # lab_code comes in as part of the url if lab_code: query_options['filters']['lab_code'] = lab_code q = FactQuery(Measurement, MEASUREMENT_FILTERS, query_options, record, carenet) try: # hack, so we don't display lab_code in the output if it wasn't in the query string. q.execute() if q.query_filters.has_key('lab_code') and not query_options[ 'filters'].has_key('lab_code'): del q.query_filters['lab_code'] return q.render(MEASUREMENT_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _measurement_list(request, query_options, lab_code, record=None, carenet=None): """ List the measurement objects matching the passed query parameters. See :doc:`/query-api` for a listing of valid parameters. Will return :http:statuscode:`200` with a list of measurements on success, :http:statuscode:`400` if any invalid query parameters were passed. """ # lab_code comes in as part of the url if lab_code: query_options['filters']['lab_code'] = lab_code q = FactQuery(Measurement, MEASUREMENT_FILTERS, query_options, record, carenet) try: # hack, so we don't display lab_code in the output if it wasn't in the query string. q.execute() if q.query_filters.has_key('lab_code') and not query_options['filters'].has_key('lab_code'): del q.query_filters['lab_code'] return q.render(MEASUREMENT_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _videomessage_list( request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record=None, carenet=None, ): q = FactQuery( VideoMessage, VIDEOMESSAGE_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record, carenet, ) try: return q.render(VIDEOMESSAGE_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _immunization_list(request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record=None, carenet=None): """ List the immunization objects matching the passed query parameters. See :doc:`/query-api` for a listing of valid parameters. Will return :http:statuscode:`200` with a list of immunizations on success, :http:statuscode:`400` if any invalid query parameters were passed. """ q = FactQuery(Immunization, IMMUNIZATION_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record, carenet) try: return q.render(IMMUNIZATION_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _medicationschedule_list( request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record=None, carenet=None, ): q = FactQuery( MedicationSchedule, MEDICATIONSCHEDULE_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record, carenet, ) try: return q.render(MEDICATIONSCHEDULE_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _medicationadministration_list(request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record=None, carenet=None): q = FactQuery(MedicationAdministration, MEDICATIONADMINISTRATION_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record, carenet) try: return q.render(MEDICATIONADMINISTRATION_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _equipmentscheduleitem_list(request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record=None, carenet=None): q = FactQuery(EquipmentScheduleItem, EQUIPMENTSCHEDULEITEM_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record, carenet) try: return q.render(EQUIPMENTSCHEDULEITEM_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _adherenceitem_list(request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record=None, carenet=None): q = FactQuery(AdherenceItem, ADHERENCEITEM_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record, carenet) try: return q.render(ADHERENCEITEM_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _device_list(request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record=None, carenet=None): q = FactQuery(Device, DEVICE_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record, carenet) try: return q.render(DEVICE_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _healthactionresult_list(request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record=None, carenet=None): q = FactQuery(HealthActionResult, HEALTHACTIONRESULT_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record, carenet) try: return q.render(HEALTHACTIONRESULT_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def simple_clinical_notes_list(request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record=None, carenet=None): q = FactQuery(SimpleClinicalNote, SIMPLE_CLINICAL_NOTE_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record, carenet) try: return q.render(SIMPLE_CLINICAL_NOTE_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _healthmeasurement_list(request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record=None, carenet=None): q = FactQuery(HealthMeasurement, HEALTHMEASUREMENT_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record, carenet) try: return q.render(HEALTHMEASUREMENT_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _immunization_list(request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record=None, carenet=None): q = FactQuery(Immunization, IMMUNIZATION_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record, carenet) try: return q.render(IMMUNIZATION_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _equipment_list(request, query_options, record=None, carenet=None): """ List the equipment objects matching the passed query parameters. See :doc:`/query-api` for a listing of valid parameters. Will return :http:statuscode:`200` with a list of equipment on success, :http:statuscode:`400` if any invalid query parameters were passed. """ q = FactQuery(Equipment, EQUIPMENT_FILTERS, query_options, record, carenet) try: return q.render(EQUIPMENT_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _procedure_list(request, query_options, record=None, carenet=None): """ List the procedure objects matching the passed query parameters. See :doc:`/query-api` for a listing of valid parameters. Will return :http:statuscode:`200` with a list of procedures on success, :http:statuscode:`400` if any invalid query parameters were passed. """ q = FactQuery(Procedure, PROCEDURE_FILTERS, query_options, record, carenet) try: return q.render(PROCEDURE_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _simple_clinical_notes_list(request, query_options, record=None, carenet=None): """ List the simple_clinical_notes objects matching the passed query parameters. See :doc:`/query-api` for a listing of valid parameters. Will return :http:statuscode:`200` with a list of simple clinical notes on success, :http:statuscode:`400` if any invalid query parameters were passed. """ q = FactQuery(SimpleClinicalNote, SIMPLE_CLINICAL_NOTE_FILTERS, query_options, record, carenet) try: return q.render(SIMPLE_CLINICAL_NOTE_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _procedure_list( request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record=None, carenet=None, ): """ List the procedure objects matching the passed query parameters. See :doc:`/query-api` for a listing of valid parameters. Will return :http:statuscode:`200` with a list of procedures on success, :http:statuscode:`400` if any invalid query parameters were passed. """ q = FactQuery( Procedure, PROCEDURE_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record, carenet, ) try: return q.render(PROCEDURE_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _vitals_list(request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, category=None, record=None, carenet=None): # change underscores to spaces in the category, to make it easier without URL encoding if category and not filters.has_key('category'): category = category.replace("_"," ") filters['category'] = category q = FactQuery(Vitals, VITALS_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record, carenet) try: return q.render(VITALS_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def audit_query(request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, record=None): """ Select Audit Objects via the Query API Interface. Accepts any argument specified by the :doc:`/query-api`, and filters available audit objects by the arguments. Will return :http:statuscode:`200` with XML containing individual or aggregated audit records on succes, :http:statuscode:`400` if any of the arguments to the query interface are invalid. """ query_filters = copy.copy(filters) if record: # Careful: security hole here. # /records/abc/audits/?record_id=bcd is dangerous # Eliminate that possibility if filters.has_key('record_id') and filters['record_id'] is not record.id: return HttpResponseBadRequest('Cannot make Audit queries over records not in the request url') query_filters['record_id'] = record.id q = FactQuery(Audit, AUDIT_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, None, date_range, query_filters, # ignore status for audits record=None, carenet=None) try: # Don't display record_id in the output if it wasn't in the query string. q.execute() if q.query_filters.has_key('record_id') and not filters.has_key('record_id'): del q.query_filters['record_id'] return q.render(AUDIT_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _measurement_list(request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, lab_code, record=None, carenet=None): """ List the measurement objects matching the passed query parameters. See :doc:`/query-api` for a listing of valid parameters. Will return :http:statuscode:`200` with a list of measurements on success, :http:statuscode:`400` if any invalid query parameters were passed. """ query_filters = copy.copy(filters) if lab_code: query_filters['lab_code'] = lab_code q = FactQuery(Measurement, MEASUREMENT_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, query_filters, record, carenet) try: # hack, so we don't display lab_code in the output if it wasn't in the query string. q.execute() if q.query_filters.has_key( 'lab_code') and not filters.has_key('lab_code'): del q.query_filters['lab_code'] return q.render(MEASUREMENT_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))
def _measurement_list(request, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, filters, lab_code, record=None, carenet=None): query_filters = copy.copy(filters) if lab_code: query_filters['lab_code'] = lab_code q = FactQuery(Measurement, MEASUREMENT_FILTERS, group_by, date_group, aggregate_by, limit, offset, order_by, status, date_range, query_filters, record, carenet) try: # hack, so we don't display lab_code in the output if it wasn't in the query string. q.execute() if q.query_filters.has_key('lab_code') and not filters.has_key('lab_code'): del q.query_filters['lab_code'] return q.render(MEASUREMENT_TEMPLATE) except ValueError as e: return HttpResponseBadRequest(str(e))