bug修复

main
chaopower 2023-08-02 09:25:39 +08:00
parent cc63ef71e5
commit 8e864c820f
3 changed files with 3 additions and 124 deletions

4
.gitignore vendored
View File

@ -212,10 +212,10 @@ log/*
example/*
!example/readme.md
xlsx/*
/xlsx/
!xlsx/readme.md
result/*docx
/result/
!result/readme.md
/.report/

Binary file not shown.

View File

@ -172,109 +172,6 @@ class Parse(BaseAssignment):
def msi(self):
self._to_dicts('MSI')
# def chemo(self):
# data = pd.DataFrame(self.sampledata['chemo'])
#
# project = data['project'].to_list()[0]
#
# # 分类汇总 同位点,药物合并 drug.infos.txt
# drugrsid = data[['drugname', 'genename', 'rsid', 'result', 'level', 'tips', 'drugsort']]
# drugrsid = drugrsid.drop_duplicates()
# resdrugrsid = drugrsid.groupby(['drugname', 'genename', 'rsid', 'result', 'level', 'drugsort'])['tips'].agg(
# ','.join).reset_index()
# resdrugrsid.rename(columns=
# {'drugname': '药物', 'genename': '检测基因', 'rsid': '检测位点', 'result': '基因型',
# 'level': '证据等级', 'tips': '用药提示'},
# inplace=True)
# resdrugrsid = resdrugrsid.sort_values(by=['drugsort', '药物', '检测基因'])
# self.result['chemo']['druginfo'] = resdrugrsid.to_dict('records')
#
# # 药物 药物疗效 推荐程度合并 drug.res.txt
# drugtypesum = data[['drugname', 'drugtype', 'rsid', 'weights']]
# drugtypesum = drugtypesum.drop_duplicates()
# drugtyperes = list()
# drugsum = dict()
# for drug, drugdata in drugtypesum.groupby('drugname'):
# tipsnum = drugdata.groupby(['drugtype']).agg({'weights': 'sum'}).to_dict('index')
# sumlist = list()
# if 'LX' in tipsnum:
# LX = tipsnum['LX']['weights']
# if LX > 0:
# lxdes = '疗效较好'
# lxnum = 1
# elif LX == 0:
# lxdes = '疗效一般'
# lxnum = 0
# else:
# lxdes = '疗效较差'
# lxnum = -1
# sumlist.append(lxdes)
# else:
# LX = 0
# lxnum = 0
# if 'DF' in tipsnum:
# DF = tipsnum['DF']['weights']
# if DF > 0:
# dfdes = '毒副较低'
# dfnum = 1
# elif DF == 0:
# dfdes = '毒副一般'
# dfnum = 0
# else:
# dfdes = '毒副较高'
# dfnum = -1
# sumlist.append(dfdes)
# else:
# DF = 0
# dfnum = 0
#
# # 评价方式 疗效 1 0 -1, 毒副 1 0 -1 可形成9宫格
# sumnum = lxnum + dfnum
# if sumnum > 0:
# sumdes = '推荐'
# elif sumnum == 0:
# sumdes = '常规'
# else:
# sumdes = '谨慎'
#
# # 特别药物处理
# if (drug == "氟尿嘧啶" or drug == "卡培他滨") and DF < 0:
# sumdes = '谨慎'
#
# drugtyperes.append(dict(
# 药物名称=drug,
# 疗效=LX,
# 毒副=DF,
# 推荐程度=sumdes,
# 疗效和毒副总结=','.join(sumlist)
# ))
# drugsum[drug] = sumdes
#
# # 报告中展示药物有顺序
# drugsort = data[['drugname', 'drugsort']].drop_duplicates()
# drugsort_dict = drugsort.set_index('drugname')['drugsort'].to_dict()
# drugtyperes_sort = sorted(drugtyperes, key=lambda x: (
# drugsort_dict[x['药物名称']] if x['药物名称'] in drugsort_dict else 100, x['药物名称']))
#
# drugtyperes_sort_df = pd.DataFrame(drugtyperes_sort)
# self.result['chemo']['sum'] = drugtyperes_sort_df.groupby('推荐程度')['药物名称'].apply(','.join).to_dict()
# self.result['chemo']['drugres'] = drugtyperes_sort_df.to_dict('records')
#
# # 联合用药
# drug_combine_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'database',
# 'chemo_drug_combine.csv')
# drug_combine = pd.read_csv(drug_combine_path, sep='\t')
# drug_combine.fillna('.', inplace=True)
# drug_combine_data = drug_combine[drug_combine['source'].str.contains(project)]
# drug_combine_data = drug_combine_data.reset_index()
# if not drug_combine_data.empty:
# drug_combine_data['临床提示'] = drug_combine_data['用药方案'].apply(self._get_drug_plan, args=(drugsum,))
# self.result['chemo']['combine'] = drug_combine_data.groupby('癌种').apply(
# lambda group: group.set_index('癌种').to_dict('records')).to_dict()
# else:
# self.result['chemo']['combine'] = dict()
# self.result['sum']['chemo_drug_num'] = len(drugsum.keys())
def chemo(self):
chemo_res = self._to_records('chemo_res', need=True)
@ -354,7 +251,7 @@ class Parse(BaseAssignment):
if not data.empty:
data = data.dropna()
data = data[data['drug_detail'] != '.']
data = data.applymap(lambda x: str(x).replace('\\\\', '\n') if ' \\\\' in str(x) else x)
data = data.applymap(lambda x: str(x).replace('||', '\n') if '||' in str(x) else x)
res = data.set_index('drug_name')['drug_detail'].to_dict()
self.result['drugs']['drugs_detail'] = res
@ -449,24 +346,6 @@ class Parse(BaseAssignment):
# self.drugs_record['drugs'].update({match.group(1).strip(): match.group(2).strip()})
return drug_category_res
@staticmethod
def _get_drug_plan(x, drugsum):
tlist = x.split('+')
tdeslist = list()
for tdes in tlist:
if tdes.strip() in drugsum:
t1_des = drugsum[tdes.strip()]
tdeslist.append(t1_des)
if '慎用' in tdeslist or '谨慎' in tdeslist:
return '慎用'
elif '推荐' in tdeslist:
return '推荐'
elif '常规' in tdeslist:
return '可选'
else:
return '可选'
def collect(self):
self.cms()
self.target()