docs: def get_doc(self, item_id, id_field="_id", **kwargs):
          """ returns a single item data record/document based on specified
          criteria
  
          args:
              item_id: the id value of the desired item. Can be used in
                       combination with the id_field for a paired lookup.
              id_field: the field that is related to the item_id; default = '_id'
                        **Example**: selecting a country using a different
                        itendifier than the record id. The United States's '_id'
                        value is 'US' however the record can be found by
                        specifying item_id='USA', id_field='ISO 3166-1 A3'
          kwargs:
              used to overided any of the initialization values for the class
          """
  
          lg = logging.getLogger("%s.%s" % (self.ln, inspect.stack()[0][3]))
          lg.setLevel(self.log_level)
  
          args = inspect.getargvalues(inspect.currentframe())[3]
          lg.debug("\n****** Args *****:\n%s",
                   pp.pformat(args))
  
          es = kwargs.get("es",self.es)
          doc_type = kwargs.get("doc_type", self.doc_type)
          if id_field == "_id":
              lg.debug("*** _id lookup: index: %s item_id: %s",
                       self.es_index,
                       item_id)
              result = es.get(index=self.es_index,
                              id=item_id)
          else:
              dsl = {
                  "query": {
                      "constant_score": {
                          "filter": {
                              "term": { id_field: item_id }
                          }
                      }
                  }
              }
              lg.debug("*** id_field lookup: index: %s item_id: %s \nDSL: %s",
                       self.es_index,
                       item_id,
                       pp.pformat(dsl))
              result = es.search(index=self.es_index,
                                 doc_type=doc_type,
                                 body=dsl)
              result = first(result.get("hits",{}).get("hits",[]))
          lg.debug("\tresult:\n%s", pp.pformat(result))
          self.item_data = result
          self.form_data = MultiDict(result)
          return result