json_to_text.py 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. import json
  2. class JsonToText:
  3. def convert(self, json_data):
  4. output = []
  5. output.append(f"年龄:{json_data['age']}岁")
  6. output.append(f"性别:{'女' if json_data['sex'] == 2 else '男'}")
  7. output.append(f"职业:{json_data['doctor']['professionalTitle']}")
  8. output.append(f"科室:{json_data['dept'][0]['name']}")
  9. output.append("\n详细信息")
  10. output.append(f"主诉:{json_data['chief']}")
  11. output.append(f"现病史:{json_data['symptom']}")
  12. output.append(f"查体:{json_data['vital']}")
  13. output.append(f"既往史:{json_data['pasts']}")
  14. output.append(f"婚姻状况:{json_data['marital']}")
  15. output.append(f"个人史:{json_data['personal']}")
  16. output.append(f"家族史:{json_data['family']}")
  17. output.append(f"月经史:{json_data['menstrual']}")
  18. output.append(f"疾病名称:{json_data['diseaseName']['name']}")
  19. output.append("其他指数:无")
  20. output.append(f"手术名称:{json_data['operationName']['name']}")
  21. output.append("传染性:无")
  22. output.append("手术记录:无")
  23. output.append(f"过敏史:{json_data['allergy'] or '无'}")
  24. output.append("疫苗接种:无")
  25. output.append("其他:无")
  26. output.append("检验申请单:无")
  27. output.append("影像申请单:无")
  28. output.append("诊断申请单:无")
  29. output.append("用药申请单:无")
  30. output.append("检验结果:无")
  31. output.append("影像结果:无")
  32. output.append("诊断结果:无")
  33. output.append("用药记录:无")
  34. output.append("输血记录:无")
  35. output.append("\n科室信息")
  36. output.append(f"科室名称:{json_data['dept'][0]['name']}")
  37. output.append(f"唯一名称:{json_data['dept'][0]['uniqueName']}")
  38. return '\n'.join(output)
  39. class JsonToTextConverter:
  40. @staticmethod
  41. def convert(json_str):
  42. json_data = json.loads(json_str)
  43. return JsonToText().convert(json_data)
  44. def convert(self, json_str):
  45. json_data = json.loads(json_str)
  46. return JsonToText().convert(json_data)
  47. output.append(f"年龄:{json_data['age']}岁")
  48. output.append(f"性别:{'女' if json_data['sex'] == 2 else '男'}")
  49. output.append(f"职业:{json_data['doctor']['professionalTitle']}")
  50. output.append(f"科室:{json_data['dept'][0]['name']}")
  51. output.append("\n详细信息")
  52. output.append(f"主诉:{json_data['chief']}")
  53. output.append(f"现病史:{json_data['symptom']}")
  54. output.append(f"查体:{json_data['vital']}")
  55. output.append(f"既往史:{json_data['pasts']}")
  56. output.append(f"婚姻状况:{json_data['marital']}")
  57. output.append(f"个人史:{json_data['personal']}")
  58. output.append(f"家族史:{json_data['family']}")
  59. output.append(f"月经史:{json_data['menstrual']}")
  60. output.append(f"疾病名称:{json_data['diseaseName']['name']}")
  61. output.append("其他指数:无")
  62. output.append(f"手术名称:{json_data['operationName']['name']}")
  63. output.append("传染性:无")
  64. output.append("手术记录:无")
  65. output.append(f"过敏史:{json_data['allergy'] or '无'}")
  66. output.append("疫苗接种:无")
  67. output.append("其他:无")
  68. output.append("检验申请单:无")
  69. output.append("影像申请单:无")
  70. output.append("诊断申请单:无")
  71. output.append("用药申请单:无")
  72. output.append("检验结果:无")
  73. output.append("影像结果:无")
  74. output.append("诊断结果:无")
  75. output.append("用药记录:无")
  76. output.append("输血记录:无")
  77. output.append("\n科室信息")
  78. output.append(f"科室名称:{json_data['dept'][0]['name']}")
  79. output.append(f"唯一名称:{json_data['dept'][0]['uniqueName']}")
  80. return '\n'.join(output)
  81. def convert(self, json_str):
  82. json_data = json.loads(json_str)
  83. return JsonToText().convert(json_data)
  84. output.append(f"年龄:{json_data['age']}岁")
  85. output.append(f"性别:{'女' if json_data['sex'] == 2 else '男'}")
  86. output.append(f"职业:{json_data['doctor']['professionalTitle']}")
  87. output.append(f"科室:{json_data['dept'][0]['name']}")
  88. output.append("\n详细信息")
  89. output.append(f"主诉:{json_data['chief']}")
  90. output.append(f"现病史:{json_data['symptom']}")
  91. output.append(f"查体:{json_data['vital']}")
  92. output.append(f"既往史:{json_data['pasts']}")
  93. output.append(f"婚姻状况:{json_data['marital']}")
  94. output.append(f"个人史:{json_data['personal']}")
  95. output.append(f"家族史:{json_data['family']}")
  96. output.append(f"月经史:{json_data['menstrual']}")
  97. output.append(f"疾病名称:{json_data['diseaseName']['name']}")
  98. output.append("其他指数:无")
  99. output.append(f"手术名称:{json_data['operationName']['name']}")
  100. output.append("传染性:无")
  101. output.append("手术记录:无")
  102. output.append(f"过敏史:{json_data['allergy'] or '无'}")
  103. output.append("疫苗接种:无")
  104. output.append("其他:无")
  105. output.append("检验申请单:无")
  106. output.append("影像申请单:无")
  107. output.append("诊断申请单:无")
  108. output.append("用药申请单:无")
  109. output.append("检验结果:无")
  110. output.append("影像结果:无")
  111. output.append("诊断结果:无")
  112. output.append("用药记录:无")
  113. output.append("输血记录:无")
  114. output.append("\n科室信息")
  115. output.append(f"科室名称:{json_data['dept'][0]['name']}")
  116. output.append(f"唯一名称:{json_data['dept'][0]['uniqueName']}")
  117. return '\n'.join(output)
  118. if __name__ == '__main__':
  119. json_data = {
  120. "hospitalId": -1,
  121. "age": "28",
  122. "sex": 2,
  123. "doctor": {
  124. "professionalTitle": "付医生"
  125. },
  126. "chief": "反复咳嗽、咳痰伴低热2月余,加重伴夜间盗汗1周。",
  127. "symptom": "2小时前无诱因下出现持续性上腹部绞痛,剧痛难忍,伴恶心慢性,无呕吐,无大小便异常,曾至当地卫生院就诊,查血常规提示:血小板计数5*10^9/L",
  128. "vital": "神清,急性病容,皮肤巩膜黄软,心肺无殊,腹平软,上腹部压痛明显,无反跳痛",
  129. "pasts": "既往有胆总管结石,既往青霉素过敏",
  130. "marriage": "",
  131. "personal": "不饮酒,不抽烟",
  132. "family": "不详",
  133. "marital": "未婚未育",
  134. "menstrual": "末次月经2020-12-23,月经期第二天",
  135. "diseaseName": {
  136. "dateValue": "",
  137. "name": "胆囊结石伴有急性胆囊炎",
  138. "uniqueName": ""
  139. },
  140. "otherIndex": {},
  141. "operationName": {
  142. "dateValue": "2020-12-24 17:39:20",
  143. "name": "经皮肝穿刺引流术",
  144. "uniqueName": "经皮肝穿刺引流术"
  145. },
  146. "infectious": "",
  147. "operation": [],
  148. "allergy": "",
  149. "vaccination": "",
  150. "other": "",
  151. "lisString": "",
  152. "pacsString": "",
  153. "diagString": "",
  154. "drugString": "",
  155. "lis": [],
  156. "pacs": [],
  157. "diag": [
  158. {
  159. "dateValue": "",
  160. "name": "胆囊结石伴有急性胆囊炎",
  161. "uniqueName": ""
  162. }
  163. ],
  164. "lisOrder": [],
  165. "pacsOrder": [
  166. {
  167. "uniqueName": "经皮肝穿刺胆管造影",
  168. "detailName": "经皮肝穿刺胆管造影",
  169. "name": "经皮肝穿刺胆管造影",
  170. "dateValue": "2020-12-24 17:33:52",
  171. "time": "2020-12-24 17:33:52",
  172. "check": True
  173. }
  174. ],
  175. "diagOrder": [],
  176. "drugOrder": [
  177. {
  178. "uniqueName": "利多卡因",
  179. "detailName": "利多卡因",
  180. "name": "利多卡因注射剂",
  181. "flg": 5,
  182. "time": "2020-12-24 17:37:27",
  183. "dateValue": "2020-12-24 17:37:27",
  184. "selectShow": False,
  185. "check": True,
  186. "form": "注射剂",
  187. "selectVal": "1"
  188. },
  189. {
  190. "uniqueName": "青霉素",
  191. "detailName": "青霉素",
  192. "name": "青霉素注射剂",
  193. "flg": 5,
  194. "time": "2020-12-24 17:40:08",
  195. "dateValue": "2020-12-24 17:40:08",
  196. "selectShow": False,
  197. "check": True,
  198. "form": "注射剂",
  199. "selectVal": "1"
  200. }
  201. ],
  202. "operationOrder": [
  203. {
  204. "uniqueName": "经皮肝穿刺引流术",
  205. "detailName": "经皮肝穿刺引流术",
  206. "name": "经皮肝穿刺引流术",
  207. "flg": 6,
  208. "time": "2020-12-24 17:39:20",
  209. "dateValue": "2020-12-24 17:39:20",
  210. "hasTreat": 1,
  211. "check": True
  212. }
  213. ],
  214. "otherOrder": [],
  215. "drug": [],
  216. "transfusion": [],
  217. "transfusionOrder": [],
  218. "dept": [
  219. {
  220. "name": "全科",
  221. "uniqueName": "全科"
  222. }
  223. ]
  224. }
  225. print(JsonToText().convert(json_data))