import json class JsonToText: def convert(self, json_data): output = [] output.append(f"年龄:{json_data['age']}岁") output.append(f"性别:{'女' if json_data['sex'] == 2 else '男'}") output.append(f"职业:{json_data['doctor']['professionalTitle']}") output.append(f"科室:{json_data['dept'][0]['name']}") output.append("\n详细信息") output.append(f"主诉:{json_data['chief']}") output.append(f"现病史:{json_data['symptom']}") output.append(f"查体:{json_data['vital']}") output.append(f"既往史:{json_data['pasts']}") output.append(f"婚姻状况:{json_data['marital']}") output.append(f"个人史:{json_data['personal']}") output.append(f"家族史:{json_data['family']}") output.append(f"月经史:{json_data['menstrual']}") output.append(f"疾病名称:{json_data['diseaseName']['name']}") output.append("其他指数:无") output.append(f"手术名称:{json_data['operationName']['name']}") output.append("传染性:无") output.append("手术记录:无") output.append(f"过敏史:{json_data['allergy'] or '无'}") output.append("疫苗接种:无") output.append("其他:无") output.append("检验申请单:无") output.append("影像申请单:无") output.append("诊断申请单:无") output.append("用药申请单:无") output.append("检验结果:无") output.append("影像结果:无") output.append("诊断结果:无") output.append("用药记录:无") output.append("输血记录:无") output.append("\n科室信息") output.append(f"科室名称:{json_data['dept'][0]['name']}") output.append(f"唯一名称:{json_data['dept'][0]['uniqueName']}") return '\n'.join(output) class JsonToTextConverter: @staticmethod def convert(json_str): json_data = json.loads(json_str) return JsonToText().convert(json_data) def convert(self, json_str): json_data = json.loads(json_str) return JsonToText().convert(json_data) output.append(f"年龄:{json_data['age']}岁") output.append(f"性别:{'女' if json_data['sex'] == 2 else '男'}") output.append(f"职业:{json_data['doctor']['professionalTitle']}") output.append(f"科室:{json_data['dept'][0]['name']}") output.append("\n详细信息") output.append(f"主诉:{json_data['chief']}") output.append(f"现病史:{json_data['symptom']}") output.append(f"查体:{json_data['vital']}") output.append(f"既往史:{json_data['pasts']}") output.append(f"婚姻状况:{json_data['marital']}") output.append(f"个人史:{json_data['personal']}") output.append(f"家族史:{json_data['family']}") output.append(f"月经史:{json_data['menstrual']}") output.append(f"疾病名称:{json_data['diseaseName']['name']}") output.append("其他指数:无") output.append(f"手术名称:{json_data['operationName']['name']}") output.append("传染性:无") output.append("手术记录:无") output.append(f"过敏史:{json_data['allergy'] or '无'}") output.append("疫苗接种:无") output.append("其他:无") output.append("检验申请单:无") output.append("影像申请单:无") output.append("诊断申请单:无") output.append("用药申请单:无") output.append("检验结果:无") output.append("影像结果:无") output.append("诊断结果:无") output.append("用药记录:无") output.append("输血记录:无") output.append("\n科室信息") output.append(f"科室名称:{json_data['dept'][0]['name']}") output.append(f"唯一名称:{json_data['dept'][0]['uniqueName']}") return '\n'.join(output) def convert(self, json_str): json_data = json.loads(json_str) return JsonToText().convert(json_data) output.append(f"年龄:{json_data['age']}岁") output.append(f"性别:{'女' if json_data['sex'] == 2 else '男'}") output.append(f"职业:{json_data['doctor']['professionalTitle']}") output.append(f"科室:{json_data['dept'][0]['name']}") output.append("\n详细信息") output.append(f"主诉:{json_data['chief']}") output.append(f"现病史:{json_data['symptom']}") output.append(f"查体:{json_data['vital']}") output.append(f"既往史:{json_data['pasts']}") output.append(f"婚姻状况:{json_data['marital']}") output.append(f"个人史:{json_data['personal']}") output.append(f"家族史:{json_data['family']}") output.append(f"月经史:{json_data['menstrual']}") output.append(f"疾病名称:{json_data['diseaseName']['name']}") output.append("其他指数:无") output.append(f"手术名称:{json_data['operationName']['name']}") output.append("传染性:无") output.append("手术记录:无") output.append(f"过敏史:{json_data['allergy'] or '无'}") output.append("疫苗接种:无") output.append("其他:无") output.append("检验申请单:无") output.append("影像申请单:无") output.append("诊断申请单:无") output.append("用药申请单:无") output.append("检验结果:无") output.append("影像结果:无") output.append("诊断结果:无") output.append("用药记录:无") output.append("输血记录:无") output.append("\n科室信息") output.append(f"科室名称:{json_data['dept'][0]['name']}") output.append(f"唯一名称:{json_data['dept'][0]['uniqueName']}") return '\n'.join(output) if __name__ == '__main__': json_data = { "hospitalId": -1, "age": "28", "sex": 2, "doctor": { "professionalTitle": "付医生" }, "chief": "反复咳嗽、咳痰伴低热2月余,加重伴夜间盗汗1周。", "symptom": "2小时前无诱因下出现持续性上腹部绞痛,剧痛难忍,伴恶心慢性,无呕吐,无大小便异常,曾至当地卫生院就诊,查血常规提示:血小板计数5*10^9/L", "vital": "神清,急性病容,皮肤巩膜黄软,心肺无殊,腹平软,上腹部压痛明显,无反跳痛", "pasts": "既往有胆总管结石,既往青霉素过敏", "marriage": "", "personal": "不饮酒,不抽烟", "family": "不详", "marital": "未婚未育", "menstrual": "末次月经2020-12-23,月经期第二天", "diseaseName": { "dateValue": "", "name": "胆囊结石伴有急性胆囊炎", "uniqueName": "" }, "otherIndex": {}, "operationName": { "dateValue": "2020-12-24 17:39:20", "name": "经皮肝穿刺引流术", "uniqueName": "经皮肝穿刺引流术" }, "infectious": "", "operation": [], "allergy": "", "vaccination": "", "other": "", "lisString": "", "pacsString": "", "diagString": "", "drugString": "", "lis": [], "pacs": [], "diag": [ { "dateValue": "", "name": "胆囊结石伴有急性胆囊炎", "uniqueName": "" } ], "lisOrder": [], "pacsOrder": [ { "uniqueName": "经皮肝穿刺胆管造影", "detailName": "经皮肝穿刺胆管造影", "name": "经皮肝穿刺胆管造影", "dateValue": "2020-12-24 17:33:52", "time": "2020-12-24 17:33:52", "check": True } ], "diagOrder": [], "drugOrder": [ { "uniqueName": "利多卡因", "detailName": "利多卡因", "name": "利多卡因注射剂", "flg": 5, "time": "2020-12-24 17:37:27", "dateValue": "2020-12-24 17:37:27", "selectShow": False, "check": True, "form": "注射剂", "selectVal": "1" }, { "uniqueName": "青霉素", "detailName": "青霉素", "name": "青霉素注射剂", "flg": 5, "time": "2020-12-24 17:40:08", "dateValue": "2020-12-24 17:40:08", "selectShow": False, "check": True, "form": "注射剂", "selectVal": "1" } ], "operationOrder": [ { "uniqueName": "经皮肝穿刺引流术", "detailName": "经皮肝穿刺引流术", "name": "经皮肝穿刺引流术", "flg": 6, "time": "2020-12-24 17:39:20", "dateValue": "2020-12-24 17:39:20", "hasTreat": 1, "check": True } ], "otherOrder": [], "drug": [], "transfusion": [], "transfusionOrder": [], "dept": [ { "name": "全科", "uniqueName": "全科" } ] } print(JsonToText().convert(json_data))