{ "cells": [ { "cell_type": "markdown", "id": "8a667c39-fd48-4cd3-9c67-0ab97b07f54e", "metadata": {}, "source": [ "## 中医体质问卷" ] }, { "cell_type": "markdown", "id": "e035269e-4cd4-4c86-aa13-68ece6e5186f", "metadata": {}, "source": [ "### 生成中医体质问卷项目表" ] }, { "cell_type": "code", "execution_count": 26, "id": "bb8f52ac-ec78-4cb8-84a4-e1c6447ce89b", "metadata": { "execution": { "iopub.execute_input": "2023-03-31T00:43:11.603821Z", "iopub.status.busy": "2023-03-31T00:43:11.602956Z", "iopub.status.idle": "2023-03-31T00:43:11.636835Z", "shell.execute_reply": "2023-03-31T00:43:11.635507Z", "shell.execute_reply.started": "2023-03-31T00:43:11.603779Z" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "平和 28 6 91.66666666666666\n", "气虚 4 4 0.0\n", "阳虚 6 6 0.0\n", "阴虚 8 6 8.333333333333332\n", "痰湿 9 8 3.125\n", "湿热 11 6 20.833333333333336\n", "血瘀 16 7 32.142857142857146\n", "气郁 7 7 0.0\n", "特禀 10 7 10.714285714285714\n" ] } ], "source": [ "import json\n", "\n", "filename = 'data/tcm0.json'\n", "with open(filename,'r') as fl:\n", " dict1 = json.load(fl) \n", "dict2 = {}\n", "#print(dict1)\n", "for items in dict1['pages']:\n", " for item in items['elements']:\n", " dict2[item['name']] = item['title']['zh-cn']\n", "#print(dict2)\n", "dict3 = {\n", " '平和':['q1','q2','q3','q4','q5','q6','q7','q8'],\n", " '气虚':['q2','q9','q10','q11','q12','q13','q3','q14'],\n", " '阳虚':['q15','q16','q17','q5','q12','q18','q19'],\n", " '阴虚':['q20','q21','q22','q23','q24','q25','q26','q27'],\n", " '痰湿':['q28','q29','q30','q31','q32','q33','q34','q35'],\n", " '湿热':['q36','q37','q38','q39','q40','q41'],\n", " '血瘀':['q42','q43','q44','q45','q46','q8','q47'],\n", " '气郁':['q4','q48','q49','q50','q51','q52','q53'],\n", " '特禀':['q54','q55','q56','q57','q58','q59','q60']\n", "}\n", "#print(dict3)\n", "fanxiang = ['q2','q3','q4','q5','q7','q8']\n", "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}\n", "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}\n", "del data['Gender']\n", "del data['Age']\n", "for k, v in dict3.items():\n", " score = 0\n", " i = 0\n", " for item in v: \n", " if item in data.keys():\n", " if k =='平和' and item in fanxiang:\n", " score =score+6-data[item]\n", " else:\n", " score =score+data[item]\n", " i = i+1\n", " #print(k,score)\n", " zhuanhuan = (score-i)/i/4*100\n", " print(k,score,i,zhuanhuan)\n", " \n" ] }, { "cell_type": "markdown", "id": "79995c3d-6877-4740-8b80-19eaa80e9f66", "metadata": {}, "source": [ "### 生成脊柱问卷项目表" ] }, { "cell_type": "code", "execution_count": 52, "id": "3d708383-c178-492f-8f63-59620aaf19df", "metadata": { "execution": { "iopub.execute_input": "2023-03-31T01:31:30.802357Z", "iopub.status.busy": "2023-03-31T01:31:30.801497Z", "iopub.status.idle": "2023-03-31T01:31:30.850713Z", "shell.execute_reply": "2023-03-31T01:31:30.849626Z", "shell.execute_reply.started": "2023-03-31T01:31:30.802318Z" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'枕寰椎段': ['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']}\n", "{'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': '您有没有膀胱问题?'}\n" ] } ], "source": [ "import yaml\n", "filename = 'data/脊柱症状自我诊断表.yml'\n", "with open(filename, 'r', encoding='utf-8') as f:\n", " result = yaml.load(f.read(), Loader=yaml.FullLoader)\n", "\n", "dict1 = {}\n", "for items in result['pages']: \n", " dict1.setdefault(items['title'],[])\n", " for item in items['elements']:\n", " if item['type'] == 'radiogroup':\n", " #dict2 = {item['name']:item['title']['zh-cn']}\n", " dict1[items['title']].append( {item['name']:item['title']['zh-cn']})\n", "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']\n", "dict_jizhu = {}\n", "dict_wenjuan = {}\n", "for k, v in dict1.items():\n", " dict_jizhu.setdefault(k,[])\n", " for item in v:\n", " for k1,v1 in item.items():\n", " dict_jizhu[k].append(k1)\n", " dict_wenjuan[k1] = v1\n", "print(dict_jizhu)\n", "print(dict_wenjuan) " ] }, { "cell_type": "code", "execution_count": null, "id": "31b9d73b-8eac-4b5e-99b8-37c9f714fb3b", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.6" } }, "nbformat": 4, "nbformat_minor": 5 }