def _test_to_json(fp):
    """Verify CCDA document can be converted to a JSON."""
    ccda_doc = ccda.CcdaDocument(fp)
    json_message = ccda_doc.to_json()
    #self.assertTrue(json_message, "JSON is not successfully created")

    # TODO: Implement stronger test. Verify generated message against testdata.
    JSON_file = json.loads(json_message)  # string complete_JSON to JSON file
    for elements in JSON_file:  # Each elements under json file, such as 'medication', 'vitals', 'labs' e.t.c
        if elements in ['vitals']:
            msg = "\n---Testing for " + elements + " from file " + str(
                fp.name) + "---"
            logging.info(msg)
            for entry in range(
                    len(JSON_file[elements])
            ):  # An entry is a dictionary from a list of entries (dictionaries) for elements
                for key in JSON_file[elements][
                        entry]:  # Key value is a name for each <name:value> in an entry

                    global vital_code
                    vital_code = None

                    if type(JSON_file[elements][entry][key]) == dict:
                        verify_dict_entry(key, JSON_file[elements][entry],
                                          JSON_file[elements][entry][key])

                    elif type(JSON_file[elements][entry][key]) == list:
                        verify_list_entry(key, JSON_file[elements][entry],
                                          JSON_file[elements][entry][key])
                    else:
                        if JSON_file[elements][entry][key] in ['', ' ', None]:
                            logging.error(
                                "Value for field: [%s] under <%s> ~ for value type %s",
                                key, JSON_file[elements][entry],
                                type(JSON_file[elements][entry][key]))
def _test_to_json(fp):
    """Verify CCDA document can be converted to a JSON."""
    ccda_doc = ccda.CcdaDocument(fp)
    json_message = ccda_doc.to_json()
    #self.assertTrue(json_message, "JSON is not successfully created")

    # TODO: Implement stronger test. Verify generated message against testdata.
    JSON_file = json.loads(json_message)  # string complete_JSON to JSON file
    for elements in JSON_file:  # Each elements under json file, such as 'medication', 'vitals', 'labs' e.t.c
        if elements in ['allergies']:
            msg = "\n---Testing for " + elements + " from file " + str(
                fp.name) + "---"
            logging.info(msg)
            for entry in range(
                    len(JSON_file[elements])
            ):  # An entry is a dictionary from a list of entries (dictionaries) for elements
                '''
                    { JSON_file['allergies'][0] =
        "reaction": {"code_system_name": "SNOMED CT", "code": "422587007", "name": "Nausea (finding)","code_system": "2.16.840.1.113883.6.96"},
        "code": {"code_system_name": "RxNorm", "code": "2670", "name": "Codeine","code_system": "2.16.840.1.113883.6.88"},
        "severity": {"code_system_name": "SNOMED CT", "code": "6736007", "name": "", "code_system": "2.16.840.1.113883.6.96"}
                    }
                    '''
                for key in JSON_file[elements][
                        entry]:  # Key value is a name for each <name:value> in an entry
                    '''
                        key is "reaction" or "code" or "severity"
                        JSON_file['allergies'][0]["reaction"] ={"code_system_name": "SNOMED CT", "code": "422587007",
                                                                "name": "Nausea (finding)","code_system": "2.16.840.1.113883.6.96"}
                        '''
                    if type(JSON_file[elements][entry][key]) == dict:
                        verify_dict_entry(key, JSON_file[elements][entry],
                                          JSON_file[elements][entry][key])
                    '''elif type(JSON_file[elements][entry][key]) == list:
 def _test_to_message(self, fp):
     """Verify CCDA document can be converted to a ProtoRPC message."""
     ccda_doc = ccda.CcdaDocument(fp)
     ccda_message = ccda_doc.to_message()
     self.assertTrue(ccda_message)
 def _test_to_csv(self, fp):
     """Verify CCDA document can be converted to a CSV file."""
     ccda_doc = ccda.CcdaDocument(fp)
     ccda_csv = ccda_doc.to_csv()
     self.assertTrue(ccda_csv)
def _test_to_json(fp):
    """Verify CCDA document can be converted to a JSON."""
    ccda_doc = ccda.CcdaDocument(fp)
    json_message = ccda_doc.to_json()
    #self.assertTrue(json_message, "JSON is not successfully created")

    # TODO: Implement stronger test. Verify generated message against testdata.
    JSON_file = json.loads(json_message)  # string complete_JSON to JSON file
    for elements in JSON_file:  # Each elements under json file, such as 'medication', 'vitals', 'labs' e.t.c
        if elements in [
                'medications', 'immunizations', 'problems', 'labs',
                'procedures'
        ]:
            msg = "\n---Testing for " + elements + " from file " + str(
                fp.name) + "---"
            logging.info(msg)
            for entry in range(
                    len(JSON_file[elements])
            ):  # An entry is a dictionary from a list of entries (dictionaries) for elements
                '''
                    JSON_file['medications'][0] =
                        {
                            "date_range": {},
                            "product": {
                                        "code": {"code": "311041", "name": "Insulin Glargine 100 UNT/ML Injectable Solution",
                                        "code_system": "2.16.840.1.113883.6.88"}
                                       },
                            "dose_quantity": {"unit": "1", "value": "30.0"}
                        }

                    JSON_file['labs'][0] =
                        {
                    {"code": {"code": ""},
                    "results": [{"date": "2013-01-24T13:12:12","code": {"code": "718-7", "name": "Hgb Bld-mCnc", "code_system": "2.16.840.1.113883.6.1"},
                                "unit": "g/dL", "value": "15.0"}]
                        }
                    '''
                for key in JSON_file[elements][
                        entry]:  # Key value is a name for each <name:value> in an entry
                    '''
                        key is "product" or "date_range" or "severity"
                        JSON_file['medications'][0]["product"] = {"code": {"code": "311041", "name": "Insulin Glargine 100 UNT/ML Injectable Solution",
                                                                         "code_system": "2.16.840.1.113883.6.88"}}
                        OR
                        key is "code" or "results"
                        JSON_file['labs'][0]["results"] = [{"date": "2013-01-24T13:12:12",
                                                            "code": {"code": "718-7", "name": "Hgb Bld-mCnc", "code_system": "2.16.840.1.113883.6.1"},
                                                            "unit": "g/dL", "value": "15.0"}]
                        JSON_file['labs'][0]["code"] = {"code": ""}
                        '''
                    if type(JSON_file[elements][entry][key]) == dict:
                        ''' elements like : 'medications' or 'immunizations' or 'problems' or 'procedures']'''
                        verify_dict_entry(elements, key,
                                          JSON_file[elements][entry],
                                          JSON_file[elements][entry][key])

                    elif type(JSON_file[elements][entry][key]) == list:
                        ''' elements like : 'labs' '''
                        verify_list_entry(elements, key,
                                          JSON_file[elements][entry],
                                          JSON_file[elements][entry][key])
                        ''' key is "code" or "results"  '''