diff --git a/体测单位/天津石化.ipynb b/体测单位/天津石化.ipynb index f7ac6a2..a07a5fc 100644 --- a/体测单位/天津石化.ipynb +++ b/体测单位/天津石化.ipynb @@ -172,27 +172,12 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "id": "27529013-f3de-4e23-980d-f62203e4df88", "metadata": { - "execution": { - "iopub.execute_input": "2022-11-30T10:12:53.515296Z", - "iopub.status.busy": "2022-11-30T10:12:53.514432Z", - "iopub.status.idle": "2022-11-30T10:12:55.337907Z", - "shell.execute_reply": "2022-11-30T10:12:55.337125Z", - "shell.execute_reply.started": "2022-11-30T10:12:53.515185Z" - }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ok\n" - ] - } - ], + "outputs": [], "source": [ "import json\n", "import openpyxl\n", @@ -451,17 +436,9 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "ed681a0d-4ee8-48ec-ab05-23da7156a44e", - "metadata": { - "execution": { - "iopub.execute_input": "2022-11-26T18:05:46.062534Z", - "iopub.status.busy": "2022-11-26T18:05:46.062001Z", - "iopub.status.idle": "2022-11-26T18:05:46.353459Z", - "shell.execute_reply": "2022-11-26T18:05:46.352749Z", - "shell.execute_reply.started": "2022-11-26T18:05:46.062456Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "import json\n", @@ -665,27 +642,12 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "id": "c21efc40-2639-4b22-851f-925cd3f12d3a", "metadata": { - "execution": { - "iopub.execute_input": "2022-12-02T01:57:12.001357Z", - "iopub.status.busy": "2022-12-02T01:57:12.001077Z", - "iopub.status.idle": "2022-12-02T01:57:12.883178Z", - "shell.execute_reply": "2022-12-02T01:57:12.882427Z", - "shell.execute_reply.started": "2022-12-02T01:57:12.001330Z" - }, "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ok!\n" - ] - } - ], + "outputs": [], "source": [ "import json\n", "import openpyxl\n", @@ -720,613 +682,12 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "id": "6b8ae75d-71a3-4cbe-a216-03c28d78156c", "metadata": { - "execution": { - "iopub.execute_input": "2022-12-02T01:52:28.990631Z", - "iopub.status.busy": "2022-12-02T01:52:28.990331Z", - "iopub.status.idle": "2022-12-02T01:52:29.019041Z", - "shell.execute_reply": "2022-12-02T01:52:29.018243Z", - "shell.execute_reply.started": "2022-12-02T01:52:28.990609Z" - } + "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1731990\n", - "1730445\n", - "1733543\n", - "3402384\n", - "1732997\n", - "1737697\n", - "1730575\n", - "1730370\n", - "1739948\n", - "3442741\n", - "1730359\n", - "3362198\n", - "3417263\n", - "1730439\n", - "1733749\n", - "3440898\n", - "1730989\n", - "1730356\n", - "1735371\n", - "1732814\n", - "1730913\n", - "1736882\n", - "1733497\n", - "3362212\n", - "1731589\n", - "1739001\n", - "1731819\n", - "1732459\n", - "3125774\n", - "1730902\n", - "3362662\n", - "1731856\n", - "1737990\n", - "3125699\n", - "3317857\n", - "1730219\n", - "1732471\n", - "3317863\n", - "1734383\n", - "3499245\n", - "1739589\n", - "1733813\n", - "3499240\n", - "1734246\n", - "3125710\n", - "3499237\n", - "3499243\n", - "3499253\n", - "1739362\n", - "3428692\n", - "1739050\n", - "1737160\n", - "1732665\n", - "3287806\n", - "1731058\n", - "1733868\n", - "1733867\n", - "1731561\n", - "3374924\n", - "3167516\n", - "3287818\n", - "3422008\n", - "1734221\n", - "1733715\n", - "3428694\n", - "1734188\n", - "1536861\n", - "3125698\n", - "1730538\n", - "3428695\n", - "3499244\n", - "1732461\n", - "1739419\n", - "3499257\n", - "1735528\n", - "3252962\n", - "1534670\n", - "3125708\n", - "1736685\n", - "3317910\n", - "3287811\n", - "3499250\n", - "3499252\n", - "1733962\n", - "1732064\n", - "1532672\n", - "1735489\n", - "1732061\n", - "1736599\n", - "1736711\n", - "1738767\n", - "1739302\n", - "1733200\n", - "1733921\n", - "1739427\n", - "1730169\n", - "1739308\n", - "1535224\n", - "3145487\n", - "3452129\n", - "3391160\n", - "1532563\n", - "1730119\n", - "1732176\n", - "3362572\n", - "3394990\n", - "1739239\n", - "1730527\n", - "3145535\n", - "3362148\n", - "3417105\n", - "1735004\n", - "1730099\n", - "1738145\n", - "3417344\n", - "3391150\n", - "1735011\n", - "1739366\n", - "1733562\n", - "1736119\n", - "3468164\n", - "1735730\n", - "3286619\n", - "1738273\n", - "3440494\n", - "1736766\n", - "1738693\n", - "3440490\n", - "1738688\n", - "1736104\n", - "1730461\n", - "3499700\n", - "1739760\n", - "1121028\n", - "1731513\n", - "1732257\n", - "1731552\n", - "1122144\n", - "1738750\n", - "1737455\n", - "3499719\n", - "1736319\n", - "1736146\n", - "1736909\n", - "3499696\n", - "1731467\n", - "1732266\n", - "1732170\n", - "1731539\n", - "3362183\n", - "3499712\n", - "1731534\n", - "1731510\n", - "1731532\n", - "1731442\n", - "1739826\n", - "1731524\n", - "3318695\n", - "1731469\n", - "1736750\n", - "3499705\n", - "1731444\n", - "3468014\n", - "3499693\n", - "1731476\n", - "3499702\n", - "3440472\n", - "1731514\n", - "3499691\n", - "1730766\n", - "1731487\n", - "1733004\n", - "1732263\n", - "1732815\n", - "1088006\n", - "1731509\n", - "1734184\n", - "1731511\n", - "1731443\n", - "3499708\n", - "1730580\n", - "1731540\n", - "1731449\n", - "3286600\n", - "3468152\n", - "3468033\n", - "1731535\n", - "1731520\n", - "3145577\n", - "1731545\n", - "1732809\n", - "3440496\n", - "1733354\n", - "1731461\n", - "1733157\n", - "3442666\n", - "3499720\n", - "1731472\n", - "1732805\n", - "1737993\n", - "1731500\n", - "1739223\n", - "3499710\n", - "3499718\n", - "1731496\n", - "1732808\n", - "1730648\n", - "1731459\n", - "3499689\n", - "1731529\n", - "1731956\n", - "1731457\n", - "1731471\n", - "1738961\n", - "1731502\n", - "1739835\n", - "1732803\n", - "1736917\n", - "1731386\n", - "1731935\n", - "1738682\n", - "3468160\n", - "1732253\n", - "3168143\n", - "3318687\n", - "1737044\n", - "1731489\n", - "1730524\n", - "1739289\n", - "1730599\n", - "1731477\n", - "3468147\n", - "3468012\n", - "1736728\n", - "1731497\n", - "1731773\n", - "1731468\n", - "3287821\n", - "1732921\n", - "1731463\n", - "1736129\n", - "1121117\n", - "1730586\n", - "1730522\n", - "1736757\n", - "1730550\n", - "3499711\n", - "3468183\n", - "1731486\n", - "1738690\n", - "1730470\n", - "1730593\n", - "1731464\n", - "1738669\n", - "1736743\n", - "3499715\n", - "1738641\n", - "1732807\n", - "1736794\n", - "1736798\n", - "1731465\n", - "1738668\n", - "1732269\n", - "1730468\n", - "3145776\n", - "1730649\n", - "1730612\n", - "1739417\n", - "1732802\n", - "1736729\n", - "3468010\n", - "1736755\n", - "1730639\n", - "1731479\n", - "1738245\n", - "1731538\n", - "3499695\n", - "1731491\n", - "1739006\n", - "1730962\n", - "3440495\n", - "1730616\n", - "1731537\n", - "1730430\n", - "1730163\n", - "1732804\n", - "1731518\n", - "1733541\n", - "1731221\n", - "1731478\n", - "1731840\n", - "1737054\n", - "1738505\n", - "1730052\n", - "3391167\n", - "3440899\n", - "1088010\n", - "1730578\n", - "3468015\n", - "1731482\n", - "1732252\n", - "1738654\n", - "1730230\n", - "1730267\n", - "1732164\n", - "1731875\n", - "1730519\n", - "1733549\n", - "1739010\n", - "1739125\n", - "1738942\n", - "1737065\n", - "1732810\n", - "3468042\n", - "1730244\n", - "1730256\n", - "1736505\n", - "3145483\n", - "1731951\n", - "1739918\n", - "1733503\n", - "1738877\n", - "1738999\n", - "1731536\n", - "1739924\n", - "1732784\n", - "1738890\n", - "1738673\n", - "1736841\n", - "1732682\n", - "1738542\n", - "1739011\n", - "1733733\n", - "1740092\n", - "1734764\n", - "1739014\n", - "1739812\n", - "1735318\n", - "1730650\n", - "1738495\n", - "1740086\n", - "1730656\n", - "1738891\n", - "3499698\n", - "1730657\n", - "1739242\n", - "1730584\n", - "1730651\n", - "1730581\n", - "1731525\n", - "3499703\n", - "1730592\n", - "1739005\n", - "1738876\n", - "1730630\n", - "1730108\n", - "3145594\n", - "1730589\n", - "1730611\n", - "1733725\n", - "1736884\n", - "3468184\n", - "3362172\n", - "3362657\n", - "1737052\n", - "1738861\n", - "1735247\n", - "3362161\n", - "1738700\n", - "1733559\n", - "1730239\n", - "1739007\n", - "3442721\n", - "1738885\n", - "1857524\n", - "1731662\n", - "1733782\n", - "1736720\n", - "1738998\n", - "1730658\n", - "1731475\n", - "1738888\n", - "1738889\n", - "1730266\n", - "3145554\n", - "1732778\n", - "1730467\n", - "3499706\n", - "3499694\n", - "1737420\n", - "1731904\n", - "1740109\n", - "1739647\n", - "1739761\n", - "1738835\n", - "3468162\n", - "1738865\n", - "1738902\n", - "1738915\n", - "1735380\n", - "1738867\n", - "1730306\n", - "1739810\n", - "3145529\n", - "1736754\n", - "1121100\n", - "1731531\n", - "1738911\n", - "1731473\n", - "1731553\n", - "1738538\n", - "1730628\n", - "1738991\n", - "1732206\n", - "1733427\n", - "3499249\n", - "1730582\n", - "1737562\n", - "1737618\n", - "1738958\n", - "1737345\n", - "1736762\n", - "1738968\n", - "1739198\n", - "1738884\n", - "1739763\n", - "1739161\n", - "1738643\n", - "1735007\n", - "3145482\n", - "3068728\n", - "3499688\n", - "1738684\n", - "1738646\n", - "1736320\n", - "1738680\n", - "1730771\n", - "3499704\n", - "1733518\n", - "1738631\n", - "1738914\n", - "1735375\n", - "3362186\n", - "1738857\n", - "3499251\n", - "1730005\n", - "1739121\n", - "1730585\n", - "3452130\n", - "3362163\n", - "3417166\n", - "3467827\n", - "1730383\n", - "1738519\n", - "1737605\n", - "3417279\n", - "1732991\n", - "3468100\n", - "1732698\n", - "3442764\n", - "1730167\n", - "1732265\n", - "1738869\n", - "1737176\n", - "1121078\n", - "3145495\n", - "1737454\n", - "1738834\n", - "3442659\n", - "1738938\n", - "1738937\n", - "3145484\n", - "3442703\n", - "1738969\n", - "1731523\n", - "1738527\n", - "3467917\n", - "1733724\n", - "1732002\n", - "1731076\n", - "1739002\n", - "1731235\n", - "1732144\n", - "3318680\n", - "1738517\n", - "1730394\n", - "1738903\n", - "1731111\n", - "1739128\n", - "1732850\n", - "1733502\n", - "1733498\n", - "1738677\n", - "1739235\n", - "3417267\n", - "1732864\n", - "1732169\n", - "1733703\n", - "1738882\n", - "1732889\n", - "1735641\n", - "1733380\n", - "1739944\n", - "1731422\n", - "1732254\n", - "3449693\n", - "1736753\n", - "1733740\n", - "1730406\n", - "1737424\n", - "1730621\n", - "1737364\n", - "1736723\n", - "3468166\n", - "1731289\n", - "1738841\n", - "1733756\n", - "1730405\n", - "1731501\n", - "1739855\n", - "1730254\n", - "1739806\n", - "3286601\n", - "1733257\n", - "1733699\n", - "3145498\n", - "1735003\n", - "1733721\n", - "31215\n", - "1732156\n", - "1733256\n", - "3467834\n", - "1731665\n", - "3145605\n", - "1739061\n", - "1733146\n", - "1055173\n", - "1731680\n", - "1736134\n", - "1736160\n", - "3442807\n", - "1732873\n", - "1730788\n", - "1732871\n", - "3442791\n", - "3442753\n", - "3145569\n", - "1733493\n", - "1732166\n", - "1739015\n", - "1088005\n", - "1739220\n", - "3145488\n", - "3145556\n", - "3442762\n", - "1732904\n", - "1088001\n", - "1733531\n", - "1305017\n", - "1730653\n", - "3468804\n", - "3499669\n", - "1732267\n", - "1735436\n", - "1736588\n", - "1103009\n", - "1529378\n", - "52781\n", - "3145452\n", - "1730080\n", - "3505717\n", - "1736872\n", - "1733742\n", - "1736764\n", - "1735650\n", - "1736721\n", - "1736585\n", - "3499690\n", - "3499607\n", - "1735299\n", - "53058\n", - "1730386\n", - "1738943\n", - "3467868\n", - "1739915\n", - "3452127\n", - "1736565\n", - "1736551\n" - ] - } - ], + "outputs": [], "source": [ "import json\n", "import openpyxl\n", @@ -1344,10 +705,147 @@ " print(line[4])" ] }, + { + "cell_type": "markdown", + "id": "20e98f0d-61ea-43a5-8993-9656fed23099", + "metadata": {}, + "source": [ + "## 体检报告统计分析" + ] + }, + { + "cell_type": "markdown", + "id": "0436a3a2-6230-43b3-beae-bc89e789b285", + "metadata": {}, + "source": [ + "### excel数据导入" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "id": "7bb2e3aa-591d-4fce-983a-cde5d4c30e56", + "metadata": { + "execution": { + "iopub.execute_input": "2023-01-09T13:24:29.720040Z", + "iopub.status.busy": "2023-01-09T13:24:29.719490Z", + "iopub.status.idle": "2023-01-09T13:24:30.627490Z", + "shell.execute_reply": "2023-01-09T13:24:30.626140Z", + "shell.execute_reply.started": "2023-01-09T13:24:29.719971Z" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ok\n" + ] + } + ], + "source": [ + "import openpyxl\n", + "import json\n", + "import re\n", + "\n", + "wb = openpyxl.load_workbook('data/体检结果(模板)化工.xlsx')\n", + "sheet = wb.active\n", + "# sheets = wb.sheetnames\n", + "dict1 = {}\n", + "\n", + "for n in range(11, sheet.max_row+1):\n", + " code = sheet.cell(n, 1).value\n", + " name = sheet.cell(n, 8).value\n", + " txt = sheet[f'DT{str(n)}'].value \n", + " txt = re.sub(r'\\n', \"\", txt)\n", + " txt = re.sub(r'\\t', \"\", txt)\n", + " txt = re.sub(r'二、尊敬的顾客您好,您本次体检的建议信息如下:', \"\", txt)\n", + " ss = r'三、温馨提示: 鉴于医学技术发展的局限性,个体间可能存在的生物差异性以及您选择的检查项目的局限性,任何一次医学检查的手段和方法都不具备绝对的特异性和灵敏度,对于疾病筛检仍有其盲点,因此,我们建议您对本次检查的异常结果进行随诊复查和其他相关检查,以获得更可靠的医学证据建立准确地医学判断。'\n", + " txt1 = re.sub(r'三、温馨提示.*', \"\", txt,re.S)\n", + " dict1.setdefault(code, {})\n", + " dict1[code]['name'] = name\n", + " dict1[code]['xb'] = sheet.cell(n, 9).value\n", + " #dict1[code]['birth'] = sheet.cell(n, 10).value\n", + " dict1[code]['report'] = txt1\n", + "filename = 'data/体检结果.json'\n", + "with open(filename,'w') as fl:\n", + " json.dump(dict1, fl, ensure_ascii=False) \n", + "print('ok')" + ] + }, + { + "cell_type": "markdown", + "id": "227a1c0b-fc78-4951-97ab-5664b59edd1d", + "metadata": {}, + "source": [ + "### 体检结果分解" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "id": "b38aef28-5d1b-4762-9c7e-70a531594fa4", + "metadata": { + "execution": { + "iopub.execute_input": "2023-01-09T13:32:31.923948Z", + "iopub.status.busy": "2023-01-09T13:32:31.923410Z", + "iopub.status.idle": "2023-01-09T13:32:32.253445Z", + "shell.execute_reply": "2023-01-09T13:32:32.252452Z", + "shell.execute_reply.started": "2023-01-09T13:32:31.923900Z" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ok!\n" + ] + } + ], + "source": [ + "import openpyxl\n", + "import json\n", + "import re\n", + "\n", + "mo1 = r'[0-9]、'\n", + "mo2 = '【.*】'\n", + "filename = 'data/体检结果.json'\n", + "list3 = []\n", + "with open(filename,'r') as fl:\n", + " dict1 = json.load(fl)\n", + "for k, v in dict1.items():\n", + " \n", + " ss = v['report']\n", + " list1 = re.split(mo1,ss)\n", + " if len(list1) ==1:\n", + " continue\n", + " else:\n", + " list1.remove('')\n", + " #print(list1)\n", + " for item in list1:\n", + " list2 = re.search( mo2, item)\n", + " xm =list2.group()\n", + " \n", + " txt = item.replace(xm,'').strip()\n", + " list3.append([k,v['name'],v['xb'],xm,txt])\n", + "filename = 'data/症状表.xlsx'\n", + "wb = openpyxl.Workbook()\n", + "sheet = wb.active\n", + "\n", + "for row in list3:\n", + " sheet.append(row)\n", + " \n", + "wb.save(filename)\n", + "print('ok!')" + ] + }, { "cell_type": "code", "execution_count": null, - "id": "5d53a23c-3fbd-4b57-926b-bc7f61a12be2", + "id": "a4c24e30-f4e0-46e9-a22e-5460a73a14c8", "metadata": {}, "outputs": [], "source": [] @@ -1355,7 +853,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -1369,7 +867,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.6" + "version": "3.8.10" } }, "nbformat": 4,