fix: KIMS 심각도 매핑 수정 (SeverityDesc 사용) + 상호작용 약품 pill 색상 강조
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user