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))
Example #2
0
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))
Example #3
0
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))
Example #4
0
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))
Example #5
0
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))
Example #6
0
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))
Example #7
0
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))
Example #9
0
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))
Example #19
0
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))
Example #20
0
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))
Example #22
0
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,
    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))
Example #24
0
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))
Example #25
0
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))
Example #26
0
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))
Example #27
0
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))
Example #28
0
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 _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))