Forráskód Böngészése

bug fix with list of diagnosis codes

Steve Nyemba 5 éve
szülő
commit
f27e5773fd
1 módosított fájl, 17 hozzáadás és 3 törlés
  1. 17 3
      edi/parser.py

+ 17 - 3
edi/parser.py

@@ -44,6 +44,7 @@ def get_config(config,row):
     This function will return the meaningfull parts of the configuration for a given item
     """
     _row = list(row) if type(row[0]) == str else list(row[0])
+    
     _info = config[_row[0]] if _row[0] in config else {}
     key = None
     if '@ref' in _info:
@@ -60,6 +61,7 @@ def get_config(config,row):
         if _row[0] in config['SIMILAR']    :
             key = config['SIMILAR'][_row[0]]
             _info = config[key]
+    
     return _info
 def format_date(value) :
     year = value[:4]
@@ -73,7 +75,9 @@ def format_proc(value):
         return {"procedure_type":value.split(':')[0].strip(),"procedure_code":value.split(':')[1].strip()}
     else:
         return value
+def format_diag(value):
 
+    return [ {"code":item[2], "type":item[1]} for item in value if len(item) > 1]
 def get_map(row,config,version):
     
     label = config['label'] if 'label' in config else None    
@@ -92,6 +96,7 @@ def get_map(row,config,version):
 
             if index < len(row) :
                 value = row[index] 
+                
                 if 'cast' in config and key in config['cast'] and value.strip() != '' :
                     value = eval(config['cast'][key])(value)
                     
@@ -106,8 +111,11 @@ def get_map(row,config,version):
         #
         # we are dealing with a complex object
         object_value = []
+        
         for row_item in row :
-            object_value.append( list(get_map(row_item,config,version)))
+            value = get_map(row_item,config,version)
+            object_value.append(value)
+            # object_value.append( list(get_map(row_item,config,version)))
         # object_value = {label:object_value}
     return object_value
 
@@ -129,6 +137,7 @@ def get_content(filename,config,section=None) :
     :filename   location of the file
     """
     section = section if section else config['SECTION']
+    
     x12_file = open(filename).read().split('\n')
     if len(x12_file) == 1 :
         
@@ -144,8 +153,10 @@ def get_content(filename,config,section=None) :
     VERSION = x12_file[1].split('*')[-1].replace('~','')    
     
     row = split(x12_file[3])
-    _info = get_config(config,row)
-    _default_value = get_map(row,_info,VERSION) if _info else None
+    _info = get_config(config,row)    
+    
+    _default_value = get_map(row,_info,VERSION) if _info else {}    
+    
     N = len(locations)
 
     for index in range(0,N-1):
@@ -158,6 +169,9 @@ def get_content(filename,config,section=None) :
             if _info :
                 try:                    
                     # tmp = get_map(row,_info,VERSION)
+                    # if 'parser' in _info :
+                    #     pointer = eval(_info['parser'])
+                    #     print (pointer(row))
                     tmp = get_map(row,_info,VERSION)
                 except Exception as e:                    
                     if sys.verion_info[0] > 2 :