Files
jupyter/调查问卷管理.ipynb
2023-03-31 14:45:04 +00:00

8.8 KiB

中医体质问卷

生成中医体质问卷项目表

In [26]:
import json

filename = 'data/tcm0.json'
with open(filename,'r') as fl:
    dict1 = json.load(fl) 
dict2 = {}
#print(dict1)
for items in dict1['pages']:
    for item in items['elements']:
        dict2[item['name']] = item['title']['zh-cn']
#print(dict2)
dict3 = {
    '平和':['q1','q2','q3','q4','q5','q6','q7','q8'],
    '气虚':['q2','q9','q10','q11','q12','q13','q3','q14'],
    '阳虚':['q15','q16','q17','q5','q12','q18','q19'],
    '阴虚':['q20','q21','q22','q23','q24','q25','q26','q27'],
    '痰湿':['q28','q29','q30','q31','q32','q33','q34','q35'],
    '湿热':['q36','q37','q38','q39','q40','q41'],
    '血瘀':['q42','q43','q44','q45','q46','q8','q47'],
    '气郁':['q4','q48','q49','q50','q51','q52','q53'],
    '特禀':['q54','q55','q56','q57','q58','q59','q60']
}
#print(dict3)
fanxiang = ['q2','q3','q4','q5','q7','q8']
data1 = {"Gender":"f","Age":"O","q1O":3,"q2O":1,"q3O":1,"q4O":5,"q5O":5,"q6O":5,"q7O":5,"q8O":4,"q9O":5,"q10O":1,"q11O":5,"q12O":5,"q13O":5,"q14O":5,"q15O":5,"q16O":5,"q17O":5,"q18O":4,"q19O":5,"q20O":5,"q21O":3,"q22O":3,"q23O":4,"q24O":5,"q25O":5,"q26O":5,"q27O":3,"q28O":5,"q29O":5,"q30O":4,"q1":4,"q3":2,"q4":1,"q5":1,"q6":1,"q8":4,"q10":1,"q13":1,"q14":1,"q15":1,"q16":1,"q17":1,"q18":1,"q19":1,"q20":1,"q22":3,"q23":1,"q25":1,"q26":1,"q27":1,"q28":1,"q29":1,"q30":3,"q31":1,"q32":1,"q33":1,"q34":1,"q35":1,"q36":1,"q37":1,"q38":1,"q39":1,"q40":1,"q41":1,"q42":1,"q43":1,"q44":1,"q45":2,"q46":1,"q47":4,"q48":1,"q49":1,"q50":1,"q51":1,"q52":1,"q53":1,"q54":2,"q55":1,"q56":1,"q57":1,"q58":1,"q59":1,"q60":1,"qv1":2,"qv2":2,"qv3":2,"qv4":2,"qv5":2,"qv6":2,"qv7":2,"qv8":2,"qv9":2,"qv10":2,"qv11":2,"qv12":2,"qv13":2,"qv14":2,"qv15":2,"qv16":2,"qv17":2,"qv18":2,"qv19":2,"qv20":2,"qv21":2,"qv22":2,"qv23":2,"qv24":2,"qv25":2,"qv26":2}
data = {"Gender":"m","Age":"O","q1O":1,"q2O":4,"q3O":1,"q4O":1,"q5O":5,"q6O":5,"q7O":5,"q8O":5,"q9O":5,"q10O":1,"q11O":5,"q12O":5,"q13O":5,"q14O":5,"q15O":5,"q16O":5,"q17O":5,"q18O":5,"q19O":5,"q20O":5,"q21O":5,"q22O":5,"q23O":5,"q24O":5,"q25O":5,"q26O":5,"q27O":5,"q28O":2,"q29O":5,"q30O":5,"q1":5,"q3":1,"q4":1,"q5":1,"q6":5,"q8":3,"q10":1,"q13":1,"q14":1,"q15":1,"q16":1,"q17":1,"q18":1,"q19":1,"q20":3,"q22":1,"q23":1,"q25":1,"q26":1,"q27":1,"q28":1,"q29":1,"q30":1,"q31":1,"q32":2,"q33":1,"q34":1,"q35":1,"q36":1,"q37":1,"q38":1,"q39":3,"q40":4,"q41":1,"q42":1,"q43":3,"q44":1,"q45":3,"q46":1,"q47":4,"q48":1,"q49":1,"q50":1,"q51":1,"q52":1,"q53":1,"q54":1,"q55":4,"q56":1,"q57":1,"q58":1,"q59":1,"q60":1,"qv1":1,"qv2":2,"qv3":2,"qv4":1,"qv5":2,"qv6":2,"qv7":1,"qv8":2,"qv9":2,"qv10":2,"qv11":2,"qv12":2,"qv13":2,"qv14":2,"qv15":2,"qv16":1,"qv17":2,"qv18":2,"qv19":1,"qv20":2,"qv21":2,"qv22":2,"qv23":2,"qv24":2,"qv25":2,"qv26":2}
del data['Gender']
del data['Age']
for k, v in dict3.items():
    score = 0
    i = 0
    for item in v:        
        if item in data.keys():
            if k =='平和' and item in fanxiang:
                score =score+6-data[item]
            else:
                score =score+data[item]
            i = i+1
            #print(k,score)
    zhuanhuan = (score-i)/i/4*100
    print(k,score,i,zhuanhuan)
            
平和 28 6 91.66666666666666
气虚 4 4 0.0
阳虚 6 6 0.0
阴虚 8 6 8.333333333333332
痰湿 9 8 3.125
湿热 11 6 20.833333333333336
血瘀 16 7 32.142857142857146
气郁 7 7 0.0
特禀 10 7 10.714285714285714

生成脊柱问卷项目表

In [52]:
import yaml
filename = 'data/脊柱症状自我诊断表.yml'
with open(filename, 'r', encoding='utf-8') as f:
    result = yaml.load(f.read(), Loader=yaml.FullLoader)

dict1 = {}
for items in result['pages']:    
    dict1.setdefault(items['title'],[])
    for item in items['elements']:
        if item['type'] == 'radiogroup':
            #dict2 = {item['name']:item['title']['zh-cn']}
            dict1[items['title']].append( {item['name']:item['title']['zh-cn']})
xm = ['qv1','qv2','qv3','qv4','qv5','qv6','qv7','qv8','qv9','qv10','qv11','qv12','qv13','qv14','qv15','qv16','qv17','qv18','qv19','qv20','qv21','qv22','qv23','qv24','qv25','qv26']
dict_jizhu = {}
dict_wenjuan = {}
for k, v in dict1.items():
    dict_jizhu.setdefault(k,[])
    for item in v:
        for k1,v1 in item.items():
            dict_jizhu[k].append(k1)
            dict_wenjuan[k1] = v1
print(dict_jizhu)
print(dict_wenjuan)   
{'枕寰椎段': ['qv1', 'qv2', 'qv3', 'qv4', 'qv5', 'qv6', 'qv7', 'qv8', 'qv9', 'qv10'], '胸椎段': ['qv11', 'qv12', 'qv13', 'qv14', 'qv15', 'qv16', 'qv17'], '腰椎段': ['qv18', 'qv19', 'qv20', 'qv21', 'qv22', 'qv23', 'qv24'], '骨盆段': ['qv25', 'qv26']}
{'qv1': '您是否会经常出现耳鸣的感觉?', 'qv2': '您经常出现眩晕的症状吗?', 'qv3': '您是否会经常牙痛?', 'qv4': '您近视吗?', 'qv5': '您有偏头疼吗?', 'qv6': '您是否会经常牙痛?', 'qv7': '您有失眠的困扰吗?', 'qv8': '您的手会经常麻木吗?', 'qv9': '您的肩臂痛吗?', 'qv10': '您有网球肘吗?', 'qv11': '您有时会感到胸闷气短吗?', 'qv12': '您会感觉到心慌吗?', 'qv13': '您有心绞痛吗?', 'qv14': '您有哮喘吗?', 'qv15': '您有胃胀痛的感觉吗?', 'qv16': '您平时会消化不良吗?', 'qv17': '您有胃溃疡吗?', 'qv18': '您平时会腰胁部痛吗?', 'qv19': '您会因腰痛而弯腰受限吗?', 'qv20': '您有尿血的问题吗?', 'qv21': '您容易便秘吗?', 'qv22': '您有妇科症状吗?', 'qv23': '您有前列腺问题吗?', 'qv24': '您的脚容易感到凉吗?', 'qv25': '您有没有长短腿的问题?', 'qv26': '您有没有膀胱问题?'}
In [ ]: