fix: KIMS 심각도 매핑 수정 (SeverityDesc 사용) + 상호작용 약품 pill 색상 강조
This commit is contained in:
parent
67e576736d
commit
8c20c8b8db
@ -4233,12 +4233,22 @@ def api_kims_interaction_check():
|
||||
|
||||
# 3. 상호작용 결과 파싱
|
||||
interactions = []
|
||||
severity_text = {1: '심각', 2: '중등도', 3: '경미', 4: '참고', 5: '일반'}
|
||||
severity_color = {1: '#dc2626', 2: '#f59e0b', 3: '#3b82f6', 4: '#6b7280', 5: '#9ca3af'}
|
||||
severity_color = {'1': '#dc2626', '2': '#f59e0b', '3': '#3b82f6', '4': '#6b7280', '5': '#9ca3af'}
|
||||
|
||||
# 상호작용 있는 약품 코드 수집
|
||||
interaction_drug_codes = set()
|
||||
|
||||
for alert in kims_data.get('AlertList', []):
|
||||
for item in alert.get('AlertInfo', []):
|
||||
severity = item.get('SeverityLevel', 5)
|
||||
severity = str(item.get('SeverityLevel', '5'))
|
||||
severity_desc = item.get('SeverityDesc', '') # API에서 직접 제공 (중증, 경미 등)
|
||||
|
||||
# 상호작용 약품 코드 수집
|
||||
if item.get('DrugCode1'):
|
||||
interaction_drug_codes.add(item.get('DrugCode1'))
|
||||
if item.get('DrugCode2'):
|
||||
interaction_drug_codes.add(item.get('DrugCode2'))
|
||||
|
||||
interactions.append({
|
||||
'drug1_code': item.get('DrugCode1'),
|
||||
'drug1_name': item.get('ProductName1'),
|
||||
@ -4247,7 +4257,7 @@ def api_kims_interaction_check():
|
||||
'generic1': item.get('GenericName1'),
|
||||
'generic2': item.get('GenericName2'),
|
||||
'severity': severity,
|
||||
'severity_text': severity_text.get(severity, '알 수 없음'),
|
||||
'severity_text': severity_desc or ('심각' if severity == '1' else '중등도' if severity == '2' else '경미' if severity == '3' else '참고'),
|
||||
'severity_color': severity_color.get(severity, '#9ca3af'),
|
||||
'description': item.get('Observation', ''),
|
||||
'management': item.get('ClinicalMng', ''),
|
||||
@ -4262,6 +4272,10 @@ def api_kims_interaction_check():
|
||||
total_pairs = len(kd_codes) * (len(kd_codes) - 1) // 2
|
||||
safe_count = total_pairs - len(interactions)
|
||||
|
||||
# 약품 목록에 상호작용 여부 표시
|
||||
for drug in drugs_info:
|
||||
drug['has_interaction'] = drug['kd_code'] in interaction_drug_codes
|
||||
|
||||
logging.info(f"KIMS 상호작용 체크 완료: {len(kd_codes)}개 약품, {len(interactions)}건 발견 (처방: {pre_serial})")
|
||||
|
||||
return jsonify({
|
||||
@ -4270,7 +4284,8 @@ def api_kims_interaction_check():
|
||||
'interaction_count': len(interactions),
|
||||
'safe_count': max(0, safe_count),
|
||||
'total_pairs': total_pairs,
|
||||
'drugs_checked': drugs_info
|
||||
'drugs_checked': drugs_info,
|
||||
'interaction_drug_codes': list(interaction_drug_codes) # 상호작용 있는 약품 코드
|
||||
})
|
||||
|
||||
except Exception as e:
|
||||
|
||||
@ -1193,10 +1193,15 @@
|
||||
const interactions = data.interactions || [];
|
||||
const drugsChecked = data.drugs_checked || [];
|
||||
|
||||
// 약품 목록
|
||||
const drugsHtml = drugsChecked.map(d =>
|
||||
`<span style="display:inline-block;background:#f1f5f9;padding:4px 8px;border-radius:4px;margin:2px;font-size:12px;">${escapeHtml(d.name.slice(0,20))}</span>`
|
||||
).join('');
|
||||
// 약품 목록 (상호작용 있는 약품은 빨간색/주황색 배경)
|
||||
const drugsHtml = drugsChecked.map(d => {
|
||||
const hasInteraction = d.has_interaction;
|
||||
const bgColor = hasInteraction ? '#fef2f2' : '#f1f5f9'; // 연한 빨강 vs 회색
|
||||
const borderColor = hasInteraction ? '#fca5a5' : '#e2e8f0';
|
||||
const textColor = hasInteraction ? '#dc2626' : '#334155';
|
||||
const icon = hasInteraction ? '⚠️ ' : '';
|
||||
return `<span style="display:inline-block;background:${bgColor};border:1px solid ${borderColor};color:${textColor};padding:4px 8px;border-radius:4px;margin:2px;font-size:12px;">${icon}${escapeHtml(d.name.slice(0,20))}</span>`;
|
||||
}).join('');
|
||||
|
||||
// 상호작용 목록
|
||||
let interactionsHtml = '';
|
||||
|
||||
Loading…
Reference in New Issue
Block a user