diff --git a/backend/app/api/routers/user_router.py b/backend/app/api/routers/user_router.py new file mode 100644 index 0000000..ec3cd24 --- /dev/null +++ b/backend/app/api/routers/user_router.py @@ -0,0 +1,47 @@ +from fastapi import APIRouter, HTTPException, Depends +from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm +from api.schemas.user import UserCreate, User, Token +from services.user_service import create_user, get_user_by_email, authenticate_user +from utils.jwt_handler import create_access_token, decode_access_token +import jwt + +router = APIRouter() + +oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") + +@router.post("/users/", response_model=User) +def register_user(user: UserCreate): + existing_user = get_user_by_email(user.email) + if existing_user: + raise HTTPException(status_code=400, detail="Email already registered") + + try: + user_record = create_user(user) + return User(id=user_record['id'], email=user_record['email'], nickname=user_record['nickname'], sex=user_record['sex'], age=user_record['age']) + except Exception as e: + raise HTTPException(status_code=400, detail=str(e)) + +@router.post("/token", response_model=Token) +def login_user(form_data: OAuth2PasswordRequestForm = Depends()): + user = authenticate_user(form_data.username, form_data.password) + if not user: + raise HTTPException(status_code=400, detail="Invalid email or password") + + access_token = create_access_token(data={"sub": user['email']}) + return {"access_token": access_token, "token_type": "bearer"} + +@router.get("/users/me/", response_model=User) +def read_users_me(token: str = Depends(oauth2_scheme)): + credentials_exception = HTTPException( + status_code=401, + detail="Could not validate credentials", + headers={"WWW-Authenticate": "Bearer"}, + ) + try: + email = decode_access_token(token) + user = get_user_by_email(email) + if user is None: + raise credentials_exception + return User(id=user['id'], email=user['email'], sex=user['sex'], age=user['age']) + except jwt.PyJWTError: + raise credentials_exception diff --git a/backend/app/api/schemas/disease_prediction_session.py b/backend/app/api/schemas/disease_prediction_session.py index f9ba8e2..c379e0c 100644 --- a/backend/app/api/schemas/disease_prediction_session.py +++ b/backend/app/api/schemas/disease_prediction_session.py @@ -2,11 +2,7 @@ from api.schemas.primary_disease_prediction import ( PrimaryDiseasePredictionResponse, ) -from api.schemas.secondary_disease_prediction import ( - PredictedDisease, - UserQuestionResponse, -) -from typing import List, Dict, Optional +from typing import Dict, Optional from uuid import uuid4 from datetime import datetime @@ -21,13 +17,16 @@ class DiseasePredictionSession(BaseModel): created_at: datetime = Field(default_factory=datetime.now) updated_at: datetime = Field(default_factory=datetime.now) + user_input: str = None primary_symptoms: Dict[str, str] = {} # 증상ID:증상내용 primary_diseases: Dict[str, str] = {} # 질병 코드:질병 이름 primary_questions: Dict[str, Dict[str, str]] = {} # 질병 코드:{질문ID:질문내용} - secondary_symptoms: UserQuestionResponse = None + secondary_symptoms: Optional[Dict[str, str]] = {} # 증상ID:응답 - final_diseases: PredictedDisease = None + final_diseases: Optional[str] = None + recommended_department: Optional[str] = None + final_disease_description: Optional[str] = None def prepare_primary_disease_prediction_response( self, diff --git a/backend/app/api/schemas/primary_disease_prediction.py b/backend/app/api/schemas/primary_disease_prediction.py index 797f7f9..666a394 100644 --- a/backend/app/api/schemas/primary_disease_prediction.py +++ b/backend/app/api/schemas/primary_disease_prediction.py @@ -1,4 +1,4 @@ -from pydantic import BaseModel, Field +from pydantic import BaseModel from typing import List, Dict from uuid import uuid4 diff --git a/backend/app/api/schemas/secondary_disease_prediction.py b/backend/app/api/schemas/secondary_disease_prediction.py index e6455b5..bc69f7d 100644 --- a/backend/app/api/schemas/secondary_disease_prediction.py +++ b/backend/app/api/schemas/secondary_disease_prediction.py @@ -1,5 +1,5 @@ -from pydantic import BaseModel, field_validator, Field -from typing import List, Dict +from pydantic import BaseModel +from typing import Dict from uuid import uuid4 @@ -16,7 +16,3 @@ class PredictedDisease(BaseModel): Disease: str recommended_department: str description: str - - -# class FinalResponse(BaseModel): -# response: Dict[str, PredictedDisease] diff --git a/backend/app/api/schemas/user.py b/backend/app/api/schemas/user.py new file mode 100644 index 0000000..0c6b92f --- /dev/null +++ b/backend/app/api/schemas/user.py @@ -0,0 +1,31 @@ +from pydantic import BaseModel, EmailStr, validator + +class Token(BaseModel): + access_token: str + token_type: str + +class TokenData(BaseModel): + email: str | None = None + +class UserCreate(BaseModel): + email: EmailStr + nickname: str + password: str + sex: str + age: int + + @validator("sex") + def validate_sex(cls, v): + if v not in ['male', 'female']: + raise ValueError('Sex field must be either "male" or "female".') + return v + +class User(BaseModel): + id: str + nickname: str + email: EmailStr + sex: str + age: int + + class Config: + from_attributes = True diff --git a/backend/app/core/config.py b/backend/app/core/config.py index 80416a0..ff104d4 100644 --- a/backend/app/core/config.py +++ b/backend/app/core/config.py @@ -9,8 +9,10 @@ class Settings(BaseSettings): ) gpt_api_key: str gpt_api_url: str = "https://api.openai.com/v4/completions" - google_application_credentials: str - + mongo_uri: str + token_secret: str + token_algorithm: str + token_expire_minutes: int def get_settings() -> Settings: settings = Settings() # type: ignore diff --git a/backend/app/core/prompt.py b/backend/app/core/prompt.py index a3970bb..683dc33 100644 --- a/backend/app/core/prompt.py +++ b/backend/app/core/prompt.py @@ -27,6 +27,8 @@ As a medical assistant, your role involves extracting main symptoms from user descriptions, predicting potential diseases based on these symptoms, and recommending relevant diagnostic departments. This is first step of the process. Carefully follow these instructions: Convert user-described "main symptoms" into a list of keywords. +Include mental and emotional symptoms by recognizing phrases that indicate psychological distress or mental health conditions. +If the input is not related to the disease or symptoms at all, return 'no symptoms'. Use the format Korean symptom name (English Symptom Name), e.g., 두통(headache). List no more than 10 symptoms, separated by '|'. Example format for "I have a headache and a cough" should be: "두통(headache)|기침(cough)". @@ -38,7 +40,7 @@ Ensure the disease names are explicitly detailed, avoiding generic or nonspecific symptomatic descriptions. List each disease with its ICD code, formatted as "(ICD Code):Disease Name(Disease in English)", separated by '|'. Avoid vague terms like 'other' or 'unspecified'. -Input Example: "두통(headache)|기침(cough)" +Input Example: "input of user: 머리가 아프고 기침이 나요. expected symptoms: 두통(headache)|기침(cough)" Output Example: "J00:감기(cold)|J45:천식(asthma)|...". """ PRIMARY_DISEASE_PREDICTION_PROMPT3 = """ @@ -101,21 +103,22 @@ As a knowledgeable medical assistant, your task is to analyze user-reported symptoms, suggest the most probable disease, and recommend an appropriate diagnostic department for further examination. Input format: -1. Main Symptoms: A comma-separated list of primary symptoms as reported by the user. -2. Predicted Diseases: A list of potential diseases related to the main symptoms, formatted as 'ICD code:Disease name'. -3. Additional Symptoms: A list of secondary symptoms derived from the main symptoms, selected and verified by the user with responses (Yes/No). This helps refine the disease prediction. +1. User Input: plain text of the user's main symptoms. +2. Main Symptoms: A comma-separated list of primary symptoms as reported by the user. +3. Predicted Diseases: A list of potential diseases related to the main symptoms, formatted as 'ICD code:Disease name'. +4. Additional Symptoms: A list of secondary symptoms derived from the main symptoms, selected and verified by the user with responses (Yes/No). This helps refine the disease prediction. -Example input: -허리통증(back pain), 다리저림(leg numbness) -M54.5:요통(low back pain), M51.2:척추 디스크 변성(lumbar disc degeneration), G57.1:경골신경병증(tibial neuropathy), M47.8:기타 척추증(other spondylosis), M54.4:요천추통(lumbosacral pain) -허리에 통증이 지속된다:yes, 움직일 때 통증이 심해진다:yes, 앉아 있을 때 통증이 느껴진다:no, 허리의 뻣뻣함이 느껴진다:no, 허리를 구부릴 때 통증이 있다: yes ...(and so on) +-- Example input -- +User Input: 허리가 아프고 다리가 저린다. +Extracted Symptoms: 허리통증(back pain), 다리저림(leg numbness) +Predicted Diseases: M54.5:요통(low back pain), M51.2:척추 디스크 변성(lumbar disc degeneration), G57.1:경골신경병증(tibial neuropathy), M47.8:기타 척추증(other spondylosis), M54.4:요천추통(lumbosacral pain) +Additional Symptoms: 허리에 통증이 지속된다:yes, 움직일 때 통증이 심해진다:yes, 앉아 있을 때 통증이 느껴진다:no, 허리의 뻣뻣함이 느껴진다:no, 허리를 구부릴 때 통증이 있다: yes ...(and so on) -- Instructions -- Analyze the input to predict the most likely disease based on the symptoms. Select the most appropriate diagnostic department for further investigation. Ensure that your prediction considers the additional symptoms and is relevant to the disease's common diagnosis pathway. - Write down only the information in the instruction without any additional explanation. - Do not use delimiters like '|' unless required to distinguish between responses. - (Very important) In particular, refer to the example output and output it in the same format. -- Output format: 'Disease name (in Korean) | Diagnostic department (in Korean and English) | Explanation for your prediction' diff --git a/backend/app/dependencies.py b/backend/app/data/__init__.py similarity index 100% rename from backend/app/dependencies.py rename to backend/app/data/__init__.py diff --git a/backend/app/data/data_processing.py b/backend/app/data/data_processing.py new file mode 100644 index 0000000..981b1d1 --- /dev/null +++ b/backend/app/data/data_processing.py @@ -0,0 +1,36 @@ +import pandas as pd +import csv + +def clean(symptom): + # 증상이 None이거나 NaN인 경우 처리 + if pd.isna(symptom): + return None + parts = symptom.split('^') + cleaned_parts = [part.split('_')[1] if '_' in part else part for part in parts] + return '^'.join(cleaned_parts) + +def process_csv(input_file, output_file): + try: + df = pd.read_csv(input_file) + except FileNotFoundError: + print(f"파일을 찾을 수 없습니다: {input_file}") + return + + # 'Disease' 필드에서 UMLS 코드 제거 + df['Disease'] = df['Disease'].apply(clean) + + # 'Symptom' 필드에서 UMLS 코드 제거 + df['Symptom'] = df['Symptom'].apply(clean) + + # 'Count of Disease Occurrence' 열을 Int64로 변환하여 NaN 값이 유지되도록 함 + df['Count of Disease Occurrence'] = df['Count of Disease Occurrence'].astype('Int64') + + # 결과를 새로운 CSV 파일로 저장 + df.to_csv(output_file, index=False, quoting=csv.QUOTE_ALL) + +# 파일 경로 설정 +input_file = "C:/Users/이상윤/Documents/coding/Apayo/backend/app/data/raw_data_2.csv" +output_file = "C:/Users/이상윤/Documents/coding/Apayo/backend/app/data/output.csv" + +# 함수 실행 +process_csv(input_file, output_file) diff --git a/backend/app/data/embedding.py b/backend/app/data/embedding.py new file mode 100644 index 0000000..1045618 --- /dev/null +++ b/backend/app/data/embedding.py @@ -0,0 +1,64 @@ +from openai import OpenAI +import pandas as pd +import numpy as np +from pymongo import MongoClient, ASCENDING, DESCENDING +from core.config import get_settings + +settings = get_settings() +GPT_API_KEY = settings.gpt_api_key +client = OpenAI(api_key=GPT_API_KEY) + +mongo_client = MongoClient(settings.mongo_uri) +db = mongo_client['disease_embedding_db'] + +def get_embedding(text): + return client.embeddings.create(input=[text], model='text-embedding-3-small').data[0].embedding + +def get_last_saved_disease(): + disease = db.diseases_embeddings.find_one(sort=[("id", DESCENDING)]) + if disease: + return disease["id"] + return None + +def create_embedding_data(): + df = pd.read_csv('C:/Users/이상윤/Documents/coding/Apayo/backend/app/data/output.csv') + df.fillna(method='ffill', inplace=True) + df.applymap(lambda x: x.replace('\xa0','').replace('\xa9','') if type(x) == str else x) + + # last_saved_disease = get_last_saved_disease() + # start_saving = last_saved_disease is None + # print(f"Last saved disease: {last_saved_disease}") + start_saving = False + + # 질병별로 그룹화 및 처리 + for disease, group in df.groupby("Disease"): + if not start_saving: + if disease == 'obesity morbid': + start_saving = True + continue + print(f"Processing {disease}") + symptoms = group["Symptom"].tolist() + disease_embedding = {"embedding": get_embedding(disease)} + + # 질병 문서 생성 + disease_data = { + "_id": disease, + "embedding": disease_embedding + } + db.diseases_embeddings.insert_one(disease_data) + + # 각 증상을 서브컬렉션에 추가 + for symptom in symptoms: + # 증상 값이 유효한지 확인 + symptom = symptom.strip() + if symptom: + symptom_embedding = {"embedding": get_embedding(symptom)} + symptom_data = { + "disease_id": disease, + "symptom": symptom, + "embedding": symptom_embedding + } + db.symptoms.insert_one(symptom_data) + +# if __name__ == "__main__": +# create_embedding_data() diff --git a/backend/app/data/output.csv b/backend/app/data/output.csv new file mode 100644 index 0000000..30c64ee --- /dev/null +++ b/backend/app/data/output.csv @@ -0,0 +1,1868 @@ +"Disease","Count of Disease Occurrence","Symptom" +"hypertensive disease","3363","pain chest" +"","","shortness of breath" +"","","dizziness" +"","","asthenia" +"","","fall" +"","","syncope" +"","","vertigo" +"","","sweat^sweating increased" +"","","palpitation" +"","","nausea" +"","","angina pectoris" +"","","pressure chest" +"diabetes","1421","polyuria" +"","","polydypsia" +"","","shortness of breath" +"","","pain chest" +"","","asthenia" +"","","nausea" +"","","orthopnea" +"","","rale" +"","","sweat^sweating increased" +"","","unresponsiveness" +"","","mental status changes" +"","","vertigo" +"","","vomiting" +"","","labored breathing" +"depression mental^depressive disorder","1337","feeling suicidal" +"","","suicidal" +"","","hallucinations auditory" +"","","feeling hopeless" +"","","weepiness" +"","","sleeplessness" +"","","motor retardation" +"","","irritable mood" +"","","blackout" +"","","mood depressed" +"","","hallucinations visual" +"","","worry" +"","","agitation" +"","","tremor" +"","","intoxication" +"","","verbal auditory hallucinations" +"","","energy increased" +"","","difficulty" +"","","nightmare" +"","","unable to concentrate" +"","","homelessness" +"coronary arteriosclerosis^coronary heart disease","1284","pain chest" +"","","angina pectoris" +"","","shortness of breath" +"","","hypokinesia" +"","","sweat^sweating increased" +"","","pressure chest" +"","","dyspnea on exertion" +"","","orthopnea" +"","","chest tightness" +"pneumonia","1029","cough" +"","","fever" +"","","decreased translucency" +"","","shortness of breath" +"","","rale" +"","","productive cough" +"","","pleuritic pain" +"","","yellow sputum" +"","","breath sounds decreased" +"","","chill" +"","","rhonchus" +"","","green sputum" +"","","non-productive cough" +"","","wheezing" +"","","haemoptysis" +"","","distress respiratory" +"","","tachypnea" +"","","malaise" +"","","night sweat" +"failure heart congestive","963","shortness of breath" +"","","orthopnea" +"","","jugular venous distention" +"","","rale" +"","","dyspnea" +"","","cough" +"","","wheezing" +"accident cerebrovascular","885","dysarthria" +"","","asthenia" +"","","speech slurred" +"","","facial paresis" +"","","hemiplegia" +"","","unresponsiveness" +"","","seizure" +"","","numbness" +"asthma","835","wheezing" +"","","cough" +"","","shortness of breath" +"","","chest tightness" +"","","non-productive cough" +"","","pleuritic pain" +"","","productive cough" +"","","symptom aggravating factors" +"","","distress respiratory" +"myocardial infarction","759","pain chest" +"","","st segment elevation" +"","","sweat^sweating increased" +"","","shortness of breath" +"","","st segment depression" +"","","hypokinesia" +"","","angina pectoris" +"","","pressure chest" +"","","t wave inverted" +"","","orthopnea" +"","","rale" +"","","chest tightness" +"","","presence of q wave" +"","","palpitation" +"","","dyspnea" +"","","chest discomfort" +"","","bradycardia" +"","","syncope" +"hypercholesterolemia","685","pain" +"","","pain chest" +"","","sweat^sweating increased" +"","","nonsmoker" +"","","pressure chest" +"","","syncope" +"","","numbness" +"","","chest discomfort" +"","","shortness of breath" +"","","st segment depression" +"","","worry" +"","","t wave inverted" +"","","bradycardia" +"","","dyspnea" +"infection","630","fever" +"","","erythema" +"","","decreased translucency" +"","","hepatosplenomegaly" +"","","chill" +"","","pruritus" +"","","diarrhea" +"","","abscess bacterial" +"","","swelling" +"","","pain" +"","","apyrexial" +"","","cough" +"infection urinary tract","597","fever" +"","","dysuria" +"","","hematuria" +"","","renal angle tenderness" +"","","lethargy" +"","","asthenia" +"","","hyponatremia" +"","","hemodynamically stable" +"","","distress respiratory" +"","","difficulty passing urine" +"","","mental status changes" +"","","consciousness clear" +"anemia","544","chill" +"","","guaiac positive" +"","","monoclonal" +"","","ecchymosis" +"","","tumor cell invasion" +"","","haemorrhage" +"","","pallor" +"","","asthenia" +"","","fatigue" +"","","heme positive" +"","","pain back" +"","","orthostasis" +"","","hyponatremia" +"","","dizziness" +"","","shortness of breath" +"","","pain" +"","","rhonchus" +"","","arthralgia" +"","","swelling" +"","","transaminitis" +"chronic obstructive airway disease","524","shortness of breath" +"","","wheezing" +"","","cough" +"","","dyspnea" +"","","distress respiratory" +"","","sputum purulent" +"","","hypoxemia" +"","","hypercapnia" +"","","patient non compliance" +"","","chest tightness" +"dementia","504","fever" +"","","fall" +"","","unresponsiveness" +"","","lethargy" +"","","agitation" +"","","ecchymosis" +"","","syncope" +"","","rale" +"","","unconscious state" +"","","cough" +"","","bedridden^bedridden" +"","","pain" +"","","facial paresis" +"","","abdominal tenderness" +"","","rhonchus" +"","","unsteady gait" +"","","hallucinations auditory" +"insufficiency renal","445","shortness of breath" +"","","hyperkalemia" +"","","orthopnea" +"","","rale" +"","","urgency of micturition" +"","","ascites" +"","","guaiac positive" +"","","asthenia" +"","","apyrexial" +"","","mental status changes" +"","","dyspnea" +"","","difficulty" +"","","diarrhea" +"","","hypotension" +"","","breath sounds decreased" +"","","swelling" +"","","hypokinesia" +"confusion","408","seizure" +"","","enuresis" +"","","lethargy" +"","","speech slurred" +"","","fall" +"","","consciousness clear" +"","","mental status changes" +"","","asterixis" +"","","unconscious state" +"","","agitation" +"","","muscle twitch" +"","","asthenia" +"","","sleepy" +"","","dizziness" +"","","headache" +"","","dysarthria" +"","","lightheadedness" +"","","tremor" +"","","hyponatremia" +"","","unresponsiveness" +"degenerative polyarthritis","405","pain" +"","","food intolerance" +"","","numbness of hand" +"","","general discomfort" +"","","drowsiness" +"","","asthenia" +"","","nonsmoker" +"","","non-productive cough" +"","","polydypsia" +"","","stiffness" +"","","unsteady gait" +"hypothyroidism","398","shortness of breath" +"","","prostatism" +"","","drowsiness^sleepy" +"","","hyponatremia" +"","","fall" +"","","unsteady gait" +"","","polyuria" +"","","hypotension" +"","","difficulty" +"","","syncope" +"","","nightmare" +"","","speech slurred" +"","","weight gain" +"","","asthenia" +"","","fatigue^tired" +"","","agitation" +"","","mental status changes" +"","","motor retardation" +"","","vomiting" +"","","numbness" +"","","mass of body structure" +"anxiety state","390","worry" +"","","feeling suicidal" +"","","suicidal" +"","","sleeplessness" +"","","feeling hopeless" +"","","irritable mood" +"","","tremor" +"","","blackout" +"","","weepiness" +"","","has religious belief" +"","","nervousness" +"","","hallucinations visual" +"","","formication" +"","","difficulty" +"","","pain chest" +"","","patient non compliance" +"","","agitation" +"","","palpitation" +"","","hallucinations auditory" +"","","mood depressed" +"","","hot flush" +"","","pain" +"","","consciousness clear" +"","","nightmare" +"malignant neoplasms^primary malignant neoplasm","354","pain" +"","","mass of body structure" +"","","lesion" +"","","cushingoid facies^cushingoid habitus" +"","","emphysematous change" +"","","decreased body weight" +"","","ascites" +"","","hoarseness" +"","","thicken" +"","","hematuria" +"acquired immuno-deficiency syndrome^HIV^hiv infections","350","fever" +"","","night sweat" +"","","spontaneous rupture of membranes" +"","","cough" +"","","" +"","","decreased body weight" +"","","chill" +"","","diarrhea" +"","","pleuritic pain" +"","","patient non compliance" +"","","tachypnea" +"","","productive cough" +"","","muscle hypotonia^hypotonic" +"","","feeling suicidal" +"cellulitis","341","erythema" +"","","pain" +"","","swelling" +"","","redness" +"","","fever" +"","","abscess bacterial" +"","","patient non compliance" +"","","hypesthesia" +"","","hyperacusis" +"","","pruritus" +"","","pain chest" +"","","scratch marks" +"","","chill" +"","","sore to touch" +"gastroesophageal reflux disease","325","pain" +"","","pain chest" +"","","burning sensation" +"","","hyponatremia" +"","","satiety early" +"","","throbbing sensation quality" +"","","chest tightness" +"","","sensory discomfort" +"","","presence of q wave" +"","","nausea" +"","","general discomfort" +"","","constipation" +"","","palpitation" +"","","pain abdominal" +"","","heartburn" +"","","sweat^sweating increased" +"","","asthenia" +"septicemia^systemic infection^sepsis (invertebrate)","311","fever" +"","","distress respiratory" +"","","hypotension" +"","","tachypnea" +"","","chill" +"","","lethargy" +"","","bradycardia" +"","","breech presentation" +"","","cyanosis" +"","","spontaneous rupture of membranes" +"","","haemorrhage" +"","","unresponsiveness" +"","","rale" +"","","apyrexial" +"deep vein thrombosis","310","swelling" +"","","pain" +"","","ecchymosis" +"","","shortness of breath" +"","","pain in lower limb" +"","","cardiomegaly" +"","","rale" +"","","erythema" +"","","hypotension" +"","","clonus" +"","","non-productive cough" +"","","redness" +"dehydration","297","fever" +"","","diarrhea" +"","","vomiting" +"","","hypotension" +"","","nausea" +"","","lightheadedness" +"","","unwell" +"","","mental status changes" +"","","anorexia" +"","","asthenia" +"","","sensory discomfort" +"","","syncope" +"","","lethargy" +"","","dizziness" +"","","syncope^blackout^history of - blackout" +"neoplasm","297","mass of body structure" +"","","lesion" +"","","pain chest" +"","","hematuria" +"","","tumor cell invasion" +"","","pain" +"","","anosmia" +"","","thicken" +"","","metastatic lesion" +"","","food intolerance" +"","","decreased body weight" +"","","night sweat" +"","","hemianopsia homonymous" +"","","satiety early" +"","","pain abdominal" +"","","headache" +"embolism pulmonary","294","shortness of breath" +"","","hypoxemia" +"","","tachypnea" +"","","hematocrit decreased" +"","","pain chest" +"","","dyspnea" +"","","pleuritic pain" +"","","neck stiffness" +"","","yellow sputum" +"","","productive cough" +"","","cicatrisation" +"","","unresponsiveness" +"","","distress respiratory" +"","","wheezing" +"","","apyrexial" +"","","non-productive cough" +"epilepsy","290","seizure" +"","","hypometabolism" +"","","aura" +"","","muscle twitch" +"","","drowsiness" +"","","tremor" +"","","unresponsiveness" +"","","hemiplegia" +"","","myoclonus" +"","","gurgle" +"","","sleepy" +"","","lethargy" +"","","wheelchair bound" +"cardiomyopathy","283","shortness of breath" +"","","orthopnea" +"","","hypokinesia" +"","","jugular venous distention" +"","","palpitation" +"","","pain chest" +"","","syncope" +"","","yellow sputum" +"","","rale" +"","","dyspnea" +"","","dyspnea on exertion" +"","","left atrial hypertrophy" +"","","fatigue" +"","","weight gain" +"","","patient non compliance" +"chronic kidney failure","280","vomiting" +"","","orthopnea" +"","","hyperkalemia" +"","","oliguria" +"","","jugular venous distention" +"","","nausea" +"","","shortness of breath" +"","","mental status changes" +"","","diarrhea" +"","","asthenia" +"","","chest tightness" +"","","malaise" +"","","chill" +"","","rale" +"","","fever" +"","","pleuritic pain" +"","","apyrexial" +"","","guaiac positive" +"","","swelling" +"","","catatonia" +"","","unresponsiveness" +"","","yellow sputum" +"carcinoma","269","mass of body structure" +"","","pain" +"","","lesion" +"","","tumor cell invasion" +"","","thicken" +"","","decreased body weight" +"","","hoarseness" +"","","general discomfort" +"","","metastatic lesion" +"","","non-productive cough" +"","","constipation" +"","","unhappy" +"","","paresthesia" +"","","gravida 0" +"","","diarrhea" +"","","sore to touch" +"","","heartburn" +"","","nausea" +"","","lung nodule" +"hepatitis C","269","ascites" +"","","distended abdomen" +"","","feeling suicidal" +"","","cough" +"","","ache" +"","","macerated skin" +"","","heavy feeling" +"","","hallucinations auditory" +"","","chill" +"","","asterixis" +"","","patient non compliance" +"peripheral vascular disease","268","shortness of breath" +"","","rest pain" +"","","angina pectoris" +"","","unresponsiveness" +"","","hyperkalemia" +"","","sinus rhythm" +"","","labored breathing" +"","","dyspnea" +"","","sore to touch" +"","","anorexia" +"","","sleepy" +"psychotic disorder","267","suicidal" +"","","hallucinations auditory" +"","","feeling suicidal" +"","","hallucinations visual" +"","","motor retardation" +"","","blackout" +"","","verbal auditory hallucinations" +"","","feeling hopeless" +"","","irritable mood" +"","","agitation" +"","","tremor" +"","","catatonia" +"","","weepiness" +"","","homelessness" +"","","sleeplessness" +"","","withdraw" +"","","energy increased" +"","","intoxication" +"","","worry" +"","","behavior hyperactive" +"","","patient non compliance" +"","","mood depressed" +"","","terrify" +"","","nightmare" +"","","consciousness clear" +"hyperlipidemia","247","pain chest" +"","","angina pectoris" +"","","palpitation" +"","","presence of q wave" +"","","photopsia" +"","","sweat^sweating increased" +"","","chest discomfort" +"","","shortness of breath" +"","","giddy mood" +"","","hypokinesia" +"","","hemiplegia" +"","","dizziness" +"bipolar disorder","241","feeling suicidal" +"","","energy increased" +"","","suicidal" +"","","irritable mood" +"","","agitation" +"","","has religious belief" +"","","disturbed family" +"","","hallucinations auditory" +"","","verbal auditory hallucinations" +"","","weepiness" +"","","behavior hyperactive" +"","","catatonia" +"","","feeling hopeless" +"","","worry" +"","","sleeplessness" +"","","hypersomnia" +"","","difficulty" +"","","hallucinations visual" +"","","hyperhidrosis disorder" +"","","mydriasis" +"","","extrapyramidal sign" +"","","loose associations" +"","","intoxication" +"","","motor retardation" +"","","homelessness" +"","","blackout" +"","","tremor" +"","","exhaustion" +"obesity","228","pain" +"","","catatonia" +"","","snore" +"","","pain chest" +"","","r wave feature" +"","","has religious belief" +"","","shortness of breath" +"","","fatigue^tired" +"","","overweight" +"","","systolic murmur" +"","","mood depressed" +"","","ecchymosis" +"ischemia","226","drowsiness^sleepy" +"","","pain chest" +"","","angina pectoris" +"","","pressure chest" +"","","chest discomfort" +"","","shortness of breath" +"","","dyspnea" +"","","sinus rhythm" +"","","bradycardia" +"","","sweat^sweating increased" +"","","rale" +"","","asymptomatic" +"","","anorexia" +"cirrhosis","218","ascites" +"","","fall" +"","","splenomegaly" +"","","pruritus" +"","","pain abdominal" +"","","tumor cell invasion" +"","","distended abdomen" +"","","lesion" +"","","hemodynamically stable" +"","","guaiac positive" +"","","sore to touch" +"","","bleeding of vagina" +"exanthema","208","fever" +"","","pruritus" +"","","macule" +"","","lesion" +"","","redness" +"","","headache" +"","","apyrexial" +"","","arthralgia" +"","","swelling" +"","","erythema" +"","","photophobia" +"","","chill" +"","","scratch marks" +"","","pain" +"","","painful swallowing" +"benign prostatic hypertrophy","192","mental status changes" +"","","cachexia" +"","","blackout" +"","","orthostasis" +"","","orthopnea" +"","","night sweat" +"","","distress respiratory" +"","","anorexia" +"","","dysarthria" +"kidney failure acute","186","hyperkalemia" +"","","hypotension" +"","","hypocalcemia result" +"","","oliguria" +"","","hemodynamically stable" +"","","asthenia" +"","","hypothermia, natural" +"","","diarrhea" +"","","haemorrhage" +"","","unresponsiveness" +"mitral valve insufficiency","186","shortness of breath" +"","","dyspnea on exertion" +"","","asymptomatic" +"","","hypokinesia" +"","","dyspnea" +"","","syncope" +"","","thicken" +"","","left atrial hypertrophy" +"","","palpitation" +"","","fatigue" +"","","vomiting" +"","","pain" +"","","cardiomegaly" +"","","chest discomfort" +"arthritis","179","pain" +"","","hemodynamically stable" +"","","sleeplessness" +"","","asthenia" +"","","syncope" +"","","swelling" +"","","atypia" +"","","general unsteadiness" +"","","shortness of breath" +"","","distended abdomen" +"bronchitis","172","cough" +"","","wheezing" +"","","shortness of breath" +"","","chest tightness" +"","","fever" +"","","throat sore" +"","","productive cough" +"","","hepatosplenomegaly" +"","","night sweat" +"","","haemoptysis" +"","","labored breathing" +"","","snuffle" +"","","hacking cough" +"","","dyspnea" +"","","chill" +"","","stridor" +"","","decreased body weight" +"hemiparesis","171","dysarthria" +"","","paresis" +"","","asthenia" +"","","aphagia" +"","","seizure" +"","","speech slurred" +"","","focal seizures" +"","","hemiplegia" +"","","abnormal sensation" +"","","unresponsiveness" +"","","stupor" +"","","drowsiness^sleepy" +"","","fremitus" +"","","Stahli's line" +"","","stinging sensation" +"","","paralyse" +"","","clonus" +"","","facial paresis" +"osteoporosis","169","prostatism" +"","","fall" +"","","hirsutism" +"","","sniffle" +"","","distended abdomen" +"","","vertigo" +"","","numbness of hand" +"","","bradykinesia" +"","","pain" +"","","syncope" +"","","out of breath" +"","","apyrexial" +"","","urge incontinence" +"","","lightheadedness" +"transient ischemic attack","168","speech slurred" +"","","dysarthria" +"","","facial paresis" +"","","asthenia" +"","","neck stiffness" +"","","vertigo" +"","","numbness" +"","","lightheadedness" +"","","extrapyramidal sign" +"","","Stahli's line" +"","","vision blurred" +"","","headache" +"","","room spinning" +"","","syncope" +"","","difficulty" +"","","rambling speech" +"","","clumsiness" +"adenocarcinoma","166","mass of body structure" +"","","lesion" +"","","decreased body weight" +"","","constipation" +"","","fremitus" +"","","decreased stool caliber" +"","","satiety early" +"","","hematochezia" +"","","egophony" +"","","pain" +"","","cicatrisation^scar tissue" +"","","pain abdominal" +"paranoia","165","hallucinations auditory" +"","","hallucinations visual" +"","","agitation" +"","","irritable mood" +"","","verbal auditory hallucinations" +"","","feeling suicidal" +"","","suicidal" +"","","terrify" +"","","neologism" +"","","homelessness" +"","","energy increased" +"","","mood depressed" +"","","decompensation" +"","","cicatrisation^scar tissue" +"","","blackout" +"","","loose associations" +"pancreatitis","165","vomiting" +"","","pain abdominal" +"","","nausea" +"","","pain" +"","","diarrhea" +"","","stool color yellow" +"","","rigor - temperature-associated observation" +"","","apyrexial" +"","","sore to touch" +"incontinence","165","paraparesis" +"","","seizure" +"","","asthenia" +"","","urge incontinence" +"","","unconscious state" +"","","aura" +"","","moody" +"","","fear of falling" +"","","tremor" +"","","spasm" +"","","unhappy" +"","","syncope" +"","","fall" +"","","stiffness" +"","","unresponsiveness" +"paroxysmal dyspnea","165","orthopnea" +"","","shortness of breath" +"","","dyspnea on exertion" +"","","jugular venous distention" +"","","rale" +"","","pain chest" +"","","palpitation" +"","","sweat^sweating increased" +"","","weight gain" +"","","cough" +"","","dyspnea" +"hernia","164","pain abdominal" +"","","pain" +"","","hyperventilation" +"","","excruciating pain" +"","","gag" +"","","nausea" +"","","posturing" +"","","hemiplegia" +"","","sore to touch" +"","","haemorrhage" +"","","apyrexial" +"","","food intolerance" +"","","pulse absent" +"","","asthenia" +"","","mass of body structure" +"","","thicken" +"malignant neoplasm of prostate^carcinoma prostate","163","hematuria" +"","","dysesthesia" +"","","asthenia" +"","","polymyalgia" +"","","passed stones" +"","","pleuritic pain" +"","","guaiac positive" +"","","rale" +"","","breath sounds decreased" +"","","urge incontinence" +"","","dysuria" +"","","diarrhea" +"","","vertigo" +"","","qt interval prolonged" +"","","ataxia" +"","","paresis" +"","","hemianopsia homonymous" +"","","tumor cell invasion" +"","","hemodynamically stable" +"","","mass of body structure" +"","","rhonchus" +"","","orthostasis" +"","","decreased body weight" +"edema pulmonary","161","urgency of micturition" +"","","shortness of breath" +"","","rale" +"","","tachypnea" +"","","orthopnea" +"","","Heberden's node" +"","","jugular venous distention" +"","","dyspnea" +"","","sweat^sweating increased" +"","","patient non compliance" +"","","chest discomfort" +"","","hyperkalemia" +"","","sinus rhythm" +"","","pain chest" +"","","hypotension" +"","","wheezing" +"lymphatic diseases","160","pain" +"","","mass of body structure" +"","","night sweat" +"","","splenomegaly" +"","","lesion" +"","","chill" +"","","decreased body weight" +"","","swelling" +"","","fever" +"","","hyperacusis" +"","","fremitus" +"","","non-productive cough" +"","","egophony" +"","","redness" +"","","hepatomegaly" +"","","fatigue" +"stenosis aortic valve","158","dyspnea on exertion" +"","","syncope" +"","","chest discomfort" +"","","systolic murmur" +"","","sciatica" +"","","angina pectoris" +"","","pain chest" +"","","frothy sputum" +"","","bradycardia" +"","","shortness of breath" +"","","pain" +"malignant neoplasm of breast^carcinoma breast","152","mass in breast" +"","","mass of body structure" +"","","paresthesia" +"","","retropulsion" +"","","erythema" +"","","difficulty" +"","","lesion" +"","","estrogen use" +"","","burning sensation" +"","","dyspnea" +"","","swelling" +"","","formication" +"schizophrenia","147","hallucinations auditory" +"","","hypersomnolence" +"","","irritable mood" +"","","verbal auditory hallucinations" +"","","patient non compliance" +"","","agitation" +"","","suicidal" +"","","worry" +"","","hallucinations visual" +"","","underweight^underweight" +"","","homelessness" +"diverticulitis","145","pain abdominal" +"","","abscess bacterial" +"","","dullness" +"","","red blotches" +"","","diarrhea" +"","","sore to touch" +"","","dysuria" +"","","pain" +"","","vomiting" +"","","sinus rhythm" +"","","colic abdominal" +"","","apyrexial" +"","","abdominal tenderness" +"","","fever" +"","","unsteady gait" +"","","thicken" +"","","urgency of micturition" +"","","anorexia" +"","","monoclonal" +"","","constipation" +"overload fluid","144","rale" +"","","jugular venous distention" +"","","hyperkalemia" +"","","orthopnea" +"","","shortness of breath" +"","","drowsiness^sleepy" +"","","weight gain" +"","","hypokalemia" +"","","hypotension" +"","","swelling" +"","","distended abdomen" +"ulcer peptic","143","pain abdominal" +"","","paraparesis" +"","","nausea" +"","","vomiting" +"","","polymyalgia" +"","","out of breath" +"","","pain chest" +"","","hemiplegia" +"","","gurgle" +"","","hunger" +"","","apyrexial" +"","","nervousness" +"osteomyelitis","142","pain" +"","","redness" +"","","prostate tender" +"","","fever" +"","","difficulty passing urine" +"","","sore to touch" +"","","swelling" +"","","apyrexial" +"","","erythema" +"","","abscess bacterial" +"","","pain foot" +"","","urinary hesitation" +"gastritis","140","heme positive" +"","","pain abdominal" +"","","vomiting" +"","","disequilibrium" +"","","nausea" +"","","intoxication" +"","","haemorrhage" +"","","guaiac positive" +"","","pain" +"","","decreased body weight" +"","","sore to touch" +"","","dizziness" +"bacteremia","142","fever" +"","","chill" +"","","flushing" +"","","unresponsiveness" +"","","indifferent mood" +"","","urinoma" +"","","vomiting" +"","","distended abdomen" +"","","hypoalbuminemia" +"","","pustule" +"","","prostatism" +"","","diarrhea" +"","","abdominal tenderness" +"","","pleuritic pain" +"","","decreased translucency" +"","","pallor" +"failure kidney","140","orthopnea" +"","","oliguria" +"","","slowing of urinary stream" +"","","extreme exhaustion" +"","","unresponsiveness" +"","","hypotension" +"","","enuresis" +"","","shortness of breath" +"","","haemorrhage" +"","","prostatism" +"","","no status change" +"","","bedridden^bedridden" +"","","fatigue" +"sickle cell anemia","140","breakthrough pain" +"","","pain back" +"","","pain" +"","","shortness of breath" +"","","snuffle" +"","","pain chest" +"","","pain abdominal" +"","","hepatosplenomegaly" +"","","green sputum" +"","","apyrexial" +"","","headache" +"failure heart","138","orthopnea" +"","","fatigue" +"","","dyspnea on exertion" +"","","dyspnea" +"","","shortness of breath" +"","","pansystolic murmur" +"","","jugular venous distention" +"","","systolic ejection murmur" +"","","hypotension" +"","","angina pectoris" +"","","hypokinesia" +"upper respiratory infection","135","cough" +"","","throat sore" +"","","wheezing" +"","","shortness of breath" +"","","labored breathing" +"","","fever" +"","","stuffy nose" +"","","non-productive cough" +"","","snuffle" +"","","indifferent mood" +"","","egophony" +"","","barking cough" +"","","polymyalgia" +"","","pleuritic pain" +"","","night sweat" +"","","dyspnea" +"","","productive cough" +"","","decreased translucency" +"","","rhonchus" +"","","rapid shallow breathing" +"","","apyrexial" +"","","noisy respiration" +"","","nasal discharge present" +"","","emphysematous change" +"","","frail" +"","","cystic lesion" +"","","symptom aggravating factors" +"","","hemodynamically stable" +"hepatitis","133","ascites" +"","","spontaneous rupture of membranes" +"","","tachypnea" +"","","pain abdominal" +"","","pruritus" +"","","anorexia" +"","","transaminitis" +"","","projectile vomiting" +"","","chill" +"","","distress respiratory" +"","","fever" +"","","vomiting" +"hypertension pulmonary","128","shortness of breath" +"","","Stahli's line" +"","","heavy legs" +"","","breath sounds decreased" +"","","neck stiffness" +"","","dyspnea on exertion" +"","","cyanosis" +"","","hypotension" +"","","left atrial hypertrophy" +"deglutition disorder","126","paresthesia" +"","","titubation" +"","","dysarthria" +"","","painful swallowing" +"","","hoarseness" +"","","stridor" +"","","spasm" +"","","asthenia" +"","","dysdiadochokinesia" +"","","ataxia" +"","","achalasia" +"","","decreased body weight" +"","","stiffness" +"","","lesion" +"","","side pain" +"gout","124","hot flush" +"","","pain" +"","","redness" +"","","swelling" +"","","erythema" +"","","emphysematous change" +"","","sore to touch" +"","","hypokinesia" +"","","ascites" +"","","patient non compliance" +"thrombocytopaenia","123","ecchymosis" +"","","monocytosis" +"","","posterior rhinorrhea" +"","","haemorrhage" +"","","tachypnea" +"","","fever" +"","","pruritus" +"","","hypotension" +"","","fatigue" +"hypoglycemia","122","unresponsiveness" +"","","hypothermia, natural" +"","","incoherent" +"","","qt interval prolonged" +"","","lameness^claudication" +"","","unconscious state" +"","","clammy skin" +"","","polyuria" +"","","distress respiratory" +"","","hypotension" +"pneumonia aspiration","119","mediastinal shift" +"","","fever" +"","","clonus" +"","","mental status changes" +"","","decreased translucency" +"","","unresponsiveness" +"","","extreme exhaustion" +"","","stupor" +"","","seizure" +"","","transaminitis" +"","","hemiplegia" +"","","cough" +"","","gurgle" +"","","pain" +"","","diarrhea" +"","","pain abdominal" +"colitis","114","fever" +"","","thicken" +"","","green sputum" +"","","vomiting" +"","","nausea and vomiting" +"","","awakening early" +"","","pain" +"","","nausea" +"","","chill" +"","","tenesmus" +"","","urge incontinence" +"","","pain abdominal" +"","","hemodynamically stable" +"diverticulosis","114","fecaluria" +"","","constipation" +"","","abscess bacterial" +"","","heme positive" +"","","lightheadedness" +"","","diarrhea" +"","","haemorrhage" +"","","pain" +"","","projectile vomiting" +"","","pneumatouria" +"","","cystic lesion" +"","","anorexia" +"","","nausea" +"","","feeling suicidal" +"","","feeling hopeless" +"suicide attempt","114","hallucinations auditory" +"","","sleeplessness" +"","","suicidal" +"","","motor retardation" +"","","weepiness" +"","","unable to concentrate" +"","","todd paralysis" +"","","worry" +"","","fatigue" +"","","tremor" +"","","alcoholic withdrawal symptoms" +"","","agitation" +"","","unresponsiveness" +"","","blackout" +"","","withdraw" +"","","difficulty" +"","","irritable mood" +"","","sensory discomfort" +"","","drowsiness" +"","","formication" +"","","unconscious state" +"","","fever" +"","","cough" +"Pneumocystis carinii pneumonia","113","yellow sputum" +"","","cachexia" +"","","chill" +"","","decreased body weight" +"","","productive cough" +"","","myalgia" +"","","diarrhea" +"","","neck stiffness" +"","","hacking cough" +"","","dyspareunia" +"","","hypokalemia" +"","","dyspnea on exertion" +"","","poor dentition" +"","","transaminitis" +"","","non-productive cough" +"","","headache" +"","","floppy" +"","","spontaneous rupture of membranes" +"hepatitis B","111","inappropriate affect" +"","","tachypnea" +"","","yellow sputum" +"","","projectile vomiting" +"","","poor feeding" +"","","pain abdominal" +"","","abdominal tenderness" +"","","wheelchair bound" +"","","moan" +"parkinson disease","108","achalasia" +"","","fall" +"","","stiffness" +"","","withdraw" +"","","agitation" +"","","hemiplegia" +"","","difficulty" +"","","unresponsiveness" +"","","syncope" +"","","facial paresis" +"","","orthostasis" +"","","worry" +"","","drowsiness^sleepy" +"","","hematuria" +"","","tremor" +"","","night sweat" +"","","mass of body structure" +"lymphoma","105","lesion" +"","","fever" +"","","welt" +"","","transaminitis" +"","","decreased body weight" +"","","ataxia" +"","","tinnitus" +"","","hydropneumothorax" +"","","superimposition" +"","","haemoptysis" +"","","fatigue^tired" +"","","polydypsia" +"","","difficulty passing urine" +"hyperglycemia","104","sore to touch" +"","","pruritus" +"","","feeling strange" +"","","pustule" +"","","cushingoid facies^cushingoid habitus" +"","","decreased body weight" +"","","mood depressed" +"","","estrogen use" +"","","wheezing" +"","","ascites" +"","","seizure" +"encephalopathy","103","uncoordination" +"","","asterixis" +"","","haemorrhage" +"","","drowsiness^sleepy" +"","","absences finding" +"","","posturing" +"","","aura" +"","","tonic seizures" +"","","debilitation" +"","","consciousness clear" +"","","unresponsiveness" +"","","thicken" +"","","hypokinesia" +"tricuspid valve insufficiency","101","shortness of breath" +"","","pain" +"","","vomiting" +"","","nausea" +"","","bradycardia" +"","","pain abdominal" +"","","fever" +"","","cicatrisation" +"","","mediastinal shift" +"","","impaired cognition" +"Alzheimer's disease","101","drool" +"","","agitation" +"","","nightmare" +"","","rhonchus" +"","","consciousness clear" +"","","pin-point pupils" +"","","bedridden^bedridden" +"","","frail" +"","","tremor resting" +"","","hyperkalemia" +"","","facial paresis" +"","","groggy" +"","","muscle twitch" +"","","wheelchair bound" +"","","tremor" +"","","cough" +"","","fever" +"candidiasis^oral candidiasis","99","diarrhea" +"","","throat sore" +"","","decreased body weight" +"","","chill" +"","","headache" +"","","abdominal tenderness" +"","","patient non compliance" +"","","photophobia" +"","","night sweat" +"","","painful swallowing" +"","","poor dentition" +"","","transaminitis" +"","","non-productive cough" +"","","adverse reaction^adverse effect" +"","","abdominal bloating" +"neuropathy","99","asthenia" +"","","numbness" +"","","nausea and vomiting" +"","","awakening early" +"","","hydropneumothorax" +"","","superimposition" +"","","fatigability" +"","","tenesmus" +"","","pain" +"","","slowing of urinary stream" +"kidney disease","96","shortness of breath" +"","","hyperkalemia" +"","","pain chest" +"","","fever" +"","","gravida 0" +"","","bleeding of vagina" +"fibroid tumor","96","para 2" +"","","haemorrhage" +"","","abortion" +"","","intermenstrual heavy bleeding" +"","","muscle hypotonia^hypotonic" +"","","previous pregnancies 2" +"","","shortness of breath" +"","","fever" +"","","heartburn" +"","","primigravida" +"","","abnormally hard consistency" +"","","proteinemia" +"glaucoma","95","fall" +"","","distended abdomen" +"","","unsteady gait" +"","","paresthesia" +"","","hyponatremia" +"","","agitation" +"","","unconscious state" +"","","burning sensation" +"","","lesion" +"","","mass of body structure" +"neoplasm metastasis","94","thicken" +"","","tumor cell invasion" +"","","metastatic lesion" +"","","pain neck" +"","","lung nodule" +"","","pain" +"","","pain abdominal" +"","","food intolerance" +"","","mass of body structure" +"","","atypia" +"malignant tumor of colon^carcinoma colon","94","lesion" +"","","prostatism" +"","","constipation" +"","","general discomfort" +"","","diarrhea" +"","","pain abdominal" +"","","urinary hesitation" +"","","dizzy spells" +"","","shooting pain" +"","","bradycardia" +"","","vomiting" +"","","systolic ejection murmur" +"","","nausea" +"","","hyperemesis" +"","","polydypsia" +"ketoacidosis diabetic","93","polyuria" +"","","vomiting" +"","","nausea" +"","","pain abdominal" +"","","milky" +"","","feeling strange" +"","","gurgle" +"","","nervousness" +"","","abdominal tenderness" +"","","regurgitates after swallowing" +"","","vision blurred" +"","","urinary hesitation" +"","","diarrhea" +"","","seizure" +"","","aura" +"tonic-clonic epilepsy^tonic-clonic seizures","92","drowsiness" +"","","lip smacking" +"","","myoclonus" +"","","tremor" +"","","phonophobia" +"","","rolling of eyes" +"","","sleepy" +"","","hirsutism" +"","","moody" +"","","muscle twitch" +"","","unresponsiveness" +"","","headache" +"","","ambidexterity" +"","","absences finding" +"","","spasm" +"","","decreased body weight" +"","","tumor cell invasion" +"malignant neoplasms","90","pulsus paradoxus" +"","","gravida 10" +"","","mass of body structure" +"","","lesion" +"","","heartburn" +"","","night sweat" +"","","thicken" +"","","chill" +"","","decreased translucency" +"","","pain abdominal" +"","","dullness" +"","","food intolerance" +"","","distress respiratory" +"","","hypotension" +"respiratory failure","90","hemiplegia" +"","","snore" +"","","unresponsiveness" +"","","productive cough" +"","","dyspnea" +"","","tachypnea" +"","","hyperkalemia" +"","","hypokinesia" +"","","sinus rhythm" +"","","general unsteadiness" +"","","bruit" +"","","consciousness clear" +"","","shortness of breath" +"","","lesion" +"","","redness" +"melanoma","87","mass of body structure" +"","","paraparesis" +"","","fever" +"","","gravida 0" +"","","pain" +"","","pruritus" +"","","mass in breast" +"","","vomiting" +"","","diarrhea" +"gastroenteritis","87","pain abdominal" +"","","breath-holding spell" +"","","nausea" +"","","decreased body weight" +"","","sore to touch" +"","","scleral icterus" +"","","fever" +"","","myalgia" +"","","hyponatremia" +"","","retch" +"","","mass of body structure" +"","","decreased body weight" +"malignant neoplasm of lung^carcinoma of lung","86","lesion" +"","","cough" +"","","lung nodule" +"","","shortness of breath" +"","","haemoptysis" +"","","debilitation" +"","","gurgle" +"","","ache" +"","","rale" +"","","night sweat" +"","","decreased translucency" +"","","asthenia" +"","","metastatic lesion" +"","","agitation" +"","","irritable mood" +"manic disorder","85","energy increased" +"","","suicidal" +"","","hypersomnia" +"","","feeling suicidal" +"","","blanch" +"","","hallucinations auditory" +"","","hallucinations visual" +"","","elation" +"","","verbal auditory hallucinations" +"","","feeling hopeless" +"","","difficulty" +"","","decompensation" +"","","verbally abusive behavior" +"","","suicidal" +"","","feeling suicidal" +"personality disorder","84","nightmare" +"","","feeling hopeless" +"","","transsexual" +"","","hallucinations auditory" +"","","irritable mood" +"","","sleeplessness" +"","","agitation" +"","","weepiness" +"","","mood depressed" +"","","scratch marks" +"","","nausea and vomiting" +"","","extreme exhaustion" +"","","side pain" +"","","worry" +"","","enuresis" +"","","homelessness" +"","","nervousness" +"","","ascites" +"","","pruritus" +"primary carcinoma of the liver cells","82","mass of body structure" +"","","splenomegaly" +"","","lesion" +"","","paresis" +"","","tumor cell invasion" +"","","room spinning" +"","","haemorrhage" +"","","thicken" +"","","indifferent mood" +"","","cachexia" +"","","hypothermia, natural" +"","","pain abdominal" +"","","hepatomegaly" +"","","hematocrit decreased" +"","","stupor" +"","","decreased body weight" +"","","shortness of breath" +"","","cough" +"emphysema pulmonary","80","behavior showing increased motor activity" +"","","scar tissue" +"","","dyspnea on exertion" +"","","coordination abnormal" +"","","myalgia" +"","","hypercapnia" +"","","clammy skin" +"","","has religious belief" +"","","room spinning" +"","","moan" +"","","night sweat" +"","","cachexia" +"","","symptom aggravating factors" +"","","dyspnea" +"","","rale" +"","","flushing" +"","","painful swallowing" +"","","arthralgia" +"","","choke" +"","","tenesmus" +"","","constipation" +"hemorrhoids","80","haemorrhage" +"","","bowel sounds decreased" +"","","decreased stool caliber" +"","","nausea and vomiting" +"","","hunger" +"","","diarrhea" +"","","dizziness" +"","","hyponatremia" +"","","clonus" +"","","pain" +"","","achalasia" +"","","burning sensation" +"","","guaiac positive" +"","","numbness of hand" +"","","wheezing" +"","","cough" +"spasm bronchial","76","shortness of breath" +"","","scar tissue" +"","","apyrexial" +"","","no known drug allergies" +"","","pain" +"","","productive cough" +"","","throat sore" +"","","dyspnea" +"","","chest tightness" +"","","hypoxemia" +"","","tachypnea" +"","","sensory discomfort" +"","","fever" +"","","vomiting" +"","","rhonchus" +"","","hemiplegia" +"","","fremitus" +"aphasia","76","clonus" +"","","egophony" +"","","facial paresis" +"","","aphagia" +"","","muscle twitch" +"","","paralyse" +"","","low back pain" +"","","charleyhorse" +"obesity morbid","76","out of breath" +"","","sedentary" +"","","angina pectoris" +"","","cough" +"","","unhappy" +"","","labored breathing" +"","","hypothermia, natural" +"","","dyspnea" +"","","hematocrit decreased" +"","","wheezing" +"","","hypoxemia" +"","","renal angle tenderness" +"","","feels hot/feverish" +"pyelonephritis","74","fever" +"","","pain" +"","","urgency of micturition" +"","","hematuria" +"","","vomiting" +"","","chill" +"","","diarrhea" +"","","nausea" +"","","pain abdominal" +"","","myalgia" +"","","fever" +"","","chill" +"endocarditis","71","pleuritic pain" +"","","thicken" +"","","myalgia" +"","","apyrexial" +"","","night sweat" +"","","flare" +"","","shortness of breath" +"","","orthopnea" +"","","abscess bacterial" +"","","hypotension" +"","","cough" +"","","metastatic lesion" +"","","breath sounds decreased" +"","","decreased body weight" +"","","" +"","","pulsus paradoxus" +"","","hypokinesia" +"effusion pericardial^pericardial effusion body substance","71","pericardial friction rub" +"","","dyspnea" +"","","shortness of breath" +"","","hemodynamically stable" +"","","cardiomegaly" +"","","hypotension" +"","","sputum purulent" +"","","facial paresis" +"","","pain" +"","","oliguria" +"","","blackout" +"","","intoxication" +"chronic alcoholic intoxication","70","tremor" +"","","hallucinations auditory" +"","","suicidal" +"","","hoard" +"","","irritable mood" +"","","feeling hopeless" +"","","feeling suicidal" +"","","neologism" +"","","seizure" +"","","homelessness" +"","","sleeplessness" +"","","unconscious state" +"","","panic" +"","","breath sounds decreased" +"","","shortness of breath" +"pneumothorax","68","dyspnea" +"","","cardiovascular finding^cardiovascular event" +"","","haemoptysis" +"","","cough" +"","","hypercapnia" +"","","soft tissue swelling" +"","","prostatism" +"","","agitation" +"delirium","68","unsteady gait" +"","","withdraw" +"","","hyponatremia" +"","","verbally abusive behavior" +"","","feeling suicidal" +"","","unresponsiveness" +"","","worry" +"","","drowsiness^sleepy" +"","","hallucinations auditory" +"","","suicidal" +"","","fever" +"","","diarrhea" +"neutropenia","68","transaminitis" +"","","splenomegaly" +"","","night sweat" +"","","apyrexial" +"","","lesion" +"","","snuffle" +"","","chill" +"","","cough" +"","","monoclonal" +"","","hypocalcemia result" +"","","oliguria" +"","","rhd positive" +"","","distress respiratory" +"hyperbilirubinemia","68","cyanosis" +"","","tachypnea" +"","","para 1" +"","","bradycardia" +"","","breech presentation" +"","","cushingoid facies^cushingoid habitus" +"","","cough" +"","","myalgia" +"influenza","68","uncoordination" +"","","fever" +"","","pleuritic pain" +"","","snuffle" +"","","throat sore" +"","","malaise" +"","","debilitation" +"","","symptom aggravating factors" +"","","chill" +"","","scleral icterus" +"","","nasal flaring" +"","","dysuria" +"","","lip smacking" +"","","headache" +"","","sneeze" +"","","snore" +"","","green sputum" +"","","shortness of breath" +"","","distress respiratory" +"","","blackout" +"","","extreme exhaustion" +"dependence","67","intoxication" +"","","tremor" +"","","agitation" +"","","suicidal" +"","","homelessness" +"","","prostatism" +"","","lethargy" +"","","seizure" +"","","muscle twitch" +"","","stuffy nose" +"","","feeling hopeless" +"","","heavy legs" +"","","rale" +"thrombus","67","hypokinesia" +"","","anorexia" +"","","hypertonicity" +"","","shortness of breath" +"","","hypoalbuminemia" +"","","pruritus" +"","","sore to touch" +"","","hemodynamically stable" +"","","facial paresis" +"","","vomiting" +"","","stool color yellow" +"cholecystitis","66","moan" +"","","nausea" +"","","pain abdominal" +"","","Murphy's sign" +"","","flatulence" +"","","colic abdominal" +"","","pain" +"","","ascites" +"","","diarrhea" +"","","qt interval prolonged" +"","","cardiovascular finding^cardiovascular event" +"","","groggy" +"","","sinus rhythm" +"","","gasping for breath" +"","","constipation" +"","","feces in rectum" +"","","abnormally hard consistency" +"hernia hiatal","61","pain abdominal" +"","","fatigability" +"","","prodrome" +"","","vomiting" +"","","nausea" +"","","myalgia" +"","","hyponatremia" +"","","sore to touch" +"","","general discomfort" +"","","dyspnea on exertion" +"","","asterixis" +"","","guaiac positive" +"","","numbness of hand" +"","","headache" +"","","photophobia" +"migraine disorders","61","ambidexterity" +"","","vomiting" +"","","dizziness" +"","","numbness" +"","","nausea" +"","","fever" +"","","splenomegaly" +"pancytopenia","61","hypoproteinemia" +"","","fatigue" +"","","haemorrhage" +"","","fatigability" +"","","cushingoid facies^cushingoid habitus" +"","","stool color yellow" +"","","colic abdominal" +"cholelithiasis^biliary calculus","61","vomiting" +"","","nausea" +"","","pain abdominal" +"","","pain" +"","","cushingoid facies^cushingoid habitus" +"","","ascites" +"","","thicken" +"","","sore to touch" +"","","diarrhea" +"","","apyrexial" +"","","palpitation" +"tachycardia sinus","56","left atrial hypertrophy" +"","","sweat^sweating increased" +"","","alcohol binge episode" +"","","pressure chest" +"","","scar tissue" +"","","cardiovascular finding^cardiovascular event" +"","","orthostasis" +"","","shortness of breath" +"","","t wave inverted" +"","","vomiting" +"","","pain abdominal" +"ileus","56","abscess bacterial" +"","","abdomen acute" +"","","air fluid level" +"","","catching breath" +"","","abdominal tenderness" +"","","nausea" +"","","sore to touch" +"","","flatulence" +"","","diarrhea" +"","","mass of body structure" +"","","apyrexial" +"","","constipation" +"","","thicken" +"","","gravida 0" +"","","pain abdominal" +"adhesion","57","flatulence" +"","","pain" +"","","large-for-dates fetus" +"","","para 1" +"","","vomiting" +"","","lung nodule" +"","","breech presentation" +"","","shortness of breath" +"","","decreased body weight" +"","","immobile" +"","","unsteady gait" +"","","hallucinations visual" +"","","feeling suicidal" +"delusion","56","loose associations" +"","","giddy mood" +"","","feeling hopeless" +"","","agitation" +"","","hallucinations auditory" +"","","irritable mood" +"","","sleeplessness" +"","","neologism" +"","","homicidal thoughts" +"","","disturbed family" +"","","worry" +"","","decompensation" +"","","verbally abusive behavior" +"","","catatonia" +"","","suicidal" +"","","terrify" +"","","blackout" +"","","weepiness" +"","","impaired cognition" +"","","irritable mood" +"","","agitation" +"affect labile","45","extreme exhaustion" +"","","sleeplessness" +"","","enuresis" +"","","patient non compliance" +"","","feeling hopeless" +"","","hallucinations visual" +"","","bedridden^bedridden" +"","","prostatism" +"decubitus ulcer","42","systolic murmur" +"","","frail" +"","","fever" +"","","" diff --git a/backend/app/data/raw_data_2.csv b/backend/app/data/raw_data_2.csv new file mode 100644 index 0000000..fc9a9e2 --- /dev/null +++ b/backend/app/data/raw_data_2.csv @@ -0,0 +1,1868 @@ +Disease,Count of Disease Occurrence,Symptom +UMLS:C0020538_hypertensive disease,3363,UMLS:C0008031_pain chest +,,UMLS:C0392680_shortness of breath +,,UMLS:C0012833_dizziness +,,UMLS:C0004093_asthenia +,,UMLS:C0085639_fall +,,UMLS:C0039070_syncope +,,UMLS:C0042571_vertigo +,,UMLS:C0038990_sweat^UMLS:C0700590_sweating increased +,,UMLS:C0030252_palpitation +,,UMLS:C0027497_nausea +,,UMLS:C0002962_angina pectoris +,,UMLS:C0438716_pressure chest +UMLS:C0011847_diabetes,1421,UMLS:C0032617_polyuria +,,UMLS:C0085602_polydypsia +,,UMLS:C0392680_shortness of breath +,,UMLS:C0008031_pain chest +,,UMLS:C0004093_asthenia +,,UMLS:C0027497_nausea +,,UMLS:C0085619_orthopnea +,,UMLS:C0034642_rale +,,UMLS:C0038990_sweat^UMLS:C0700590_sweating increased +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0856054_mental status changes +,,UMLS:C0042571_vertigo +,,UMLS:C0042963_vomiting +,,UMLS:C0553668_labored breathing +UMLS:C0011570_depression mental^UMLS:C0011581_depressive disorder,1337,UMLS:C0424000_feeling suicidal +,,UMLS:C0438696_suicidal +,,UMLS:C0233762_hallucinations auditory +,,UMLS:C0150041_feeling hopeless +,,UMLS:C0424109_weepiness +,,UMLS:C0917801_sleeplessness +,,UMLS:C0424230_motor retardation +,,UMLS:C0022107_irritable mood +,,UMLS:C0312422_blackout +,,UMLS:C0344315_mood depressed +,,UMLS:C0233763_hallucinations visual +,,UMLS:C0233481_worry +,,UMLS:C0085631_agitation +,,UMLS:C0040822_tremor +,,UMLS:C0728899_intoxication +,,UMLS:C0424068_verbal auditory hallucinations +,,UMLS:C0455769_energy increased +,,UMLS:C1299586_difficulty +,,UMLS:C0028084_nightmare +,,UMLS:C0235198_unable to concentrate +,,UMLS:C0237154_homelessness +UMLS:C0010054_coronary arteriosclerosis^UMLS:C0010068_coronary heart disease,1284,UMLS:C0008031_pain chest +,,UMLS:C0002962_angina pectoris +,,UMLS:C0392680_shortness of breath +,,UMLS:C0086439_hypokinesia +,,UMLS:C0038990_sweat^UMLS:C0700590_sweating increased +,,UMLS:C0438716_pressure chest +,,UMLS:C0231807_dyspnea on exertion +,,UMLS:C0085619_orthopnea +,,UMLS:C0232292_chest tightness +UMLS:C0032285_pneumonia,1029,UMLS:C0010200_cough +,,UMLS:C0015967_fever +,,UMLS:C0029053_decreased translucency +,,UMLS:C0392680_shortness of breath +,,UMLS:C0034642_rale +,,UMLS:C0239134_productive cough +,,UMLS:C0008033_pleuritic pain +,,UMLS:C0457096_yellow sputum +,,UMLS:C0238844_breath sounds decreased +,,UMLS:C0085593_chill +,,UMLS:C0035508_rhonchus +,,UMLS:C0457097_green sputum +,,UMLS:C0850149_non-productive cough +,,UMLS:C0043144_wheezing +,,UMLS:C0019079_haemoptysis +,,UMLS:C0476273_distress respiratory +,,UMLS:C0231835_tachypnea +,,UMLS:C0231218_malaise +,,UMLS:C0028081_night sweat +UMLS:C0018802_failure heart congestive,963,UMLS:C0392680_shortness of breath +,,UMLS:C0085619_orthopnea +,,UMLS:C0240100_jugular venous distention +,,UMLS:C0034642_rale +,,UMLS:C0013404_dyspnea +,,UMLS:C0010200_cough +,,UMLS:C0043144_wheezing +UMLS:C0038454_accident cerebrovascular,885,UMLS:C0013362_dysarthria +,,UMLS:C0004093_asthenia +,,UMLS:C0234518_speech slurred +,,UMLS:C0427055_facial paresis +,,UMLS:C0018991_hemiplegia +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0036572_seizure +,,UMLS:C0028643_numbness +UMLS:C0004096_asthma,835,UMLS:C0043144_wheezing +,,UMLS:C0010200_cough +,,UMLS:C0392680_shortness of breath +,,UMLS:C0232292_chest tightness +,,UMLS:C0850149_non-productive cough +,,UMLS:C0008033_pleuritic pain +,,UMLS:C0239134_productive cough +,,UMLS:C0436331_symptom aggravating factors +,,UMLS:C0476273_distress respiratory +UMLS:C0027051_myocardial infarction,759,UMLS:C0008031_pain chest +,,UMLS:C0520886_st segment elevation +,,UMLS:C0038990_sweat^UMLS:C0700590_sweating increased +,,UMLS:C0392680_shortness of breath +,,UMLS:C0520887_st segment depression +,,UMLS:C0086439_hypokinesia +,,UMLS:C0002962_angina pectoris +,,UMLS:C0438716_pressure chest +,,UMLS:C0520888_t wave inverted +,,UMLS:C0085619_orthopnea +,,UMLS:C0034642_rale +,,UMLS:C0232292_chest tightness +,,UMLS:C1305739_presence of q wave +,,UMLS:C0030252_palpitation +,,UMLS:C0013404_dyspnea +,,UMLS:C0235710_chest discomfort +,,UMLS:C0428977_bradycardia +,,UMLS:C0039070_syncope +UMLS:C0020443_hypercholesterolemia,685,UMLS:C0030193_pain +,,UMLS:C0008031_pain chest +,,UMLS:C0038990_sweat^UMLS:C0700590_sweating increased +,,UMLS:C0337672_nonsmoker +,,UMLS:C0438716_pressure chest +,,UMLS:C0039070_syncope +,,UMLS:C0028643_numbness +,,UMLS:C0235710_chest discomfort +,,UMLS:C0392680_shortness of breath +,,UMLS:C0520887_st segment depression +,,UMLS:C0233481_worry +,,UMLS:C0520888_t wave inverted +,,UMLS:C0428977_bradycardia +,,UMLS:C0013404_dyspnea +UMLS:C0021311_infection,630,UMLS:C0015967_fever +,,UMLS:C0041834_erythema +,,UMLS:C0029053_decreased translucency +,,UMLS:C0019214_hepatosplenomegaly +,,UMLS:C0085593_chill +,,UMLS:C0033774_pruritus +,,UMLS:C0011991_diarrhea +,,UMLS:C0549483_abscess bacterial +,,UMLS:C0038999_swelling +,,UMLS:C0030193_pain +,,UMLS:C0277797_apyrexial +,,UMLS:C0010200_cough +UMLS:C0042029_infection urinary tract,597,UMLS:C0015967_fever +,,UMLS:C0013428_dysuria +,,UMLS:C0018965_hematuria +,,UMLS:C0235634_renal angle tenderness +,,UMLS:C0023380_lethargy +,,UMLS:C0004093_asthenia +,,UMLS:C0020625_hyponatremia +,,UMLS:C0578150_hemodynamically stable +,,UMLS:C0476273_distress respiratory +,,UMLS:C0241705_difficulty passing urine +,,UMLS:C0856054_mental status changes +,,UMLS:C0239110_consciousness clear +UMLS:C0002871_anemia,544,UMLS:C0085593_chill +,,UMLS:C0744492_guaiac positive +,,UMLS:C0746619_monoclonal +,,UMLS:C0013491_ecchymosis +,,UMLS:C1269955_tumor cell invasion +,,UMLS:C0019080_haemorrhage +,,UMLS:C0030232_pallor +,,UMLS:C0004093_asthenia +,,UMLS:C0015672_fatigue +,,UMLS:C0744740_heme positive +,,UMLS:C0004604_pain back +,,UMLS:C0149746_orthostasis +,,UMLS:C0020625_hyponatremia +,,UMLS:C0012833_dizziness +,,UMLS:C0392680_shortness of breath +,,UMLS:C0030193_pain +,,UMLS:C0035508_rhonchus +,,UMLS:C0003862_arthralgia +,,UMLS:C0038999_swelling +,,UMLS:C1096646_transaminitis +UMLS:C0024117_chronic obstructive airway disease,524,UMLS:C0392680_shortness of breath +,,UMLS:C0043144_wheezing +,,UMLS:C0010200_cough +,,UMLS:C0013404_dyspnea +,,UMLS:C0476273_distress respiratory +,,UMLS:C0241235_sputum purulent +,,UMLS:C0700292_hypoxemia +,,UMLS:C0020440_hypercapnia +,,UMLS:C0376405_patient non compliance +,,UMLS:C0232292_chest tightness +UMLS:C0497327_dementia,504,UMLS:C0015967_fever +,,UMLS:C0085639_fall +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0023380_lethargy +,,UMLS:C0085631_agitation +,,UMLS:C0013491_ecchymosis +,,UMLS:C0039070_syncope +,,UMLS:C0034642_rale +,,UMLS:C0041657_unconscious state +,,UMLS:C0010200_cough +,,UMLS:C0425251_bedridden^UMLS:C0741453_bedridden +,,UMLS:C0030193_pain +,,UMLS:C0427055_facial paresis +,,UMLS:C0232498_abdominal tenderness +,,UMLS:C0035508_rhonchus +,,UMLS:C1273573_unsteady gait +,,UMLS:C0233762_hallucinations auditory +UMLS:C1565489_insufficiency renal,445,UMLS:C0392680_shortness of breath +,,UMLS:C0020461_hyperkalemia +,,UMLS:C0085619_orthopnea +,,UMLS:C0034642_rale +,,UMLS:C0085606_urgency of micturition +,,UMLS:C0003962_ascites +,,UMLS:C0744492_guaiac positive +,,UMLS:C0004093_asthenia +,,UMLS:C0277797_apyrexial +,,UMLS:C0856054_mental status changes +,,UMLS:C0013404_dyspnea +,,UMLS:C1299586_difficulty +,,UMLS:C0011991_diarrhea +,,UMLS:C0020649_hypotension +,,UMLS:C0238844_breath sounds decreased +,,UMLS:C0038999_swelling +,,UMLS:C0086439_hypokinesia +UMLS:C0009676_confusion,408,UMLS:C0036572_seizure +,,UMLS:C0014394_enuresis +,,UMLS:C0023380_lethargy +,,UMLS:C0234518_speech slurred +,,UMLS:C0085639_fall +,,UMLS:C0239110_consciousness clear +,,UMLS:C0856054_mental status changes +,,UMLS:C0232766_asterixis +,,UMLS:C0041657_unconscious state +,,UMLS:C0085631_agitation +,,UMLS:C0231530_muscle twitch +,,UMLS:C0004093_asthenia +,,UMLS:C0234450_sleepy +,,UMLS:C0012833_dizziness +,,UMLS:C0018681_headache +,,UMLS:C0013362_dysarthria +,,UMLS:C0220870_lightheadedness +,,UMLS:C0040822_tremor +,,UMLS:C0020625_hyponatremia +,,UMLS:C0241526_unresponsiveness +UMLS:C0029408_degenerative polyarthritis,405,UMLS:C0030193_pain +,,UMLS:C0149696_food intolerance +,,UMLS:C0239832_numbness of hand +,,UMLS:C0858924_general discomfort +,,UMLS:C0013144_drowsiness +,,UMLS:C0004093_asthenia +,,UMLS:C0337672_nonsmoker +,,UMLS:C0850149_non-productive cough +,,UMLS:C0085602_polydypsia +,,UMLS:C0427008_stiffness +,,UMLS:C1273573_unsteady gait +UMLS:C0020676_hypothyroidism,398,UMLS:C0392680_shortness of breath +,,UMLS:C0242453_prostatism +,,UMLS:C0013144_drowsiness^UMLS:C0234450_sleepy +,,UMLS:C0020625_hyponatremia +,,UMLS:C0085639_fall +,,UMLS:C1273573_unsteady gait +,,UMLS:C0032617_polyuria +,,UMLS:C0020649_hypotension +,,UMLS:C1299586_difficulty +,,UMLS:C0039070_syncope +,,UMLS:C0028084_nightmare +,,UMLS:C0234518_speech slurred +,,UMLS:C0043094_weight gain +,,UMLS:C0004093_asthenia +,,UMLS:C0015672_fatigue^UMLS:C0557875_tired +,,UMLS:C0085631_agitation +,,UMLS:C0856054_mental status changes +,,UMLS:C0424230_motor retardation +,,UMLS:C0042963_vomiting +,,UMLS:C0028643_numbness +,,UMLS:C0577559_mass of body structure +UMLS:C0700613_anxiety state,390,UMLS:C0233481_worry +,,UMLS:C0424000_feeling suicidal +,,UMLS:C0438696_suicidal +,,UMLS:C0917801_sleeplessness +,,UMLS:C0150041_feeling hopeless +,,UMLS:C0022107_irritable mood +,,UMLS:C0040822_tremor +,,UMLS:C0312422_blackout +,,UMLS:C0424109_weepiness +,,UMLS:C0557075_has religious belief +,,UMLS:C0027769_nervousness +,,UMLS:C0233763_hallucinations visual +,,UMLS:C0016579_formication +,,UMLS:C1299586_difficulty +,,UMLS:C0008031_pain chest +,,UMLS:C0376405_patient non compliance +,,UMLS:C0085631_agitation +,,UMLS:C0030252_palpitation +,,UMLS:C0233762_hallucinations auditory +,,UMLS:C0344315_mood depressed +,,UMLS:C0600142_hot flush +,,UMLS:C0030193_pain +,,UMLS:C0239110_consciousness clear +,,UMLS:C0028084_nightmare +UMLS:C0006826_malignant neoplasms^UMLS:C1306459_primary malignant neoplasm,354,UMLS:C0030193_pain +,,UMLS:C0577559_mass of body structure +,,UMLS:C0221198_lesion +,,UMLS:C0332601_cushingoid facies^UMLS:C0878661_cushingoid habitus +,,UMLS:C0743482_emphysematous change +,,UMLS:C0043096_decreased body weight +,,UMLS:C0003962_ascites +,,UMLS:C0019825_hoarseness +,,UMLS:C0205400_thicken +,,UMLS:C0018965_hematuria +UMLS:C0001175_acquired immuno-deficiency syndrome^UMLS:C0019682_HIV^UMLS:C0019693_hiv infections,350,UMLS:C0015967_fever +,,UMLS:C0028081_night sweat +,,UMLS:C0233308_spontaneous rupture of membranes +,,UMLS:C0010200_cough +,,UMLS:C0032739_ +,,UMLS:C0043096_decreased body weight +,,UMLS:C0085593_chill +,,UMLS:C0011991_diarrhea +,,UMLS:C0008033_pleuritic pain +,,UMLS:C0376405_patient non compliance +,,UMLS:C0231835_tachypnea +,,UMLS:C0239134_productive cough +,,UMLS:C0026827_muscle hypotonia^UMLS:C0241938_hypotonic +,,UMLS:C0424000_feeling suicidal +UMLS:C0007642_cellulitis,341,UMLS:C0041834_erythema +,,UMLS:C0030193_pain +,,UMLS:C0038999_swelling +,,UMLS:C0332575_redness +,,UMLS:C0015967_fever +,,UMLS:C0549483_abscess bacterial +,,UMLS:C0376405_patient non compliance +,,UMLS:C0020580_hypesthesia +,,UMLS:C0034880_hyperacusis +,,UMLS:C0033774_pruritus +,,UMLS:C0008031_pain chest +,,UMLS:C1384489_scratch marks +,,UMLS:C0085593_chill +,,UMLS:C0234233_sore to touch +UMLS:C0017168_gastroesophageal reflux disease,325,UMLS:C0030193_pain +,,UMLS:C0008031_pain chest +,,UMLS:C0085624_burning sensation +,,UMLS:C0020625_hyponatremia +,,UMLS:C0239233_satiety early +,,UMLS:C1444773_throbbing sensation quality +,,UMLS:C0232292_chest tightness +,,UMLS:C0234215_sensory discomfort +,,UMLS:C1305739_presence of q wave +,,UMLS:C0027497_nausea +,,UMLS:C0858924_general discomfort +,,UMLS:C0009806_constipation +,,UMLS:C0030252_palpitation +,,UMLS:C0000737_pain abdominal +,,UMLS:C0018834_heartburn +,,UMLS:C0038990_sweat^UMLS:C0700590_sweating increased +,,UMLS:C0004093_asthenia +UMLS:C0036690_septicemia^UMLS:C0243026_systemic infection^UMLS:C1090821_sepsis (invertebrate),311,UMLS:C0015967_fever +,,UMLS:C0476273_distress respiratory +,,UMLS:C0020649_hypotension +,,UMLS:C0231835_tachypnea +,,UMLS:C0085593_chill +,,UMLS:C0023380_lethargy +,,UMLS:C0428977_bradycardia +,,UMLS:C0006157_breech presentation +,,UMLS:C0010520_cyanosis +,,UMLS:C0233308_spontaneous rupture of membranes +,,UMLS:C0019080_haemorrhage +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0034642_rale +,,UMLS:C0277797_apyrexial +UMLS:C0149871_deep vein thrombosis,310,UMLS:C0038999_swelling +,,UMLS:C0030193_pain +,,UMLS:C0013491_ecchymosis +,,UMLS:C0392680_shortness of breath +,,UMLS:C0023222_pain in lower limb +,,UMLS:C0018800_cardiomegaly +,,UMLS:C0034642_rale +,,UMLS:C0041834_erythema +,,UMLS:C0020649_hypotension +,,UMLS:C0009024_clonus +,,UMLS:C0850149_non-productive cough +,,UMLS:C0332575_redness +UMLS:C0011175_dehydration,297,UMLS:C0015967_fever +,,UMLS:C0011991_diarrhea +,,UMLS:C0042963_vomiting +,,UMLS:C0020649_hypotension +,,UMLS:C0027497_nausea +,,UMLS:C0220870_lightheadedness +,,UMLS:C0857256_unwell +,,UMLS:C0856054_mental status changes +,,UMLS:C0003123_anorexia +,,UMLS:C0004093_asthenia +,,UMLS:C0234215_sensory discomfort +,,UMLS:C0039070_syncope +,,UMLS:C0023380_lethargy +,,UMLS:C0012833_dizziness +,,UMLS:C0039070_syncope^UMLS:C0312422_blackout^UMLS:C0424533_history of - blackout +UMLS:C0027651_neoplasm,297,UMLS:C0577559_mass of body structure +,,UMLS:C0221198_lesion +,,UMLS:C0008031_pain chest +,,UMLS:C0018965_hematuria +,,UMLS:C1269955_tumor cell invasion +,,UMLS:C0030193_pain +,,UMLS:C0003126_anosmia +,,UMLS:C0205400_thicken +,,UMLS:C1513183_metastatic lesion +,,UMLS:C0149696_food intolerance +,,UMLS:C0043096_decreased body weight +,,UMLS:C0028081_night sweat +,,UMLS:C0271202_hemianopsia homonymous +,,UMLS:C0239233_satiety early +,,UMLS:C0000737_pain abdominal +,,UMLS:C0018681_headache +UMLS:C0034065_embolism pulmonary,294,UMLS:C0392680_shortness of breath +,,UMLS:C0700292_hypoxemia +,,UMLS:C0231835_tachypnea +,,UMLS:C0744727_hematocrit decreased +,,UMLS:C0008031_pain chest +,,UMLS:C0013404_dyspnea +,,UMLS:C0008033_pleuritic pain +,,UMLS:C0151315_neck stiffness +,,UMLS:C0457096_yellow sputum +,,UMLS:C0239134_productive cough +,,UMLS:C0008767_cicatrisation +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0476273_distress respiratory +,,UMLS:C0043144_wheezing +,,UMLS:C0277797_apyrexial +,,UMLS:C0850149_non-productive cough +UMLS:C0014544_epilepsy,290,UMLS:C0036572_seizure +,,UMLS:C0347938_hypometabolism +,,UMLS:C0236018_aura +,,UMLS:C0231530_muscle twitch +,,UMLS:C0013144_drowsiness +,,UMLS:C0040822_tremor +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0018991_hemiplegia +,,UMLS:C0027066_myoclonus +,,UMLS:C0232517_gurgle +,,UMLS:C0234450_sleepy +,,UMLS:C0023380_lethargy +,,UMLS:C0558195_wheelchair bound +UMLS:C0878544_cardiomyopathy,283,UMLS:C0392680_shortness of breath +,,UMLS:C0085619_orthopnea +,,UMLS:C0086439_hypokinesia +,,UMLS:C0240100_jugular venous distention +,,UMLS:C0030252_palpitation +,,UMLS:C0008031_pain chest +,,UMLS:C0039070_syncope +,,UMLS:C0457096_yellow sputum +,,UMLS:C0034642_rale +,,UMLS:C0013404_dyspnea +,,UMLS:C0231807_dyspnea on exertion +,,UMLS:C0238705_left atrial hypertrophy +,,UMLS:C0015672_fatigue +,,UMLS:C0043094_weight gain +,,UMLS:C0376405_patient non compliance +UMLS:C0022661_chronic kidney failure,280,UMLS:C0042963_vomiting +,,UMLS:C0085619_orthopnea +,,UMLS:C0020461_hyperkalemia +,,UMLS:C0028961_oliguria +,,UMLS:C0240100_jugular venous distention +,,UMLS:C0027497_nausea +,,UMLS:C0392680_shortness of breath +,,UMLS:C0856054_mental status changes +,,UMLS:C0011991_diarrhea +,,UMLS:C0004093_asthenia +,,UMLS:C0232292_chest tightness +,,UMLS:C0231218_malaise +,,UMLS:C0085593_chill +,,UMLS:C0034642_rale +,,UMLS:C0015967_fever +,,UMLS:C0008033_pleuritic pain +,,UMLS:C0277797_apyrexial +,,UMLS:C0744492_guaiac positive +,,UMLS:C0038999_swelling +,,UMLS:C0007398_catatonia +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0457096_yellow sputum +UMLS:C0007097_carcinoma,269,UMLS:C0577559_mass of body structure +,,UMLS:C0030193_pain +,,UMLS:C0221198_lesion +,,UMLS:C1269955_tumor cell invasion +,,UMLS:C0205400_thicken +,,UMLS:C0043096_decreased body weight +,,UMLS:C0019825_hoarseness +,,UMLS:C0858924_general discomfort +,,UMLS:C1513183_metastatic lesion +,,UMLS:C0850149_non-productive cough +,,UMLS:C0009806_constipation +,,UMLS:C0847488_unhappy +,,UMLS:C0030554_paresthesia +,,UMLS:C0232995_gravida 0 +,,UMLS:C0011991_diarrhea +,,UMLS:C0234233_sore to touch +,,UMLS:C0018834_heartburn +,,UMLS:C0027497_nausea +,,UMLS:C0034079_lung nodule +UMLS:C0019196_hepatitis C,269,UMLS:C0003962_ascites +,,UMLS:C0000731_distended abdomen +,,UMLS:C0424000_feeling suicidal +,,UMLS:C0010200_cough +,,UMLS:C0234238_ache +,,UMLS:C0558143_macerated skin +,,UMLS:C0581912_heavy feeling +,,UMLS:C0233762_hallucinations auditory +,,UMLS:C0085593_chill +,,UMLS:C0232766_asterixis +,,UMLS:C0376405_patient non compliance +UMLS:C0085096_peripheral vascular disease,268,UMLS:C0392680_shortness of breath +,,UMLS:C0234253_rest pain +,,UMLS:C0002962_angina pectoris +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0020461_hyperkalemia +,,UMLS:C0232201_sinus rhythm +,,UMLS:C0553668_labored breathing +,,UMLS:C0013404_dyspnea +,,UMLS:C0234233_sore to touch +,,UMLS:C0003123_anorexia +,,UMLS:C0234450_sleepy +UMLS:C0033975_psychotic disorder,267,UMLS:C0438696_suicidal +,,UMLS:C0233762_hallucinations auditory +,,UMLS:C0424000_feeling suicidal +,,UMLS:C0233763_hallucinations visual +,,UMLS:C0424230_motor retardation +,,UMLS:C0312422_blackout +,,UMLS:C0424068_verbal auditory hallucinations +,,UMLS:C0150041_feeling hopeless +,,UMLS:C0022107_irritable mood +,,UMLS:C0085631_agitation +,,UMLS:C0040822_tremor +,,UMLS:C0007398_catatonia +,,UMLS:C0424109_weepiness +,,UMLS:C0237154_homelessness +,,UMLS:C0917801_sleeplessness +,,UMLS:C0424092_withdraw +,,UMLS:C0455769_energy increased +,,UMLS:C0728899_intoxication +,,UMLS:C0233481_worry +,,UMLS:C0424295_behavior hyperactive +,,UMLS:C0376405_patient non compliance +,,UMLS:C0344315_mood depressed +,,UMLS:C0558261_terrify +,,UMLS:C0028084_nightmare +,,UMLS:C0239110_consciousness clear +UMLS:C0020473_hyperlipidemia,247,UMLS:C0008031_pain chest +,,UMLS:C0002962_angina pectoris +,,UMLS:C0030252_palpitation +,,UMLS:C1305739_presence of q wave +,,UMLS:C0085635_photopsia +,,UMLS:C0038990_sweat^UMLS:C0700590_sweating increased +,,UMLS:C0235710_chest discomfort +,,UMLS:C0392680_shortness of breath +,,UMLS:C0392701_giddy mood +,,UMLS:C0086439_hypokinesia +,,UMLS:C0018991_hemiplegia +,,UMLS:C0012833_dizziness +UMLS:C0005586_bipolar disorder,241,UMLS:C0424000_feeling suicidal +,,UMLS:C0455769_energy increased +,,UMLS:C0438696_suicidal +,,UMLS:C0022107_irritable mood +,,UMLS:C0085631_agitation +,,UMLS:C0557075_has religious belief +,,UMLS:C0578859_disturbed family +,,UMLS:C0233762_hallucinations auditory +,,UMLS:C0424068_verbal auditory hallucinations +,,UMLS:C0424109_weepiness +,,UMLS:C0424295_behavior hyperactive +,,UMLS:C0007398_catatonia +,,UMLS:C0150041_feeling hopeless +,,UMLS:C0233481_worry +,,UMLS:C0917801_sleeplessness +,,UMLS:C0917799_hypersomnia +,,UMLS:C1299586_difficulty +,,UMLS:C0233763_hallucinations visual +,,UMLS:C0020458_hyperhidrosis disorder +,,UMLS:C0026961_mydriasis +,,UMLS:C0234133_extrapyramidal sign +,,UMLS:C0240233_loose associations +,,UMLS:C0728899_intoxication +,,UMLS:C0424230_motor retardation +,,UMLS:C0237154_homelessness +,,UMLS:C0312422_blackout +,,UMLS:C0040822_tremor +,,UMLS:C0392674_exhaustion +UMLS:C0028754_obesity,228,UMLS:C0030193_pain +,,UMLS:C0007398_catatonia +,,UMLS:C0037384_snore +,,UMLS:C0008031_pain chest +,,UMLS:C0429091_r wave feature +,,UMLS:C0557075_has religious belief +,,UMLS:C0392680_shortness of breath +,,UMLS:C0015672_fatigue^UMLS:C0557875_tired +,,UMLS:C0497406_overweight +,,UMLS:C0232257_systolic murmur +,,UMLS:C0344315_mood depressed +,,UMLS:C0013491_ecchymosis +UMLS:C0022116_ischemia,226,UMLS:C0013144_drowsiness^UMLS:C0234450_sleepy +,,UMLS:C0008031_pain chest +,,UMLS:C0002962_angina pectoris +,,UMLS:C0438716_pressure chest +,,UMLS:C0235710_chest discomfort +,,UMLS:C0392680_shortness of breath +,,UMLS:C0013404_dyspnea +,,UMLS:C0232201_sinus rhythm +,,UMLS:C0428977_bradycardia +,,UMLS:C0038990_sweat^UMLS:C0700590_sweating increased +,,UMLS:C0034642_rale +,,UMLS:C0231221_asymptomatic +,,UMLS:C0003123_anorexia +UMLS:C1623038_cirrhosis,218,UMLS:C0003962_ascites +,,UMLS:C0085639_fall +,,UMLS:C0038002_splenomegaly +,,UMLS:C0033774_pruritus +,,UMLS:C0000737_pain abdominal +,,UMLS:C1269955_tumor cell invasion +,,UMLS:C0000731_distended abdomen +,,UMLS:C0221198_lesion +,,UMLS:C0578150_hemodynamically stable +,,UMLS:C0744492_guaiac positive +,,UMLS:C0234233_sore to touch +,,UMLS:C0151706_bleeding of vagina +UMLS:C0015230_exanthema,208,UMLS:C0015967_fever +,,UMLS:C0033774_pruritus +,,UMLS:C0332573_macule +,,UMLS:C0221198_lesion +,,UMLS:C0332575_redness +,,UMLS:C0018681_headache +,,UMLS:C0277797_apyrexial +,,UMLS:C0003862_arthralgia +,,UMLS:C0038999_swelling +,,UMLS:C0041834_erythema +,,UMLS:C0085636_photophobia +,,UMLS:C0085593_chill +,,UMLS:C1384489_scratch marks +,,UMLS:C0030193_pain +,,UMLS:C0221150_painful swallowing +UMLS:C0005001_benign prostatic hypertrophy,192,UMLS:C0856054_mental status changes +,,UMLS:C0006625_cachexia +,,UMLS:C0312422_blackout +,,UMLS:C0149746_orthostasis +,,UMLS:C0085619_orthopnea +,,UMLS:C0028081_night sweat +,,UMLS:C0476273_distress respiratory +,,UMLS:C0003123_anorexia +,,UMLS:C0013362_dysarthria +UMLS:C0022660_kidney failure acute,186,UMLS:C0020461_hyperkalemia +,,UMLS:C0020649_hypotension +,,UMLS:C0020598_hypocalcemia result +,,UMLS:C0028961_oliguria +,,UMLS:C0578150_hemodynamically stable +,,UMLS:C0004093_asthenia +,,"UMLS:C0020672_hypothermia, natural" +,,UMLS:C0011991_diarrhea +,,UMLS:C0019080_haemorrhage +,,UMLS:C0241526_unresponsiveness +UMLS:C0026266_mitral valve insufficiency,186,UMLS:C0392680_shortness of breath +,,UMLS:C0231807_dyspnea on exertion +,,UMLS:C0231221_asymptomatic +,,UMLS:C0086439_hypokinesia +,,UMLS:C0013404_dyspnea +,,UMLS:C0039070_syncope +,,UMLS:C0205400_thicken +,,UMLS:C0238705_left atrial hypertrophy +,,UMLS:C0030252_palpitation +,,UMLS:C0015672_fatigue +,,UMLS:C0042963_vomiting +,,UMLS:C0030193_pain +,,UMLS:C0018800_cardiomegaly +,,UMLS:C0235710_chest discomfort +UMLS:C0003864_arthritis,179,UMLS:C0030193_pain +,,UMLS:C0578150_hemodynamically stable +,,UMLS:C0917801_sleeplessness +,,UMLS:C0004093_asthenia +,,UMLS:C0039070_syncope +,,UMLS:C0038999_swelling +,,UMLS:C0741302_atypia +,,UMLS:C0427108_general unsteadiness +,,UMLS:C0392680_shortness of breath +,,UMLS:C0000731_distended abdomen +UMLS:C0006277_bronchitis,172,UMLS:C0010200_cough +,,UMLS:C0043144_wheezing +,,UMLS:C0392680_shortness of breath +,,UMLS:C0232292_chest tightness +,,UMLS:C0015967_fever +,,UMLS:C0242429_throat sore +,,UMLS:C0239134_productive cough +,,UMLS:C0019214_hepatosplenomegaly +,,UMLS:C0028081_night sweat +,,UMLS:C0019079_haemoptysis +,,UMLS:C0553668_labored breathing +,,UMLS:C1260880_snuffle +,,UMLS:C0239133_hacking cough +,,UMLS:C0013404_dyspnea +,,UMLS:C0085593_chill +,,UMLS:C0038450_stridor +,,UMLS:C0043096_decreased body weight +UMLS:C0018989_hemiparesis,171,UMLS:C0013362_dysarthria +,,UMLS:C0030552_paresis +,,UMLS:C0004093_asthenia +,,UMLS:C0221470_aphagia +,,UMLS:C0036572_seizure +,,UMLS:C0234518_speech slurred +,,UMLS:C0751495_focal seizures +,,UMLS:C0018991_hemiplegia +,,UMLS:C0423571_abnormal sensation +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0085628_stupor +,,UMLS:C0013144_drowsiness^UMLS:C0234450_sleepy +,,UMLS:C0231890_fremitus +,,UMLS:C0271276_Stahli's line +,,UMLS:C0677500_stinging sensation +,,UMLS:C0522224_paralyse +,,UMLS:C0009024_clonus +,,UMLS:C0427055_facial paresis +UMLS:C0029456_osteoporosis,169,UMLS:C0242453_prostatism +,,UMLS:C0085639_fall +,,UMLS:C0019572_hirsutism +,,UMLS:C0558361_sniffle +,,UMLS:C0000731_distended abdomen +,,UMLS:C0042571_vertigo +,,UMLS:C0239832_numbness of hand +,,UMLS:C0233565_bradykinesia +,,UMLS:C0030193_pain +,,UMLS:C0039070_syncope +,,UMLS:C0848168_out of breath +,,UMLS:C0277797_apyrexial +,,UMLS:C0150045_urge incontinence +,,UMLS:C0220870_lightheadedness +UMLS:C0007787_transient ischemic attack,168,UMLS:C0234518_speech slurred +,,UMLS:C0013362_dysarthria +,,UMLS:C0427055_facial paresis +,,UMLS:C0004093_asthenia +,,UMLS:C0151315_neck stiffness +,,UMLS:C0042571_vertigo +,,UMLS:C0028643_numbness +,,UMLS:C0220870_lightheadedness +,,UMLS:C0234133_extrapyramidal sign +,,UMLS:C0271276_Stahli's line +,,UMLS:C0344232_vision blurred +,,UMLS:C0018681_headache +,,UMLS:C0848277_room spinning +,,UMLS:C0039070_syncope +,,UMLS:C1299586_difficulty +,,UMLS:C0423982_rambling speech +,,UMLS:C0233844_clumsiness +UMLS:C0001418_adenocarcinoma,166,UMLS:C0577559_mass of body structure +,,UMLS:C0221198_lesion +,,UMLS:C0043096_decreased body weight +,,UMLS:C0009806_constipation +,,UMLS:C0231890_fremitus +,,UMLS:C0278014_decreased stool caliber +,,UMLS:C0239233_satiety early +,,UMLS:C0018932_hematochezia +,,UMLS:C0231872_egophony +,,UMLS:C0030193_pain +,,UMLS:C0008767_cicatrisation^UMLS:C0241158_scar tissue +,,UMLS:C0000737_pain abdominal +UMLS:C1456784_paranoia,165,UMLS:C0233762_hallucinations auditory +,,UMLS:C0233763_hallucinations visual +,,UMLS:C0085631_agitation +,,UMLS:C0022107_irritable mood +,,UMLS:C0424068_verbal auditory hallucinations +,,UMLS:C0424000_feeling suicidal +,,UMLS:C0438696_suicidal +,,UMLS:C0558261_terrify +,,UMLS:C0233647_neologism +,,UMLS:C0237154_homelessness +,,UMLS:C0455769_energy increased +,,UMLS:C0344315_mood depressed +,,UMLS:C0231187_decompensation +,,UMLS:C0008767_cicatrisation^UMLS:C0241158_scar tissue +,,UMLS:C0312422_blackout +,,UMLS:C0240233_loose associations +UMLS:C0030305_pancreatitis,165,UMLS:C0042963_vomiting +,,UMLS:C0000737_pain abdominal +,,UMLS:C0027497_nausea +,,UMLS:C0030193_pain +,,UMLS:C0011991_diarrhea +,,UMLS:C0241252_stool color yellow +,,UMLS:C0424790_rigor - temperature-associated observation +,,UMLS:C0277797_apyrexial +,,UMLS:C0234233_sore to touch +UMLS:C0021167_incontinence,165,UMLS:C0221166_paraparesis +,,UMLS:C0036572_seizure +,,UMLS:C0004093_asthenia +,,UMLS:C0150045_urge incontinence +,,UMLS:C0041657_unconscious state +,,UMLS:C0236018_aura +,,UMLS:C0554980_moody +,,UMLS:C0877040_fear of falling +,,UMLS:C0040822_tremor +,,UMLS:C0037763_spasm +,,UMLS:C0847488_unhappy +,,UMLS:C0039070_syncope +,,UMLS:C0085639_fall +,,UMLS:C0427008_stiffness +,,UMLS:C0241526_unresponsiveness +UMLS:C0013405_paroxysmal dyspnea,165,UMLS:C0085619_orthopnea +,,UMLS:C0392680_shortness of breath +,,UMLS:C0231807_dyspnea on exertion +,,UMLS:C0240100_jugular venous distention +,,UMLS:C0034642_rale +,,UMLS:C0008031_pain chest +,,UMLS:C0030252_palpitation +,,UMLS:C0038990_sweat^UMLS:C0700590_sweating increased +,,UMLS:C0043094_weight gain +,,UMLS:C0010200_cough +,,UMLS:C0013404_dyspnea +UMLS:C0019270_hernia,164,UMLS:C0000737_pain abdominal +,,UMLS:C0030193_pain +,,UMLS:C0020578_hyperventilation +,,UMLS:C0278141_excruciating pain +,,UMLS:C0016927_gag +,,UMLS:C0027497_nausea +,,UMLS:C0872410_posturing +,,UMLS:C0018991_hemiplegia +,,UMLS:C0234233_sore to touch +,,UMLS:C0019080_haemorrhage +,,UMLS:C0277797_apyrexial +,,UMLS:C0149696_food intolerance +,,UMLS:C0277899_pulse absent +,,UMLS:C0004093_asthenia +,,UMLS:C0577559_mass of body structure +,,UMLS:C0205400_thicken +UMLS:C0376358_malignant neoplasm of prostate^UMLS:C0600139_carcinoma prostate,163,UMLS:C0018965_hematuria +,,UMLS:C0392699_dysesthesia +,,UMLS:C0004093_asthenia +,,UMLS:C0521516_polymyalgia +,,UMLS:C0848621_passed stones +,,UMLS:C0008033_pleuritic pain +,,UMLS:C0744492_guaiac positive +,,UMLS:C0034642_rale +,,UMLS:C0238844_breath sounds decreased +,,UMLS:C0150045_urge incontinence +,,UMLS:C0013428_dysuria +,,UMLS:C0011991_diarrhea +,,UMLS:C0042571_vertigo +,,UMLS:C0151878_qt interval prolonged +,,UMLS:C0004134_ataxia +,,UMLS:C0030552_paresis +,,UMLS:C0271202_hemianopsia homonymous +,,UMLS:C1269955_tumor cell invasion +,,UMLS:C0578150_hemodynamically stable +,,UMLS:C0577559_mass of body structure +,,UMLS:C0035508_rhonchus +,,UMLS:C0149746_orthostasis +,,UMLS:C0043096_decreased body weight +UMLS:C0034063_edema pulmonary,161,UMLS:C0085606_urgency of micturition +,,UMLS:C0392680_shortness of breath +,,UMLS:C0034642_rale +,,UMLS:C0231835_tachypnea +,,UMLS:C0085619_orthopnea +,,UMLS:C0018862_Heberden's node +,,UMLS:C0240100_jugular venous distention +,,UMLS:C0013404_dyspnea +,,UMLS:C0038990_sweat^UMLS:C0700590_sweating increased +,,UMLS:C0376405_patient non compliance +,,UMLS:C0235710_chest discomfort +,,UMLS:C0020461_hyperkalemia +,,UMLS:C0232201_sinus rhythm +,,UMLS:C0008031_pain chest +,,UMLS:C0020649_hypotension +,,UMLS:C0043144_wheezing +UMLS:C0024228_lymphatic diseases,160,UMLS:C0030193_pain +,,UMLS:C0577559_mass of body structure +,,UMLS:C0028081_night sweat +,,UMLS:C0038002_splenomegaly +,,UMLS:C0221198_lesion +,,UMLS:C0085593_chill +,,UMLS:C0043096_decreased body weight +,,UMLS:C0038999_swelling +,,UMLS:C0015967_fever +,,UMLS:C0034880_hyperacusis +,,UMLS:C0231890_fremitus +,,UMLS:C0850149_non-productive cough +,,UMLS:C0231872_egophony +,,UMLS:C0332575_redness +,,UMLS:C0019209_hepatomegaly +,,UMLS:C0015672_fatigue +UMLS:C0003507_stenosis aortic valve,158,UMLS:C0231807_dyspnea on exertion +,,UMLS:C0039070_syncope +,,UMLS:C0235710_chest discomfort +,,UMLS:C0232257_systolic murmur +,,UMLS:C0036396_sciatica +,,UMLS:C0002962_angina pectoris +,,UMLS:C0008031_pain chest +,,UMLS:C0577979_frothy sputum +,,UMLS:C0428977_bradycardia +,,UMLS:C0392680_shortness of breath +,,UMLS:C0030193_pain +UMLS:C0006142_malignant neoplasm of breast^UMLS:C0678222_carcinoma breast,152,UMLS:C0024103_mass in breast +,,UMLS:C0577559_mass of body structure +,,UMLS:C0030554_paresthesia +,,UMLS:C0277845_retropulsion +,,UMLS:C0041834_erythema +,,UMLS:C1299586_difficulty +,,UMLS:C0221198_lesion +,,UMLS:C0239301_estrogen use +,,UMLS:C0085624_burning sensation +,,UMLS:C0013404_dyspnea +,,UMLS:C0038999_swelling +,,UMLS:C0016579_formication +UMLS:C0036341_schizophrenia,147,UMLS:C0233762_hallucinations auditory +,,UMLS:C0751229_hypersomnolence +,,UMLS:C0022107_irritable mood +,,UMLS:C0424068_verbal auditory hallucinations +,,UMLS:C0376405_patient non compliance +,,UMLS:C0085631_agitation +,,UMLS:C0438696_suicidal +,,UMLS:C0233481_worry +,,UMLS:C0233763_hallucinations visual +,,UMLS:C0041667_underweight^UMLS:C1319518_underweight +,,UMLS:C0237154_homelessness +UMLS:C0012813_diverticulitis,145,UMLS:C0000737_pain abdominal +,,UMLS:C0549483_abscess bacterial +,,UMLS:C0541911_dullness +,,UMLS:C0857199_red blotches +,,UMLS:C0011991_diarrhea +,,UMLS:C0234233_sore to touch +,,UMLS:C0013428_dysuria +,,UMLS:C0030193_pain +,,UMLS:C0042963_vomiting +,,UMLS:C0232201_sinus rhythm +,,UMLS:C0232488_colic abdominal +,,UMLS:C0277797_apyrexial +,,UMLS:C0232498_abdominal tenderness +,,UMLS:C0015967_fever +,,UMLS:C1273573_unsteady gait +,,UMLS:C0205400_thicken +,,UMLS:C0085606_urgency of micturition +,,UMLS:C0003123_anorexia +,,UMLS:C0746619_monoclonal +,,UMLS:C0009806_constipation +UMLS:C0546817_overload fluid,144,UMLS:C0034642_rale +,,UMLS:C0240100_jugular venous distention +,,UMLS:C0020461_hyperkalemia +,,UMLS:C0085619_orthopnea +,,UMLS:C0392680_shortness of breath +,,UMLS:C0013144_drowsiness^UMLS:C0234450_sleepy +,,UMLS:C0043094_weight gain +,,UMLS:C0020621_hypokalemia +,,UMLS:C0020649_hypotension +,,UMLS:C0038999_swelling +,,UMLS:C0000731_distended abdomen +UMLS:C0030920_ulcer peptic,143,UMLS:C0000737_pain abdominal +,,UMLS:C0221166_paraparesis +,,UMLS:C0027497_nausea +,,UMLS:C0042963_vomiting +,,UMLS:C0521516_polymyalgia +,,UMLS:C0848168_out of breath +,,UMLS:C0008031_pain chest +,,UMLS:C0018991_hemiplegia +,,UMLS:C0232517_gurgle +,,UMLS:C0020175_hunger +,,UMLS:C0277797_apyrexial +,,UMLS:C0027769_nervousness +UMLS:C0029443_osteomyelitis,142,UMLS:C0030193_pain +,,UMLS:C0332575_redness +,,UMLS:C0240813_prostate tender +,,UMLS:C0015967_fever +,,UMLS:C0241705_difficulty passing urine +,,UMLS:C0234233_sore to touch +,,UMLS:C0038999_swelling +,,UMLS:C0277797_apyrexial +,,UMLS:C0041834_erythema +,,UMLS:C0549483_abscess bacterial +,,UMLS:C0016512_pain foot +,,UMLS:C0152032_urinary hesitation +UMLS:C0017152_gastritis,140,UMLS:C0744740_heme positive +,,UMLS:C0000737_pain abdominal +,,UMLS:C0042963_vomiting +,,UMLS:C0281825_disequilibrium +,,UMLS:C0027497_nausea +,,UMLS:C0728899_intoxication +,,UMLS:C0019080_haemorrhage +,,UMLS:C0744492_guaiac positive +,,UMLS:C0030193_pain +,,UMLS:C0043096_decreased body weight +,,UMLS:C0234233_sore to touch +,,UMLS:C0012833_dizziness +UMLS:C0004610_bacteremia,142,UMLS:C0015967_fever +,,UMLS:C0085593_chill +,,UMLS:C0016382_flushing +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0085632_indifferent mood +,,UMLS:C1313921_urinoma +,,UMLS:C0042963_vomiting +,,UMLS:C0000731_distended abdomen +,,UMLS:C0239981_hypoalbuminemia +,,UMLS:C0241157_pustule +,,UMLS:C0242453_prostatism +,,UMLS:C0011991_diarrhea +,,UMLS:C0232498_abdominal tenderness +,,UMLS:C0008033_pleuritic pain +,,UMLS:C0029053_decreased translucency +,,UMLS:C0030232_pallor +UMLS:C0035078_failure kidney,140,UMLS:C0085619_orthopnea +,,UMLS:C0028961_oliguria +,,UMLS:C0232854_slowing of urinary stream +,,UMLS:C0277794_extreme exhaustion +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0020649_hypotension +,,UMLS:C0014394_enuresis +,,UMLS:C0392680_shortness of breath +,,UMLS:C0019080_haemorrhage +,,UMLS:C0242453_prostatism +,,UMLS:C0442739_no status change +,,UMLS:C0425251_bedridden^UMLS:C0741453_bedridden +,,UMLS:C0015672_fatigue +UMLS:C0002895_sickle cell anemia,140,UMLS:C1135120_breakthrough pain +,,UMLS:C0004604_pain back +,,UMLS:C0030193_pain +,,UMLS:C0392680_shortness of breath +,,UMLS:C1260880_snuffle +,,UMLS:C0008031_pain chest +,,UMLS:C0000737_pain abdominal +,,UMLS:C0019214_hepatosplenomegaly +,,UMLS:C0457097_green sputum +,,UMLS:C0277797_apyrexial +,,UMLS:C0018681_headache +UMLS:C0018801_failure heart,138,UMLS:C0085619_orthopnea +,,UMLS:C0015672_fatigue +,,UMLS:C0231807_dyspnea on exertion +,,UMLS:C0013404_dyspnea +,,UMLS:C0392680_shortness of breath +,,UMLS:C0232258_pansystolic murmur +,,UMLS:C0240100_jugular venous distention +,,UMLS:C0694547_systolic ejection murmur +,,UMLS:C0020649_hypotension +,,UMLS:C0002962_angina pectoris +,,UMLS:C0086439_hypokinesia +UMLS:C0041912_upper respiratory infection,135,UMLS:C0010200_cough +,,UMLS:C0242429_throat sore +,,UMLS:C0043144_wheezing +,,UMLS:C0392680_shortness of breath +,,UMLS:C0553668_labored breathing +,,UMLS:C0015967_fever +,,UMLS:C0848340_stuffy nose +,,UMLS:C0850149_non-productive cough +,,UMLS:C1260880_snuffle +,,UMLS:C0085632_indifferent mood +,,UMLS:C0231872_egophony +,,UMLS:C0234866_barking cough +,,UMLS:C0521516_polymyalgia +,,UMLS:C0008033_pleuritic pain +,,UMLS:C0028081_night sweat +,,UMLS:C0013404_dyspnea +,,UMLS:C0239134_productive cough +,,UMLS:C0029053_decreased translucency +,,UMLS:C0035508_rhonchus +,,UMLS:C0425488_rapid shallow breathing +,,UMLS:C0277797_apyrexial +,,UMLS:C0237304_noisy respiration +,,UMLS:C0264273_nasal discharge present +,,UMLS:C0743482_emphysematous change +,,UMLS:C0871754_frail +,,UMLS:C1511606_cystic lesion +,,UMLS:C0436331_symptom aggravating factors +,,UMLS:C0578150_hemodynamically stable +UMLS:C0019158_hepatitis,133,UMLS:C0003962_ascites +,,UMLS:C0233308_spontaneous rupture of membranes +,,UMLS:C0231835_tachypnea +,,UMLS:C0000737_pain abdominal +,,UMLS:C0033774_pruritus +,,UMLS:C0003123_anorexia +,,UMLS:C1096646_transaminitis +,,UMLS:C0221151_projectile vomiting +,,UMLS:C0085593_chill +,,UMLS:C0476273_distress respiratory +,,UMLS:C0015967_fever +,,UMLS:C0042963_vomiting +UMLS:C0020542_hypertension pulmonary,128,UMLS:C0392680_shortness of breath +,,UMLS:C0271276_Stahli's line +,,UMLS:C0581911_heavy legs +,,UMLS:C0238844_breath sounds decreased +,,UMLS:C0151315_neck stiffness +,,UMLS:C0231807_dyspnea on exertion +,,UMLS:C0010520_cyanosis +,,UMLS:C0020649_hypotension +,,UMLS:C0238705_left atrial hypertrophy +UMLS:C0011168_deglutition disorder,126,UMLS:C0030554_paresthesia +,,UMLS:C0231690_titubation +,,UMLS:C0013362_dysarthria +,,UMLS:C0221150_painful swallowing +,,UMLS:C0019825_hoarseness +,,UMLS:C0038450_stridor +,,UMLS:C0037763_spasm +,,UMLS:C0004093_asthenia +,,UMLS:C0234979_dysdiadochokinesia +,,UMLS:C0004134_ataxia +,,UMLS:C1321756_achalasia +,,UMLS:C0043096_decreased body weight +,,UMLS:C0427008_stiffness +,,UMLS:C0221198_lesion +,,UMLS:C0748706_side pain +UMLS:C0018099_gout,124,UMLS:C0600142_hot flush +,,UMLS:C0030193_pain +,,UMLS:C0332575_redness +,,UMLS:C0038999_swelling +,,UMLS:C0041834_erythema +,,UMLS:C0743482_emphysematous change +,,UMLS:C0234233_sore to touch +,,UMLS:C0086439_hypokinesia +,,UMLS:C0003962_ascites +,,UMLS:C0376405_patient non compliance +UMLS:C0040034_thrombocytopaenia,123,UMLS:C0013491_ecchymosis +,,UMLS:C0085702_monocytosis +,,UMLS:C0032781_posterior rhinorrhea +,,UMLS:C0019080_haemorrhage +,,UMLS:C0231835_tachypnea +,,UMLS:C0015967_fever +,,UMLS:C0033774_pruritus +,,UMLS:C0020649_hypotension +,,UMLS:C0015672_fatigue +UMLS:C0020615_hypoglycemia,122,UMLS:C0241526_unresponsiveness +,,"UMLS:C0020672_hypothermia, natural" +,,UMLS:C0542044_incoherent +,,UMLS:C0151878_qt interval prolonged +,,UMLS:C0311395_lameness^UMLS:C1456822_claudication +,,UMLS:C0041657_unconscious state +,,UMLS:C0392162_clammy skin +,,UMLS:C0032617_polyuria +,,UMLS:C0476273_distress respiratory +,,UMLS:C0020649_hypotension +UMLS:C0032290_pneumonia aspiration,119,UMLS:C0264576_mediastinal shift +,,UMLS:C0015967_fever +,,UMLS:C0009024_clonus +,,UMLS:C0856054_mental status changes +,,UMLS:C0029053_decreased translucency +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0277794_extreme exhaustion +,,UMLS:C0085628_stupor +,,UMLS:C0036572_seizure +,,UMLS:C1096646_transaminitis +,,UMLS:C0018991_hemiplegia +,,UMLS:C0010200_cough +,,UMLS:C0232517_gurgle +,,UMLS:C0030193_pain +,,UMLS:C0011991_diarrhea +,,UMLS:C0000737_pain abdominal +UMLS:C0009319_colitis,114,UMLS:C0015967_fever +,,UMLS:C0205400_thicken +,,UMLS:C0457097_green sputum +,,UMLS:C0042963_vomiting +,,UMLS:C0027498_nausea and vomiting +,,UMLS:C0541798_awakening early +,,UMLS:C0030193_pain +,,UMLS:C0027497_nausea +,,UMLS:C0085593_chill +,,UMLS:C0232726_tenesmus +,,UMLS:C0150045_urge incontinence +,,UMLS:C0000737_pain abdominal +,,UMLS:C0578150_hemodynamically stable +UMLS:C1510475_diverticulosis,114,UMLS:C1167754_fecaluria +,,UMLS:C0009806_constipation +,,UMLS:C0549483_abscess bacterial +,,UMLS:C0744740_heme positive +,,UMLS:C0220870_lightheadedness +,,UMLS:C0011991_diarrhea +,,UMLS:C0019080_haemorrhage +,,UMLS:C0030193_pain +,,UMLS:C0221151_projectile vomiting +,,UMLS:C0232894_pneumatouria +,,UMLS:C1511606_cystic lesion +,,UMLS:C0003123_anorexia +,,UMLS:C0027497_nausea +,,UMLS:C0424000_feeling suicidal +,,UMLS:C0150041_feeling hopeless +UMLS:C0038663_suicide attempt,114,UMLS:C0233762_hallucinations auditory +,,UMLS:C0917801_sleeplessness +,,UMLS:C0438696_suicidal +,,UMLS:C0424230_motor retardation +,,UMLS:C0424109_weepiness +,,UMLS:C0235198_unable to concentrate +,,UMLS:C0234544_todd paralysis +,,UMLS:C0233481_worry +,,UMLS:C0015672_fatigue +,,UMLS:C0040822_tremor +,,UMLS:C0740880_alcoholic withdrawal symptoms +,,UMLS:C0085631_agitation +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0312422_blackout +,,UMLS:C0424092_withdraw +,,UMLS:C1299586_difficulty +,,UMLS:C0022107_irritable mood +,,UMLS:C0234215_sensory discomfort +,,UMLS:C0013144_drowsiness +,,UMLS:C0016579_formication +,,UMLS:C0041657_unconscious state +,,UMLS:C0015967_fever +,,UMLS:C0010200_cough +UMLS:C0032305_Pneumocystis carinii pneumonia,113,UMLS:C0457096_yellow sputum +,,UMLS:C0006625_cachexia +,,UMLS:C0085593_chill +,,UMLS:C0043096_decreased body weight +,,UMLS:C0239134_productive cough +,,UMLS:C0231528_myalgia +,,UMLS:C0011991_diarrhea +,,UMLS:C0151315_neck stiffness +,,UMLS:C0239133_hacking cough +,,UMLS:C1384606_dyspareunia +,,UMLS:C0020621_hypokalemia +,,UMLS:C0231807_dyspnea on exertion +,,UMLS:C0149758_poor dentition +,,UMLS:C1096646_transaminitis +,,UMLS:C0850149_non-productive cough +,,UMLS:C0018681_headache +,,UMLS:C0857516_floppy +,,UMLS:C0233308_spontaneous rupture of membranes +UMLS:C0019163_hepatitis B,111,UMLS:C0233467_inappropriate affect +,,UMLS:C0231835_tachypnea +,,UMLS:C0457096_yellow sputum +,,UMLS:C0221151_projectile vomiting +,,UMLS:C0576456_poor feeding +,,UMLS:C0000737_pain abdominal +,,UMLS:C0232498_abdominal tenderness +,,UMLS:C0558195_wheelchair bound +,,UMLS:C0859032_moan +UMLS:C0030567_parkinson disease,108,UMLS:C1321756_achalasia +,,UMLS:C0085639_fall +,,UMLS:C0427008_stiffness +,,UMLS:C0424092_withdraw +,,UMLS:C0085631_agitation +,,UMLS:C0018991_hemiplegia +,,UMLS:C1299586_difficulty +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0039070_syncope +,,UMLS:C0427055_facial paresis +,,UMLS:C0149746_orthostasis +,,UMLS:C0233481_worry +,,UMLS:C0013144_drowsiness^UMLS:C0234450_sleepy +,,UMLS:C0018965_hematuria +,,UMLS:C0040822_tremor +,,UMLS:C0028081_night sweat +,,UMLS:C0577559_mass of body structure +UMLS:C0024299_lymphoma,105,UMLS:C0221198_lesion +,,UMLS:C0015967_fever +,,UMLS:C0221232_welt +,,UMLS:C1096646_transaminitis +,,UMLS:C0043096_decreased body weight +,,UMLS:C0004134_ataxia +,,UMLS:C0040264_tinnitus +,,UMLS:C0020303_hydropneumothorax +,,UMLS:C0429562_superimposition +,,UMLS:C0019079_haemoptysis +,,UMLS:C0015672_fatigue^UMLS:C0557875_tired +,,UMLS:C0085602_polydypsia +,,UMLS:C0241705_difficulty passing urine +UMLS:C0020456_hyperglycemia,104,UMLS:C0234233_sore to touch +,,UMLS:C0033774_pruritus +,,UMLS:C0235129_feeling strange +,,UMLS:C0241157_pustule +,,UMLS:C0332601_cushingoid facies^UMLS:C0878661_cushingoid habitus +,,UMLS:C0043096_decreased body weight +,,UMLS:C0344315_mood depressed +,,UMLS:C0239301_estrogen use +,,UMLS:C0043144_wheezing +,,UMLS:C0003962_ascites +,,UMLS:C0036572_seizure +UMLS:C0085584_encephalopathy,103,UMLS:C0242143_uncoordination +,,UMLS:C0232766_asterixis +,,UMLS:C0019080_haemorrhage +,,UMLS:C0013144_drowsiness^UMLS:C0234450_sleepy +,,UMLS:C0424530_absences finding +,,UMLS:C0872410_posturing +,,UMLS:C0236018_aura +,,UMLS:C0270844_tonic seizures +,,UMLS:C0742985_debilitation +,,UMLS:C0239110_consciousness clear +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0205400_thicken +,,UMLS:C0086439_hypokinesia +UMLS:C0040961_tricuspid valve insufficiency,101,UMLS:C0392680_shortness of breath +,,UMLS:C0030193_pain +,,UMLS:C0042963_vomiting +,,UMLS:C0027497_nausea +,,UMLS:C0428977_bradycardia +,,UMLS:C0000737_pain abdominal +,,UMLS:C0015967_fever +,,UMLS:C0008767_cicatrisation +,,UMLS:C0264576_mediastinal shift +,,UMLS:C0338656_impaired cognition +UMLS:C0002395_Alzheimer's disease,101,UMLS:C0013132_drool +,,UMLS:C0085631_agitation +,,UMLS:C0028084_nightmare +,,UMLS:C0035508_rhonchus +,,UMLS:C0239110_consciousness clear +,,UMLS:C0235231_pin-point pupils +,,UMLS:C0425251_bedridden^UMLS:C0741453_bedridden +,,UMLS:C0871754_frail +,,UMLS:C0234379_tremor resting +,,UMLS:C0020461_hyperkalemia +,,UMLS:C0427055_facial paresis +,,UMLS:C0541992_groggy +,,UMLS:C0231530_muscle twitch +,,UMLS:C0558195_wheelchair bound +,,UMLS:C0040822_tremor +,,UMLS:C0010200_cough +,,UMLS:C0015967_fever +UMLS:C0006840_candidiasis^UMLS:C0006849_oral candidiasis,99,UMLS:C0011991_diarrhea +,,UMLS:C0242429_throat sore +,,UMLS:C0043096_decreased body weight +,,UMLS:C0085593_chill +,,UMLS:C0018681_headache +,,UMLS:C0232498_abdominal tenderness +,,UMLS:C0376405_patient non compliance +,,UMLS:C0085636_photophobia +,,UMLS:C0028081_night sweat +,,UMLS:C0221150_painful swallowing +,,UMLS:C0149758_poor dentition +,,UMLS:C1096646_transaminitis +,,UMLS:C0850149_non-productive cough +,,UMLS:C0559546_adverse reaction^UMLS:C0879626_adverse effect +,,UMLS:C1291077_abdominal bloating +UMLS:C0442874_neuropathy,99,UMLS:C0004093_asthenia +,,UMLS:C0028643_numbness +,,UMLS:C0027498_nausea and vomiting +,,UMLS:C0541798_awakening early +,,UMLS:C0020303_hydropneumothorax +,,UMLS:C0429562_superimposition +,,UMLS:C0231230_fatigability +,,UMLS:C0232726_tenesmus +,,UMLS:C0030193_pain +,,UMLS:C0232854_slowing of urinary stream +UMLS:C0022658_kidney disease,96,UMLS:C0392680_shortness of breath +,,UMLS:C0020461_hyperkalemia +,,UMLS:C0008031_pain chest +,,UMLS:C0015967_fever +,,UMLS:C0232995_gravida 0 +,,UMLS:C0151706_bleeding of vagina +UMLS:C0023267_fibroid tumor,96,UMLS:C0233071_para 2 +,,UMLS:C0019080_haemorrhage +,,UMLS:C0156543_abortion +,,UMLS:C0232943_intermenstrual heavy bleeding +,,UMLS:C0026827_muscle hypotonia^UMLS:C0241938_hypotonic +,,UMLS:C0232997_previous pregnancies 2 +,,UMLS:C0392680_shortness of breath +,,UMLS:C0015967_fever +,,UMLS:C0018834_heartburn +,,UMLS:C0860096_primigravida +,,UMLS:C0702118_abnormally hard consistency +,,UMLS:C1405524_proteinemia +UMLS:C0017601_glaucoma,95,UMLS:C0085639_fall +,,UMLS:C0000731_distended abdomen +,,UMLS:C1273573_unsteady gait +,,UMLS:C0030554_paresthesia +,,UMLS:C0020625_hyponatremia +,,UMLS:C0085631_agitation +,,UMLS:C0041657_unconscious state +,,UMLS:C0085624_burning sensation +,,UMLS:C0221198_lesion +,,UMLS:C0577559_mass of body structure +UMLS:C0027627_neoplasm metastasis,94,UMLS:C0205400_thicken +,,UMLS:C1269955_tumor cell invasion +,,UMLS:C1513183_metastatic lesion +,,UMLS:C0007859_pain neck +,,UMLS:C0034079_lung nodule +,,UMLS:C0030193_pain +,,UMLS:C0000737_pain abdominal +,,UMLS:C0149696_food intolerance +,,UMLS:C0577559_mass of body structure +,,UMLS:C0741302_atypia +UMLS:C0007102_malignant tumor of colon^UMLS:C0699790_carcinoma colon,94,UMLS:C0221198_lesion +,,UMLS:C0242453_prostatism +,,UMLS:C0009806_constipation +,,UMLS:C0858924_general discomfort +,,UMLS:C0011991_diarrhea +,,UMLS:C0000737_pain abdominal +,,UMLS:C0152032_urinary hesitation +,,UMLS:C0857087_dizzy spells +,,UMLS:C0278146_shooting pain +,,UMLS:C0428977_bradycardia +,,UMLS:C0042963_vomiting +,,UMLS:C0694547_systolic ejection murmur +,,UMLS:C0027497_nausea +,,UMLS:C0235250_hyperemesis +,,UMLS:C0085602_polydypsia +UMLS:C0011880_ketoacidosis diabetic,93,UMLS:C0032617_polyuria +,,UMLS:C0042963_vomiting +,,UMLS:C0027497_nausea +,,UMLS:C0000737_pain abdominal +,,UMLS:C0443260_milky +,,UMLS:C0235129_feeling strange +,,UMLS:C0232517_gurgle +,,UMLS:C0027769_nervousness +,,UMLS:C0232498_abdominal tenderness +,,UMLS:C0232605_regurgitates after swallowing +,,UMLS:C0344232_vision blurred +,,UMLS:C0152032_urinary hesitation +,,UMLS:C0011991_diarrhea +,,UMLS:C0036572_seizure +,,UMLS:C0236018_aura +UMLS:C0014549_tonic-clonic epilepsy^UMLS:C0494475_tonic-clonic seizures,92,UMLS:C0013144_drowsiness +,,UMLS:C0542073_lip smacking +,,UMLS:C0027066_myoclonus +,,UMLS:C0040822_tremor +,,UMLS:C0751466_phonophobia +,,UMLS:C0522336_rolling of eyes +,,UMLS:C0234450_sleepy +,,UMLS:C0019572_hirsutism +,,UMLS:C0554980_moody +,,UMLS:C0231530_muscle twitch +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0018681_headache +,,UMLS:C0002416_ambidexterity +,,UMLS:C0424530_absences finding +,,UMLS:C0037763_spasm +,,UMLS:C0043096_decreased body weight +,,UMLS:C1269955_tumor cell invasion +UMLS:C0006826_malignant neoplasms,90,UMLS:C0232118_pulsus paradoxus +,,UMLS:C1291692_gravida 10 +,,UMLS:C0577559_mass of body structure +,,UMLS:C0221198_lesion +,,UMLS:C0018834_heartburn +,,UMLS:C0028081_night sweat +,,UMLS:C0205400_thicken +,,UMLS:C0085593_chill +,,UMLS:C0029053_decreased translucency +,,UMLS:C0000737_pain abdominal +,,UMLS:C0541911_dullness +,,UMLS:C0149696_food intolerance +,,UMLS:C0476273_distress respiratory +,,UMLS:C0020649_hypotension +UMLS:C1145670_respiratory failure,90,UMLS:C0018991_hemiplegia +,,UMLS:C0037384_snore +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0239134_productive cough +,,UMLS:C0013404_dyspnea +,,UMLS:C0231835_tachypnea +,,UMLS:C0020461_hyperkalemia +,,UMLS:C0086439_hypokinesia +,,UMLS:C0232201_sinus rhythm +,,UMLS:C0427108_general unsteadiness +,,UMLS:C0006318_bruit +,,UMLS:C0239110_consciousness clear +,,UMLS:C0392680_shortness of breath +,,UMLS:C0221198_lesion +,,UMLS:C0332575_redness +UMLS:C0025202_melanoma,87,UMLS:C0577559_mass of body structure +,,UMLS:C0221166_paraparesis +,,UMLS:C0015967_fever +,,UMLS:C0232995_gravida 0 +,,UMLS:C0030193_pain +,,UMLS:C0033774_pruritus +,,UMLS:C0024103_mass in breast +,,UMLS:C0042963_vomiting +,,UMLS:C0011991_diarrhea +UMLS:C0017160_gastroenteritis,87,UMLS:C0000737_pain abdominal +,,UMLS:C0476287_breath-holding spell +,,UMLS:C0027497_nausea +,,UMLS:C0043096_decreased body weight +,,UMLS:C0234233_sore to touch +,,UMLS:C0240962_scleral icterus +,,UMLS:C0015967_fever +,,UMLS:C0231528_myalgia +,,UMLS:C0020625_hyponatremia +,,UMLS:C0232602_retch +,,UMLS:C0577559_mass of body structure +,,UMLS:C0043096_decreased body weight +UMLS:C0242379_malignant neoplasm of lung^UMLS:C0684249_carcinoma of lung,86,UMLS:C0221198_lesion +,,UMLS:C0010200_cough +,,UMLS:C0034079_lung nodule +,,UMLS:C0392680_shortness of breath +,,UMLS:C0019079_haemoptysis +,,UMLS:C0742985_debilitation +,,UMLS:C0232517_gurgle +,,UMLS:C0234238_ache +,,UMLS:C0034642_rale +,,UMLS:C0028081_night sweat +,,UMLS:C0029053_decreased translucency +,,UMLS:C0004093_asthenia +,,UMLS:C1513183_metastatic lesion +,,UMLS:C0085631_agitation +,,UMLS:C0022107_irritable mood +UMLS:C0024713_manic disorder,85,UMLS:C0455769_energy increased +,,UMLS:C0438696_suicidal +,,UMLS:C0917799_hypersomnia +,,UMLS:C0424000_feeling suicidal +,,UMLS:C0948786_blanch +,,UMLS:C0233762_hallucinations auditory +,,UMLS:C0233763_hallucinations visual +,,UMLS:C0233492_elation +,,UMLS:C0424068_verbal auditory hallucinations +,,UMLS:C0150041_feeling hopeless +,,UMLS:C1299586_difficulty +,,UMLS:C0231187_decompensation +,,UMLS:C0558089_verbally abusive behavior +,,UMLS:C0438696_suicidal +,,UMLS:C0424000_feeling suicidal +UMLS:C0031212_personality disorder,84,UMLS:C0028084_nightmare +,,UMLS:C0150041_feeling hopeless +,,UMLS:C0558141_transsexual +,,UMLS:C0233762_hallucinations auditory +,,UMLS:C0022107_irritable mood +,,UMLS:C0917801_sleeplessness +,,UMLS:C0085631_agitation +,,UMLS:C0424109_weepiness +,,UMLS:C0344315_mood depressed +,,UMLS:C1384489_scratch marks +,,UMLS:C0027498_nausea and vomiting +,,UMLS:C0277794_extreme exhaustion +,,UMLS:C0748706_side pain +,,UMLS:C0233481_worry +,,UMLS:C0014394_enuresis +,,UMLS:C0237154_homelessness +,,UMLS:C0027769_nervousness +,,UMLS:C0003962_ascites +,,UMLS:C0033774_pruritus +UMLS:C0019204_primary carcinoma of the liver cells,82,UMLS:C0577559_mass of body structure +,,UMLS:C0038002_splenomegaly +,,UMLS:C0221198_lesion +,,UMLS:C0030552_paresis +,,UMLS:C1269955_tumor cell invasion +,,UMLS:C0848277_room spinning +,,UMLS:C0019080_haemorrhage +,,UMLS:C0205400_thicken +,,UMLS:C0085632_indifferent mood +,,UMLS:C0006625_cachexia +,,"UMLS:C0020672_hypothermia, natural" +,,UMLS:C0000737_pain abdominal +,,UMLS:C0019209_hepatomegaly +,,UMLS:C0744727_hematocrit decreased +,,UMLS:C0085628_stupor +,,UMLS:C0043096_decreased body weight +,,UMLS:C0392680_shortness of breath +,,UMLS:C0010200_cough +UMLS:C0034067_emphysema pulmonary,80,UMLS:C0474395_behavior showing increased motor activity +,,UMLS:C0241158_scar tissue +,,UMLS:C0231807_dyspnea on exertion +,,UMLS:C0520966_coordination abnormal +,,UMLS:C0231528_myalgia +,,UMLS:C0020440_hypercapnia +,,UMLS:C0392162_clammy skin +,,UMLS:C0557075_has religious belief +,,UMLS:C0848277_room spinning +,,UMLS:C0859032_moan +,,UMLS:C0028081_night sweat +,,UMLS:C0006625_cachexia +,,UMLS:C0436331_symptom aggravating factors +,,UMLS:C0013404_dyspnea +,,UMLS:C0034642_rale +,,UMLS:C0016382_flushing +,,UMLS:C0221150_painful swallowing +,,UMLS:C0003862_arthralgia +,,UMLS:C0008301_choke +,,UMLS:C0232726_tenesmus +,,UMLS:C0009806_constipation +UMLS:C0019112_hemorrhoids,80,UMLS:C0019080_haemorrhage +,,UMLS:C0232695_bowel sounds decreased +,,UMLS:C0278014_decreased stool caliber +,,UMLS:C0027498_nausea and vomiting +,,UMLS:C0020175_hunger +,,UMLS:C0011991_diarrhea +,,UMLS:C0012833_dizziness +,,UMLS:C0020625_hyponatremia +,,UMLS:C0009024_clonus +,,UMLS:C0030193_pain +,,UMLS:C1321756_achalasia +,,UMLS:C0085624_burning sensation +,,UMLS:C0744492_guaiac positive +,,UMLS:C0239832_numbness of hand +,,UMLS:C0043144_wheezing +,,UMLS:C0010200_cough +UMLS:C0006266_spasm bronchial,76,UMLS:C0392680_shortness of breath +,,UMLS:C0241158_scar tissue +,,UMLS:C0277797_apyrexial +,,UMLS:C0262581_no known drug allergies +,,UMLS:C0030193_pain +,,UMLS:C0239134_productive cough +,,UMLS:C0242429_throat sore +,,UMLS:C0013404_dyspnea +,,UMLS:C0232292_chest tightness +,,UMLS:C0700292_hypoxemia +,,UMLS:C0231835_tachypnea +,,UMLS:C0234215_sensory discomfort +,,UMLS:C0015967_fever +,,UMLS:C0042963_vomiting +,,UMLS:C0035508_rhonchus +,,UMLS:C0018991_hemiplegia +,,UMLS:C0231890_fremitus +UMLS:C0003537_aphasia,76,UMLS:C0009024_clonus +,,UMLS:C0231872_egophony +,,UMLS:C0427055_facial paresis +,,UMLS:C0221470_aphagia +,,UMLS:C0231530_muscle twitch +,,UMLS:C0522224_paralyse +,,UMLS:C0024031_low back pain +,,UMLS:C0277823_charleyhorse +UMLS:C0028756_obesity morbid,76,UMLS:C0848168_out of breath +,,UMLS:C0205254_sedentary +,,UMLS:C0002962_angina pectoris +,,UMLS:C0010200_cough +,,UMLS:C0847488_unhappy +,,UMLS:C0553668_labored breathing +,,"UMLS:C0020672_hypothermia, natural" +,,UMLS:C0013404_dyspnea +,,UMLS:C0744727_hematocrit decreased +,,UMLS:C0043144_wheezing +,,UMLS:C0700292_hypoxemia +,,UMLS:C0235634_renal angle tenderness +,,UMLS:C0424749_feels hot/feverish +UMLS:C0034186_pyelonephritis,74,UMLS:C0015967_fever +,,UMLS:C0030193_pain +,,UMLS:C0085606_urgency of micturition +,,UMLS:C0018965_hematuria +,,UMLS:C0042963_vomiting +,,UMLS:C0085593_chill +,,UMLS:C0011991_diarrhea +,,UMLS:C0027497_nausea +,,UMLS:C0000737_pain abdominal +,,UMLS:C0231528_myalgia +,,UMLS:C0015967_fever +,,UMLS:C0085593_chill +UMLS:C0014118_endocarditis,71,UMLS:C0008033_pleuritic pain +,,UMLS:C0205400_thicken +,,UMLS:C0231528_myalgia +,,UMLS:C0277797_apyrexial +,,UMLS:C0028081_night sweat +,,UMLS:C1517205_flare +,,UMLS:C0392680_shortness of breath +,,UMLS:C0085619_orthopnea +,,UMLS:C0549483_abscess bacterial +,,UMLS:C0020649_hypotension +,,UMLS:C0010200_cough +,,UMLS:C1513183_metastatic lesion +,,UMLS:C0238844_breath sounds decreased +,,UMLS:C0043096_decreased body weight +,, +,,UMLS:C0232118_pulsus paradoxus +,,UMLS:C0086439_hypokinesia +UMLS:C0031039_effusion pericardial^UMLS:C1253937_pericardial effusion body substance,71,UMLS:C0232267_pericardial friction rub +,,UMLS:C0013404_dyspnea +,,UMLS:C0392680_shortness of breath +,,UMLS:C0578150_hemodynamically stable +,,UMLS:C0018800_cardiomegaly +,,UMLS:C0020649_hypotension +,,UMLS:C0241235_sputum purulent +,,UMLS:C0427055_facial paresis +,,UMLS:C0030193_pain +,,UMLS:C0028961_oliguria +,,UMLS:C0312422_blackout +,,UMLS:C0728899_intoxication +UMLS:C0001973_chronic alcoholic intoxication,70,UMLS:C0040822_tremor +,,UMLS:C0233762_hallucinations auditory +,,UMLS:C0438696_suicidal +,,UMLS:C0424337_hoard +,,UMLS:C0022107_irritable mood +,,UMLS:C0150041_feeling hopeless +,,UMLS:C0424000_feeling suicidal +,,UMLS:C0233647_neologism +,,UMLS:C0036572_seizure +,,UMLS:C0237154_homelessness +,,UMLS:C0917801_sleeplessness +,,UMLS:C0041657_unconscious state +,,UMLS:C0030318_panic +,,UMLS:C0238844_breath sounds decreased +,,UMLS:C0392680_shortness of breath +UMLS:C0032326_pneumothorax,68,UMLS:C0013404_dyspnea +,,UMLS:C0425560_cardiovascular finding^UMLS:C1320716_cardiovascular event +,,UMLS:C0019079_haemoptysis +,,UMLS:C0010200_cough +,,UMLS:C0020440_hypercapnia +,,UMLS:C0037580_soft tissue swelling +,,UMLS:C0242453_prostatism +,,UMLS:C0085631_agitation +UMLS:C0011206_delirium,68,UMLS:C1273573_unsteady gait +,,UMLS:C0424092_withdraw +,,UMLS:C0020625_hyponatremia +,,UMLS:C0558089_verbally abusive behavior +,,UMLS:C0424000_feeling suicidal +,,UMLS:C0241526_unresponsiveness +,,UMLS:C0233481_worry +,,UMLS:C0013144_drowsiness^UMLS:C0234450_sleepy +,,UMLS:C0233762_hallucinations auditory +,,UMLS:C0438696_suicidal +,,UMLS:C0015967_fever +,,UMLS:C0011991_diarrhea +UMLS:C0027947_neutropenia,68,UMLS:C1096646_transaminitis +,,UMLS:C0038002_splenomegaly +,,UMLS:C0028081_night sweat +,,UMLS:C0277797_apyrexial +,,UMLS:C0221198_lesion +,,UMLS:C1260880_snuffle +,,UMLS:C0085593_chill +,,UMLS:C0010200_cough +,,UMLS:C0746619_monoclonal +,,UMLS:C0020598_hypocalcemia result +,,UMLS:C0028961_oliguria +,,UMLS:C0427629_rhd positive +,,UMLS:C0476273_distress respiratory +UMLS:C0020433_hyperbilirubinemia,68,UMLS:C0010520_cyanosis +,,UMLS:C0231835_tachypnea +,,UMLS:C0233070_para 1 +,,UMLS:C0428977_bradycardia +,,UMLS:C0006157_breech presentation +,,UMLS:C0332601_cushingoid facies^UMLS:C0878661_cushingoid habitus +,,UMLS:C0010200_cough +,,UMLS:C0231528_myalgia +UMLS:C0021400_influenza,68,UMLS:C0242143_uncoordination +,,UMLS:C0015967_fever +,,UMLS:C0008033_pleuritic pain +,,UMLS:C1260880_snuffle +,,UMLS:C0242429_throat sore +,,UMLS:C0231218_malaise +,,UMLS:C0742985_debilitation +,,UMLS:C0436331_symptom aggravating factors +,,UMLS:C0085593_chill +,,UMLS:C0240962_scleral icterus +,,UMLS:C0277873_nasal flaring +,,UMLS:C0013428_dysuria +,,UMLS:C0542073_lip smacking +,,UMLS:C0018681_headache +,,UMLS:C0037383_sneeze +,,UMLS:C0037384_snore +,,UMLS:C0457097_green sputum +,,UMLS:C0392680_shortness of breath +,,UMLS:C0476273_distress respiratory +,,UMLS:C0312422_blackout +,,UMLS:C0277794_extreme exhaustion +UMLS:C0439857_dependence,67,UMLS:C0728899_intoxication +,,UMLS:C0040822_tremor +,,UMLS:C0085631_agitation +,,UMLS:C0438696_suicidal +,,UMLS:C0237154_homelessness +,,UMLS:C0242453_prostatism +,,UMLS:C0023380_lethargy +,,UMLS:C0036572_seizure +,,UMLS:C0231530_muscle twitch +,,UMLS:C0848340_stuffy nose +,,UMLS:C0150041_feeling hopeless +,,UMLS:C0581911_heavy legs +,,UMLS:C0034642_rale +UMLS:C0087086_thrombus,67,UMLS:C0086439_hypokinesia +,,UMLS:C0003123_anorexia +,,UMLS:C0235396_hypertonicity +,,UMLS:C0392680_shortness of breath +,,UMLS:C0239981_hypoalbuminemia +,,UMLS:C0033774_pruritus +,,UMLS:C0234233_sore to touch +,,UMLS:C0578150_hemodynamically stable +,,UMLS:C0427055_facial paresis +,,UMLS:C0042963_vomiting +,,UMLS:C0241252_stool color yellow +UMLS:C0008325_cholecystitis,66,UMLS:C0859032_moan +,,UMLS:C0027497_nausea +,,UMLS:C0000737_pain abdominal +,,UMLS:C0277977_Murphy's sign +,,UMLS:C0016204_flatulence +,,UMLS:C0232488_colic abdominal +,,UMLS:C0030193_pain +,,UMLS:C0003962_ascites +,,UMLS:C0011991_diarrhea +,,UMLS:C0151878_qt interval prolonged +,,UMLS:C0425560_cardiovascular finding^UMLS:C1320716_cardiovascular event +,,UMLS:C0541992_groggy +,,UMLS:C0232201_sinus rhythm +,,UMLS:C0425449_gasping for breath +,,UMLS:C0009806_constipation +,,UMLS:C0474505_feces in rectum +,,UMLS:C0702118_abnormally hard consistency +UMLS:C0019291_hernia hiatal,61,UMLS:C0000737_pain abdominal +,,UMLS:C0231230_fatigability +,,UMLS:C0240805_prodrome +,,UMLS:C0042963_vomiting +,,UMLS:C0027497_nausea +,,UMLS:C0231528_myalgia +,,UMLS:C0020625_hyponatremia +,,UMLS:C0234233_sore to touch +,,UMLS:C0858924_general discomfort +,,UMLS:C0231807_dyspnea on exertion +,,UMLS:C0232766_asterixis +,,UMLS:C0744492_guaiac positive +,,UMLS:C0239832_numbness of hand +,,UMLS:C0018681_headache +,,UMLS:C0085636_photophobia +UMLS:C0149931_migraine disorders,61,UMLS:C0002416_ambidexterity +,,UMLS:C0042963_vomiting +,,UMLS:C0012833_dizziness +,,UMLS:C0028643_numbness +,,UMLS:C0027497_nausea +,,UMLS:C0015967_fever +,,UMLS:C0038002_splenomegaly +UMLS:C0030312_pancytopenia,61,UMLS:C0020639_hypoproteinemia +,,UMLS:C0015672_fatigue +,,UMLS:C0019080_haemorrhage +,,UMLS:C0231230_fatigability +,,UMLS:C0332601_cushingoid facies^UMLS:C0878661_cushingoid habitus +,,UMLS:C0241252_stool color yellow +,,UMLS:C0232488_colic abdominal +UMLS:C0008350_cholelithiasis^UMLS:C0242216_biliary calculus,61,UMLS:C0042963_vomiting +,,UMLS:C0027497_nausea +,,UMLS:C0000737_pain abdominal +,,UMLS:C0030193_pain +,,UMLS:C0332601_cushingoid facies^UMLS:C0878661_cushingoid habitus +,,UMLS:C0003962_ascites +,,UMLS:C0205400_thicken +,,UMLS:C0234233_sore to touch +,,UMLS:C0011991_diarrhea +,,UMLS:C0277797_apyrexial +,,UMLS:C0030252_palpitation +UMLS:C0039239_tachycardia sinus,56,UMLS:C0238705_left atrial hypertrophy +,,UMLS:C0038990_sweat^UMLS:C0700590_sweating increased +,,UMLS:C0556346_alcohol binge episode +,,UMLS:C0438716_pressure chest +,,UMLS:C0241158_scar tissue +,,UMLS:C0425560_cardiovascular finding^UMLS:C1320716_cardiovascular event +,,UMLS:C0149746_orthostasis +,,UMLS:C0392680_shortness of breath +,,UMLS:C0520888_t wave inverted +,,UMLS:C0042963_vomiting +,,UMLS:C0000737_pain abdominal +UMLS:C1258215_ileus,56,UMLS:C0549483_abscess bacterial +,,UMLS:C0000727_abdomen acute +,,UMLS:C0740844_air fluid level +,,UMLS:C0425491_catching breath +,,UMLS:C0232498_abdominal tenderness +,,UMLS:C0027497_nausea +,,UMLS:C0234233_sore to touch +,,UMLS:C0016204_flatulence +,,UMLS:C0011991_diarrhea +,,UMLS:C0577559_mass of body structure +,,UMLS:C0277797_apyrexial +,,UMLS:C0009806_constipation +,,UMLS:C0205400_thicken +,,UMLS:C0232995_gravida 0 +,,UMLS:C0000737_pain abdominal +UMLS:C0001511_adhesion,57,UMLS:C0016204_flatulence +,,UMLS:C0030193_pain +,,UMLS:C0456091_large-for-dates fetus +,,UMLS:C0233070_para 1 +,,UMLS:C0042963_vomiting +,,UMLS:C0034079_lung nodule +,,UMLS:C0006157_breech presentation +,,UMLS:C0392680_shortness of breath +,,UMLS:C0043096_decreased body weight +,,UMLS:C0231441_immobile +,,UMLS:C1273573_unsteady gait +,,UMLS:C0233763_hallucinations visual +,,UMLS:C0424000_feeling suicidal +UMLS:C0011253_delusion,56,UMLS:C0240233_loose associations +,,UMLS:C0392701_giddy mood +,,UMLS:C0150041_feeling hopeless +,,UMLS:C0085631_agitation +,,UMLS:C0233762_hallucinations auditory +,,UMLS:C0022107_irritable mood +,,UMLS:C0917801_sleeplessness +,,UMLS:C0233647_neologism +,,UMLS:C0455204_homicidal thoughts +,,UMLS:C0578859_disturbed family +,,UMLS:C0233481_worry +,,UMLS:C0231187_decompensation +,,UMLS:C0558089_verbally abusive behavior +,,UMLS:C0007398_catatonia +,,UMLS:C0438696_suicidal +,,UMLS:C0558261_terrify +,,UMLS:C0312422_blackout +,,UMLS:C0424109_weepiness +,,UMLS:C0338656_impaired cognition +,,UMLS:C0022107_irritable mood +,,UMLS:C0085631_agitation +UMLS:C0233472_affect labile,45,UMLS:C0277794_extreme exhaustion +,,UMLS:C0917801_sleeplessness +,,UMLS:C0014394_enuresis +,,UMLS:C0376405_patient non compliance +,,UMLS:C0150041_feeling hopeless +,,UMLS:C0233763_hallucinations visual +,,UMLS:C0425251_bedridden^UMLS:C0741453_bedridden +,,UMLS:C0242453_prostatism +UMLS:C0011127_decubitus ulcer,42,UMLS:C0232257_systolic murmur +,,UMLS:C0871754_frail +,,UMLS:C0015967_fever +,, diff --git a/backend/app/main.py b/backend/app/main.py index 5701d7e..e70eac1 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -1,28 +1,28 @@ from fastapi import FastAPI from api.routers.disease_prediction_router import router as api_router +from api.routers.user_router import router as user_router import uvicorn from fastapi.middleware.cors import CORSMiddleware -from firebase_admin import credentials, initialize_app -from core.config import get_settings -import base64 -import json + app = FastAPI() app.include_router(api_router) +app.include_router(user_router) + app.add_middleware( CORSMiddleware, allow_origins=[ - "*" - ], # 모든 출처 허용 (보안상 운영 환경에선 지정된 출처만 허용할 것) + "https://apayo-d426b.firebaseapp.com/", + "https://apayo-d426b.web.app/", + "http://localhost:3000", + "http://localhost:8000", + "http://localhost:8080", + ], allow_credentials=True, allow_methods=["*"], # 모든 HTTP 메서드 허용 allow_headers=["*"], ) -Settings = get_settings() - -cred = credentials.Certificate(json.loads(base64.b64decode(Settings.google_application_credentials))) -initialize_app(cred) if __name__ == "__main__": uvicorn.run(app, host="127.0.0.1", port=8000) diff --git a/backend/app/models/user/user.py b/backend/app/models/user/user.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/app/requirements.txt b/backend/app/requirements.txt index 918b045..b8a7f93 100644 Binary files a/backend/app/requirements.txt and b/backend/app/requirements.txt differ diff --git a/backend/app/services/embedding_service.py b/backend/app/services/embedding_service.py new file mode 100644 index 0000000..6ab95ea --- /dev/null +++ b/backend/app/services/embedding_service.py @@ -0,0 +1,52 @@ +from pymongo import MongoClient +import numpy as np +from openai import OpenAI +from core.config import get_settings + +settings = get_settings() +GPT_API_KEY = settings.gpt_api_key +client = OpenAI(api_key=GPT_API_KEY) + +mongo_client = MongoClient(settings.mongo_uri) +db = mongo_client['disease_embedding_db'] + +def get_embedding(text): + embedding_data = client.embeddings.create(input=[text], model='text-embedding-3-small').data[0].embedding + return np.array(embedding_data) + +def cosine_similarity(vec1, vec2): + if np.any(vec1) and np.any(vec2): + return np.dot(vec1, vec2) / (np.linalg.norm(vec1) * np.linalg.norm(vec2)) + return 0 + +def infer_disease(input_symptom): + input_embedding = get_embedding(input_symptom) + + # 질병 임베딩과의 유사도 계산 + diseases = db.diseases_embeddings.find() + similarities = {} + for disease in diseases: + disease_embedding = np.array(disease['embedding']) + similarity = cosine_similarity(input_embedding, disease_embedding) + similarities[disease['_id']] = similarity + + # 상위 n개의 질병 선별 + top_n_diseases = sorted(similarities.items(), key=lambda x: x[1], reverse=True)[:5] + + # 상세 증상 임베딩과의 유사도 계산 + final_results = {} + for disease_id, similarity in top_n_diseases: + final_results[disease_id] = {'similarity': similarity} + symptoms = db.symptoms.find({'disease_id': disease_id}) + + temp = {} + for symptom in symptoms: + symptom_embedding = np.array(symptom['embedding']) + symptom_similarity = cosine_similarity(input_embedding, symptom_embedding) + temp[symptom['symptom']] = symptom_similarity + + top_n_symptoms = sorted(temp.items(), key=lambda x: x[1], reverse=True)[:5] + for symptom_id, symptom_similarity in top_n_symptoms: + final_results[disease_id][symptom_id] = symptom_similarity + + return final_results diff --git a/backend/app/services/gpt_service.py b/backend/app/services/gpt_service.py index 2a244cc..689ac48 100644 --- a/backend/app/services/gpt_service.py +++ b/backend/app/services/gpt_service.py @@ -1,7 +1,9 @@ from api.schemas.primary_disease_prediction import UserSymptomInput from api.schemas.secondary_disease_prediction import UserQuestionResponse from utils.data_processing import ( - parse_primary_response, + parse_diseases, + parse_questions, + parse_symptoms, create_secondary_input, parse_secondary_response, ) @@ -13,22 +15,30 @@ SECONDARY_DISEASE_PREDICTION_PROMPT, ) from utils.api_client import get_gpt_response -from api.schemas.disease_prediction_session import DiseasePredictionSession -from services.firebase_service import SessionManager - +from services.session_service import SessionManager +#from services.embedding_service import infer_disease async def primary_disease_prediction(input_data: UserSymptomInput): response1 = await get_gpt_response( input_data.symptoms, PRIMARY_DISEASE_PREDICTION_PROMPT1 ) - response2 = await get_gpt_response(response1, PRIMARY_DISEASE_PREDICTION_PROMPT2) - input3 = "User Symptom: " + response1 + " " + "Disease: " + response2 + symptoms = parse_symptoms(response1) + if not symptoms: + raise HTTPException(status_code=400, detail="Bad Request: failed to find symptoms") + #infered_diseases = infer_disease(input_data.symptoms) + #print(infered_diseases) + input2 = "User Symptom: " + input_data.symptoms + " " + "expected symptoms: " + response1 + response2 = await get_gpt_response(input2, PRIMARY_DISEASE_PREDICTION_PROMPT2) + diseases = parse_diseases(response2) + if not diseases: + raise HTTPException(status_code=404, detail="Not Found: failed to find diseases") + + input3 = "User Symptom: " + response1 + " " + "Disease: " + response2 response3 = await get_gpt_response(input3, PRIMARY_DISEASE_PREDICTION_PROMPT3) - - response = parse_primary_response(response1 + "\n" + response2 + "\n" + response3) - if not response: - raise HTTPException(status_code=404, detail="failed to find symptoms") + questions = parse_questions(response3) + if not questions: + raise HTTPException(status_code=404, detail="Not Found: failed to find questions") session = SessionManager.create_session(user_id=input_data.user_id) @@ -36,9 +46,10 @@ async def primary_disease_prediction(input_data: UserSymptomInput): SessionManager.update_session( session.session_id, { - "primary_symptoms": response[0], - "primary_diseases": response[1], - "primary_questions": response[2], + "user_input": input_data.symptoms, + "primary_symptoms": symptoms, + "primary_diseases": diseases, + "primary_questions": questions, }, ) @@ -61,8 +72,10 @@ async def secondary_disease_prediction(input_data: UserQuestionResponse): SessionManager.update_session( session.session_id, { - "secondary_symptoms": input_data, - "final_diseases": response, + "secondary_symptoms": input_data.model_dump(), + "final_diseases": response.Disease, + "recommended_department": response.recommended_department, + "final_disease_description": response.description, }, ) return response diff --git a/backend/app/services/firebase_service.py b/backend/app/services/session_service.py similarity index 58% rename from backend/app/services/firebase_service.py rename to backend/app/services/session_service.py index 9f907e6..d6b2a5b 100644 --- a/backend/app/services/firebase_service.py +++ b/backend/app/services/session_service.py @@ -1,8 +1,10 @@ -from firebase_admin import firestore +from pymongo import MongoClient from api.schemas.disease_prediction_session import DiseasePredictionSession from typing import Dict from datetime import datetime +from core.config import get_settings +settings = get_settings() class SessionManager: _sessions_cache = {} @@ -11,34 +13,31 @@ class SessionManager: @staticmethod def get_db(): if SessionManager._db is None: - SessionManager._db = firestore.client() + client = MongoClient(settings.mongo_uri) + SessionManager._db = client['disease_prediction_db'] return SessionManager._db @staticmethod def create_session(user_id: str) -> DiseasePredictionSession: - """Create a new session and save it to Firestore.""" + """Create a new session and save it to MongoDB.""" db = SessionManager.get_db() new_session = DiseasePredictionSession(user_id=user_id) session_data = new_session.model_dump() - session_ref = db.collection("disease_prediction_sessions").document( - new_session.session_id - ) - session_ref.set(session_data) + db.disease_prediction_sessions.insert_one(session_data) # Cache the session locally SessionManager._sessions_cache[new_session.session_id] = new_session return new_session @staticmethod def get_session(session_id: str) -> DiseasePredictionSession: - """Retrieve a session from the local cache or Firestore.""" + """Retrieve a session from the local cache or MongoDB.""" db = SessionManager.get_db() if session_id in SessionManager._sessions_cache: return SessionManager._sessions_cache[session_id] - session_ref = db.collection("disease_prediction_sessions").document(session_id) - session_data = session_ref.get().to_dict() + session_data = db.disease_prediction_sessions.find_one({"session_id": session_id}) print(session_data) if session_data: session = DiseasePredictionSession(**session_data) @@ -48,7 +47,7 @@ def get_session(session_id: str) -> DiseasePredictionSession: @staticmethod def update_session(session_id: str, updates: Dict[str, any]): - """Update an existing session both locally and in Firestore using to_firestore_dict.""" + """Update an existing session both locally and in MongoDB.""" db = SessionManager.get_db() session = SessionManager.get_session(session_id) if not session: @@ -60,23 +59,13 @@ def update_session(session_id: str, updates: Dict[str, any]): session.updated_at = datetime.now() - # Convert the entire session to a dictionary format suitable for Firestore + # Convert the entire session to a dictionary format suitable for MongoDB updated_session_data = session.model_dump() # Update the local cache SessionManager._sessions_cache[session_id] = session - # Update Firestore - session_ref = db.collection("disease_prediction_sessions").document(session_id) - session_ref.update(updated_session_data) - - @staticmethod - def assign_secondary_symptoms(session_id: str, responses: Dict[str, str]): - """Assign secondary symptoms to a session and update the session.""" - if session_id in SessionManager._sessions_cache: - session = SessionManager._sessions_cache[session_id] - session.assign_secondary_symptoms(responses) - SessionManager.update_session( - session_id, {"secondary_symptoms": session.secondary_symptoms} - ) - else: - raise ValueError("Session not found") + # Update MongoDB + db.disease_prediction_sessions.update_one( + {"session_id": session_id}, + {"$set": updated_session_data} + ) diff --git a/backend/app/services/user_service.py b/backend/app/services/user_service.py new file mode 100644 index 0000000..17851dc --- /dev/null +++ b/backend/app/services/user_service.py @@ -0,0 +1,37 @@ + +from api.schemas.user import UserCreate +from utils.hashing import get_password_hash, verify_password +import uuid +from pymongo import MongoClient +from core.config import get_settings + + +settings = get_settings() +client = MongoClient(settings.mongo_uri) +db=client['user_db'] +def create_user(user: UserCreate): + user_id = str(uuid.uuid4()) + hashed_password = get_password_hash(user.password) + user_data = { + 'email': user.email, + 'nickname': user.nickname, + 'hashed_password': hashed_password, + 'sex': user.sex, + 'age': user.age + } + db.users.insert_one({'_id': user_id, **user_data}) + user_data['id'] = user_id + return user_data + +def get_user_by_email(email: str): + user_data = db.users.find_one({'email': email}) + if user_data: + user_data['id'] = str(user_data['_id']) + return user_data + return None + +def authenticate_user(email: str, password: str): + user_data = get_user_by_email(email) + if user_data and verify_password(password, user_data['hashed_password']): + return user_data + return None \ No newline at end of file diff --git a/backend/app/utils/api_client.py b/backend/app/utils/api_client.py index 235fd36..a086634 100644 --- a/backend/app/utils/api_client.py +++ b/backend/app/utils/api_client.py @@ -6,7 +6,7 @@ async def get_gpt_response(input_data: str, system_message: str): settings = get_settings() GPT_API_KEY = settings.gpt_api_key - MODEL = "gpt-3.5-turbo" + MODEL = "gpt-4o" client = OpenAI( api_key=GPT_API_KEY, diff --git a/backend/app/utils/data_processing.py b/backend/app/utils/data_processing.py index 946be10..045221e 100644 --- a/backend/app/utils/data_processing.py +++ b/backend/app/utils/data_processing.py @@ -2,12 +2,52 @@ from api.schemas.secondary_disease_prediction import ( UserQuestionResponse, ) -from services.firebase_service import SessionManager +from services.session_service import SessionManager from uuid import uuid4 from fastapi import HTTPException from api.schemas.secondary_disease_prediction import PredictedDisease +def parse_symptoms(symptoms: str) -> list: + if "no symptoms" in symptoms.lower(): + return None + return { + str(uuid4()): _.strip() for _ in symptoms.replace("1.", "").split("|") + } + +def parse_diseases(diseases: str) -> list: + raw_diseases = diseases.replace("2.", "").replace("ICD code:", "").split("|") + + diseases_dict = {} + for i in raw_diseases: + code, name = i.split(":") + code = code.strip() + name = name.strip() + diseases_dict[code] = name + + return diseases_dict + +def parse_questions(questions: str) -> list: + temp = [] + print(re.split(r"\n+|/", questions)) + for pair in re.split(r"\n+|/", questions): + temp.append( + [ + _.strip() + for _ in pair.replace("3.", "").replace("ICD code:", "").split("|") + ] + ) + + question = {} + for i in temp: + code, name = i[0].split(":") + code = code.strip() + name = name.strip() + + question[code] = {str(uuid4()): j for j in i[1:]} + + return question +""" def parse_primary_response(response: str) -> list: if "no symptoms" in response.lower(): return None @@ -48,14 +88,20 @@ def parse_primary_response(response: str) -> list: question[code] = {str(uuid4()): j for j in i[1:]} return symptoms, diseases, question - +""" def create_secondary_input(input_data: UserQuestionResponse) -> str: print(input_data.responses) - result = "" session = SessionManager.get_session(input_data.session_id) + result = "" + + result += "User Symptoms:" + session.user_input + "\n" + + result += "Extracted Symptoms:" result += ", ".join(session.primary_symptoms.values()) result += "\n" + + result += "Predicted Diseases:" result += ", ".join( ["{}:{}".format(k, v) for k, v in session.primary_diseases.items()] ) @@ -70,22 +116,18 @@ def create_secondary_input(input_data: UserQuestionResponse) -> str: raise HTTPException(status_code=404, detail="Question not found") temp.append(f"{merged_questions[id]}:{response}") + result += "Additional Symptoms: " result += ", ".join(temp) return result -def parse_secondary_response(response: str) -> list[PredictedDisease]: - response = re.split(r"\n+", response) - print(response) - if len(response) > 2 or len(response) < 1: - raise HTTPException(status_code=404, detail="Invalid response") - result = {} - for i in response: - temp = i.split("|") - result = PredictedDisease( - Disease=temp[0].strip(), - recommended_department=temp[1].strip(), - description=temp[2].strip(), - ) +def parse_secondary_response(response: str) -> PredictedDisease: + + temp = response.split("|") + result = PredictedDisease( + Disease=temp[0].strip(), + recommended_department=temp[1].strip(), + description=temp[2].strip(), + ) return result diff --git a/backend/app/utils/hashing.py b/backend/app/utils/hashing.py new file mode 100644 index 0000000..f3a4d8e --- /dev/null +++ b/backend/app/utils/hashing.py @@ -0,0 +1,9 @@ +from passlib.context import CryptContext + +pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") + +def get_password_hash(password): + return pwd_context.hash(password) + +def verify_password(plain_password, hashed_password): + return pwd_context.verify(plain_password, hashed_password) diff --git a/backend/app/utils/jwt_handler.py b/backend/app/utils/jwt_handler.py new file mode 100644 index 0000000..132e455 --- /dev/null +++ b/backend/app/utils/jwt_handler.py @@ -0,0 +1,31 @@ +import jwt +from datetime import datetime, timedelta +from typing import Union +from core.config import get_settings + +settings = get_settings() + + +SECRET_KEY = settings.token_secret +ALGORITHM = settings.token_algorithm +ACCESS_TOKEN_EXPIRE_MINUTES = settings.token_expire_minutes + +def create_access_token(data: dict, expires_delta: Union[timedelta, None] = None): + to_encode = data.copy() + if expires_delta: + expire = datetime.now() + expires_delta + else: + expire = datetime.now() + timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES) + to_encode.update({"exp": expire}) + encoded_jwt = jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM) + return encoded_jwt + +def decode_access_token(token: str): + try: + payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM]) + email: str = payload.get("sub") + if email is None: + raise jwt.InvalidTokenError + return email + except jwt.PyJWTError: + raise jwt.InvalidTokenError diff --git a/frontend/assets/background_image.jpeg b/frontend/assets/background_image.jpeg index 46363b1..001ca3f 100644 Binary files a/frontend/assets/background_image.jpeg and b/frontend/assets/background_image.jpeg differ diff --git a/frontend/assets/logo.png b/frontend/assets/logo.png index d4dcb20..a620285 100644 Binary files a/frontend/assets/logo.png and b/frontend/assets/logo.png differ diff --git a/frontend/lib/gptchat.dart b/frontend/lib/gptchat.dart index 4670020..85a4d94 100644 --- a/frontend/lib/gptchat.dart +++ b/frontend/lib/gptchat.dart @@ -1,7 +1,9 @@ import 'dart:async'; import 'package:flutter/material.dart'; -import 'widgets/result_card.dart'; -import 'widgets/select_card.dart'; +import 'package:frontend/widgets/popup.dart'; +import 'package:frontend/widgets/result_card.dart'; +import 'package:frontend/widgets/select_card.dart'; + import 'package:http/http.dart' as http; import 'dart:convert'; @@ -28,12 +30,7 @@ class DiseaseInfo { class ResultData { final List diseaseInfo; - ResultData( - { - // required this.sessionId, - // required this.symptoms, - // required this.questions, - required this.diseaseInfo}); + ResultData({required this.diseaseInfo}); } String SessionID = 'null'; @@ -50,6 +47,7 @@ SelectCardState? finalSelect; class _GptPageState extends State { Map cardSelections = {}; //id:선택여부 + bool isLoading = false; // 로딩 상태를 관리하는 변수 @override void initState() { @@ -60,20 +58,57 @@ class _GptPageState extends State { } void toggleCardState(String id) { + // 카드의 선택 상태를 변경 setState(() { cardSelections[id] = !cardSelections[id]!; }); } + String text = ''; // 사용자가 입력한 증상 채팅 저장하는 변수 + bool attempt = false; // 채팅 시도 여부 + + bool selectedCard = false; // 선지가 생성됐는지 + bool recieveResult = false; // 결과가 도착했는지 + Key nextKey = UniqueKey(); // 다음으로 이동 + + Map contents = {}; //ID:값 + + final TextEditingController _chatControlloer = TextEditingController(); + + int resultlength = 0; + List diseases = []; + List departments = []; + List descriptions = []; + + // 단순히 맨 위에 입력한 증상 띄움. + 백에 전송하는 함수 호출. + _sendMessage() async { + setState(() { + String t = _chatControlloer.text; + if (t.trim().isEmpty && !attempt) { + // 공백을 전송하였을 때. + PopupMessage('증상을 입력해주세요!').showPopup(context); + return; + } else { + text = t; + } + isLoading = true; // 로딩 상태 활성화 + }); + + SessionData? sessionData = await responseSymptom(); + updateData(sessionData); + + setState(() { + isLoading = false; // 로딩 상태 비활성화 + }); + } + // 백에 증상 채팅 입력 보내고 처리. Future responseSymptom() async { - String text = _chatControlloer.text; // 현재 텍스트 필드의 텍스트 추출 _chatControlloer.clear(); // 텍스트 필드 클리어 // 백엔드로 POST 요청 보내기 try { http.Response response = await http.post( - Uri.parse( - 'https://port-0-apayo-rm6l2llvw7woh4.sel5.cloudtype.app/primary_disease_prediction/'), + Uri.parse('http://52.79.91.82/primary_disease_prediction/'), headers: {'Content-Type': 'application/json'}, // POST 요청의 헤더 body: json.encode( {'user_id': '777', 'symptoms': text}), // POST 요청의 바디 (메시지 데이터) @@ -100,6 +135,7 @@ class _GptPageState extends State { questions: questions); SessionID = sessionData.sessionId; + selectedCard = true; // 선지 생성됨. // Optionally print or return session data // print('Session ID: ${sessionData.sessionId}'); // print('Symptoms: ${sessionData.symptoms}'); @@ -116,23 +152,7 @@ class _GptPageState extends State { return null; } -// 단순히 맨 위에 입력한 증상 띄움. + 백에 전송하는 함수 호출. - _sendMessage() async { - setState(() { - String text = _chatControlloer.text; - userSymptomChat.add(text); // 메시지 목록에 텍스트 추가 - }); - SessionData? sessionData = await responseSymptom(); - updateData(sessionData); - } - - bool selectedCard = false; // 선지가 생성됐는지 - bool recieveResult = false; // 결과가 도착했는지 - Key nextKey = UniqueKey(); // 다음으로 이동 - - Map contents = {}; //ID:값 - - // 백엔드에서 데이터를 받아서 업데이트 + // 백엔드에서 데이터를 받아서 업데이트 (채팅 입력 후 선지 생성) void updateData(SessionData? sessionData) { Map newData = {}; // 새로운 데이터 리스트 Map newCardSelections = {}; // 새로운 선택 리스트 @@ -147,205 +167,15 @@ class _GptPageState extends State { contents = newData; // 기존 데이터를 새 데이터로 교체 cardSelections = newCardSelections; // 기존 선택을 새 선택으로 교체 nextKey = UniqueKey(); // 버튼에 새로운 키를 할당하여 변화를 강제 - selectedCard = true; // 선지 생성됨. }); } - List userSymptomChat = []; // 사용자의 채팅입력(증상) - final TextEditingController _chatControlloer = TextEditingController(); - - void finalResult() { - recieveResult = true; - } - - @override - Widget build(BuildContext context) { - return MaterialApp( - home: Scaffold( - body: Row( - children: [ - Expanded( - flex: 1, - child: Container( - decoration: const BoxDecoration( - color: Color(0xffEDEEFF), - ), - child: const Column(// 채팅 기록 추가할 수 있어야 함. - ), - ), - ), - Expanded( - flex: 4, - child: Container( - decoration: const BoxDecoration( - color: Colors.white, - image: DecorationImage( - image: AssetImage('assets/logo.png'), - colorFilter: - ColorFilter.mode(Colors.white24, BlendMode.dstATop), - fit: BoxFit.contain, - ), - ), - child: Padding( - padding: const EdgeInsets.all(20.0), - child: Column( - children: [ - Expanded( - flex: 1, // 채팅 입력하면 보여주는 구역. - child: Column( - children: [ - Expanded( - child: ListView.builder( - itemCount: userSymptomChat.length, - itemBuilder: (context, index) => Container( - color: const Color(0xffEDEEFF), - child: ListTile( - title: Text( - userSymptomChat[index], - textAlign: TextAlign.center, - style: const TextStyle( - fontSize: 25, - fontWeight: FontWeight.w600, - ), - ), - ), - ), - ), - ), - ], - ), - ), - const SizedBox( - height: 10, - ), - Column( - children: [ - if (selectedCard) // 선지가 생성됐을 때 출력. - const Text( - "아래 해당되는 항목을 눌러보세요!", - style: TextStyle( - fontSize: 18, fontWeight: FontWeight.w900), - ), - ], - ), - const SizedBox( - height: 10, - ), - Expanded( - // 선지 선택 카드 - flex: 8, - // Expanded 위젯을 사용하여 Column 내에서 GridView가 차지할 공간을 유동적으로 할당 - child: Column( - children: [ - if (!recieveResult) - Expanded( - // GridView를 스크롤 가능하게 하기 위해 Expanded로 감쌈. - child: GridView.builder( - gridDelegate: - const SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 2, // 한 줄에 카드 2개씩 배치 - childAspectRatio: 5 / 1, //item 의 가로 세로의 비율 - crossAxisSpacing: 25, // 카드 간 가로 간격 - mainAxisSpacing: 25, // 카드 간 세로 간격 - ), - itemCount: contents.length, - itemBuilder: (context, index) { - var entry = - contents.entries.elementAt(index); - return SelectCard( - content: entry.value, - isInverted: cardSelections[entry.key]!, - toggleInvert: () => - toggleCardState(entry.key), - ); - }, - ), - ) - else - Expanded( - child: ListView.builder( - itemCount: resultlength, - itemBuilder: (context, index) { - return ResultCard( - disease: diseases[index], - description: descriptions[index], - dept: departments[index], - n: index); - }, - ), - ), - ], - ), - ), - Expanded( - // 진단 받기 버튼 - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - //if (selectedCard) // 백이랑 합치고 주석 해제. - if (!recieveResult) // 최종 결과 안 나올 때까지 - (AnimatedSwitcher( - duration: const Duration(milliseconds: 500), - child: ElevatedButton( - style: ElevatedButton.styleFrom( - backgroundColor: Colors.black, - ), - key: nextKey, // 버튼이 변경될 때마다 새 키 사용 - onPressed: _sendResponse, - child: const Text( - '진단 받아보기 >', - style: TextStyle( - color: Colors.white, - fontWeight: FontWeight.w600, - ), - ), - ), - )), - ], - ), - ), - Expanded( - flex: 1, // 증상 채팅 입력바 - child: Center( - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Container( - color: const Color(0xffF1F1F1), - child: TextField( - controller: _chatControlloer, - onSubmitted: (_) => _sendMessage(), - decoration: InputDecoration( - labelText: '증상을 입력하세요.', - contentPadding: const EdgeInsets.symmetric( - horizontal: 20.0), - suffixIcon: IconButton( - icon: const Icon(Icons.send), - onPressed: _sendMessage, - ), - ), - ), - ), - ), - ), - ), // 여기에 다른 위젯 추가 가능 - ], - ), - ), - ), - ), - ], - ), - ), - ); - } - - int resultlength = 0; - List diseases = []; - List departments = []; - List descriptions = []; - - // 백에 전송하는 함수 호출. + // 선택한 선지 백에 전송하는 함수 호출. _sendResponse() async { + setState(() { + isLoading = true; // 로딩 상태 활성화 + }); + ResultData? resultData = await responseQuestion(); if (resultData != null) { @@ -359,10 +189,13 @@ class _GptPageState extends State { } } - resultlength = diseases.length; + setState(() { + resultlength = diseases.length; + isLoading = false; // 로딩 상태 비활성화 + }); } -// 질문 선택 결과 백에 전송. + // 질문 선택 결과 백에 전송. Future responseQuestion() async { // SelectCard에서 가져온 선택값 @@ -370,8 +203,7 @@ class _GptPageState extends State { print(cardSelections .map((key, value) => MapEntry(key, value ? 'yes' : 'no'))); http.Response response = await http.post( - Uri.parse( - 'https://port-0-apayo-rm6l2llvw7woh4.sel5.cloudtype.app/secondary_disease_prediction/'), + Uri.parse('http://52.79.91.82/secondary_disease_prediction/'), headers: {'Content-Type': 'application/json'}, body: json.encode({ 'session_id': SessionID, // 세션 ID 전송 @@ -382,7 +214,6 @@ class _GptPageState extends State { // JSON 응답 객체에서 'response' 키를 통해 질병 정보를 추출 if (response.statusCode == 200) { - recieveResult = true; var jsonResponse = jsonDecode(utf8.decode(response.bodyBytes)); // response 객체에서 각 질병 정보를 추출 @@ -398,7 +229,8 @@ class _GptPageState extends State { // 응답 데이터를 사용하여 ResultData 객체를 생성 var resultData = ResultData(diseaseInfo: diseaseInfoList); - + recieveResult = true; + attempt = true; return resultData; } else { print('Request failed with status: ${response.statusCode}.'); @@ -408,4 +240,215 @@ class _GptPageState extends State { } return null; } + + // UI build + @override + Widget build(BuildContext context) { + return MaterialApp( + home: Scaffold( + body: Stack( + children: [ + Row( + children: [ + Expanded( + flex: 1, + child: Container( + decoration: const BoxDecoration( + color: Color(0xffEDEEFF), + ), + child: const Column(// 채팅 기록 추가할 수 있어야 함. + ), + ), + ), + Expanded( + flex: 4, + child: Container( + decoration: const BoxDecoration( + color: Colors.white, + image: DecorationImage( + image: AssetImage('assets/logo.png'), + colorFilter: + ColorFilter.mode(Colors.white24, BlendMode.dstATop), + fit: BoxFit.contain, + ), + ), + child: Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + children: [ + Expanded( + flex: 1, // 채팅 입력하면 보여주는 구역. + child: Column( + children: [ + Container( + // 화면크기에 맞게 container 조정. + width: MediaQuery.of(context).size.width, + decoration: BoxDecoration( + color: const Color(0xffEDEEFF), + borderRadius: BorderRadius.circular(15.0), + ), + child: Text( + text, + textAlign: TextAlign.center, + style: const TextStyle( + fontSize: 25, + fontWeight: FontWeight.w600), + ), + ) + ], + ), + ), + const SizedBox( + height: 5, + ), + Column( + children: [ + if (selectedCard && + !recieveResult) // 선지가 생성됐을 때 출력. + const Text( + "아래 해당되는 항목을 눌러보세요!", + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.w900), + ), + ], + ), + const SizedBox( + height: 10, + ), + Expanded( + flex: 8, + // Expanded 위젯을 사용하여 Column 내에서 GridView가 차지할 공간을 유동적으로 할당 + child: Column( + children: [ + if (!recieveResult) // 선지 선택 카드 + Expanded( + // GridView를 스크롤 가능하게 하기 위해 Expanded로 감쌈. + child: GridView.builder( + gridDelegate: + const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 2, // 한 줄에 카드 2개씩 배치 + childAspectRatio: + 8 / 3, //item 의 가로 세로의 비율 + crossAxisSpacing: 20, // 카드 간 가로 간격 + mainAxisSpacing: 20, // 카드 간 세로 간격 + ), + itemCount: contents.length, + itemBuilder: (context, index) { + var entry = + contents.entries.elementAt(index); + return SelectCard( + content: entry.value, + isInverted: + cardSelections[entry.key]!, + toggleInvert: () => + toggleCardState(entry.key), + ); + }, + ), + ) + else // 결과 카드 + Expanded( + child: ListView.builder( + itemCount: resultlength, + itemBuilder: (context, index) { + return ResultCard( + disease: diseases[index], + description: descriptions[index], + dept: departments[index], + n: index); + }, + ), + ), + ], + ), + ), + Expanded( + // 진단 받기 버튼 + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + if (!recieveResult && + selectedCard) // 최종 결과 나오지 않고, 선지가 생성됐을 때 진단받기 버튼 생성. + (AnimatedSwitcher( + duration: const Duration(milliseconds: 500), + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: Colors.black, + ), + key: nextKey, // 버튼이 변경될 때마다 새 키 사용 + onPressed: _sendResponse, + child: const Text( + '진단 받아보기 >', + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.w600, + ), + ), + ), + )), + ], + ), + ), + Expanded( + flex: 1, // 증상 채팅 입력바 + child: Center( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Container( + color: const Color(0xffF1F1F1), + child: TextField( + controller: _chatControlloer, + onSubmitted: (_) => + attempt // 이미 시도하여 new chat을 해야하는 경우. + ? PopupMessage( + '\'new chat\'버튼을 클릭하여 새로운 채팅을 시작해주세요!') + .showPopup(context) + : _sendMessage(), // 증상 입력 시도를 한 번 하면 새로운 채팅 만들라는 메시지 출력 + decoration: InputDecoration( + labelText: '증상을 입력하세요.', + contentPadding: + const EdgeInsets.symmetric( + horizontal: 20.0), + suffixIcon: IconButton( + icon: const Icon(Icons.send), + onPressed: () => + attempt // 이미 시도하여 new chat을 해야하는 경우. + ? PopupMessage( + '\'new chat\' 버튼을 클릭하여 새로운 채팅을 시작해주세요!') + .showPopup(context) + : _sendMessage(), + ), + ), + ), + ), + ), + ), + ), // 여기에 다른 위젯 추가 가능 + ], + ), + ), + ), + ), + ], + ), + if (isLoading) // 로딩 상태일 때 CircularProgressIndicator 표시 + Offstage( + offstage: !isLoading, + child: const Stack( + children: [ + ModalBarrier(dismissible: false, color: Colors.black45), + Center( + child: CircularProgressIndicator( + valueColor: AlwaysStoppedAnimation(Colors.white), + ), + ), + ], + ), + ), + ], + ), + ), + ); + } } diff --git a/frontend/lib/home_page_reactive/homepage_desktop.dart b/frontend/lib/home_page_reactive/homepage_desktop.dart index a33697f..5ff53e2 100644 --- a/frontend/lib/home_page_reactive/homepage_desktop.dart +++ b/frontend/lib/home_page_reactive/homepage_desktop.dart @@ -25,7 +25,7 @@ class DesktopLayout extends StatelessWidget { // 왼쪽부분 Expanded( child: Container( - padding: const EdgeInsets.all(20.0), + padding: const EdgeInsets.all(30.0), child: const Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, //정렬 @@ -37,10 +37,13 @@ class DesktopLayout extends StatelessWidget { height: 250, ), Padding( - padding: const EdgeInsets.only(left: 20.0), + padding: EdgeInsets.only(left: 20.0), child: Text( 'APAYO 에게 어디가 어떻게 아픈지 말해보세요! \n몸에 문제가 생긴건 아닌지 불안하신가요? APAYO가 찾아볼게요!', - style: TextStyle(fontSize: 14, color: Colors.white), + style: TextStyle( + fontSize: 15, + color: Colors.white, + fontWeight: FontWeight.w200), textAlign: TextAlign.left, ), ), @@ -58,11 +61,11 @@ class DesktopLayout extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, children: [ - SizedBox(height: 100), + SizedBox(height: 50), ElevatedButton( onPressed: () => _onLogInPressed(context), style: ElevatedButton.styleFrom( - backgroundColor: const Color.fromARGB(198, 111, 128, 255), + backgroundColor: const Color.fromARGB(255, 55, 207, 207), minimumSize: const Size(120, 50), padding: const EdgeInsets.symmetric(horizontal: 20), foregroundColor: Colors.white, @@ -73,7 +76,7 @@ class DesktopLayout extends StatelessWidget { ElevatedButton( onPressed: () => _onSignUpPressed(context), style: ElevatedButton.styleFrom( - backgroundColor: const Color.fromARGB(198, 111, 128, 255), + backgroundColor: const Color.fromARGB(255, 55, 207, 207), minimumSize: const Size(120, 50), padding: const EdgeInsets.symmetric(horizontal: 20), foregroundColor: Colors.white, diff --git a/frontend/lib/home_page_reactive/homepage_mobile.dart b/frontend/lib/home_page_reactive/homepage_mobile.dart index fd497fb..71acca1 100644 --- a/frontend/lib/home_page_reactive/homepage_mobile.dart +++ b/frontend/lib/home_page_reactive/homepage_mobile.dart @@ -24,19 +24,20 @@ class MobileLayout extends StatelessWidget { children: [ const Image( image: AssetImage('assets/logo.png'), - width: 400, + width: 350, height: 200, ), const Text( 'APAYO 에게 어디가 어떻게 아픈지 말해보세요! \n몸에 문제가 생긴건 아닌지 불안하신가요? APAYO가 찾아볼게요!', - style: TextStyle(fontSize: 12, color: Colors.white), + style: TextStyle( + fontSize: 12, color: Colors.white, fontWeight: FontWeight.w100), textAlign: TextAlign.center, ), - const SizedBox(height: 40), + const SizedBox(height: 30), ElevatedButton( onPressed: () => _onLogInPressed(context), style: ElevatedButton.styleFrom( - backgroundColor: const Color.fromARGB(198, 111, 128, 255), + backgroundColor: const Color.fromARGB(255, 55, 207, 207), minimumSize: const Size(120, 50), padding: const EdgeInsets.symmetric(horizontal: 20), foregroundColor: Colors.white, // 텍스트 색상 설정 @@ -46,7 +47,7 @@ class MobileLayout extends StatelessWidget { ElevatedButton( onPressed: () => _onSignUpPressed, style: ElevatedButton.styleFrom( - backgroundColor: const Color.fromARGB(198, 111, 128, 255), + backgroundColor: const Color.fromARGB(255, 55, 207, 207), minimumSize: const Size(120, 50), padding: const EdgeInsets.symmetric(horizontal: 20), foregroundColor: Colors.white, // 텍스트 색상 설정 diff --git a/frontend/lib/login_page.dart b/frontend/lib/login_page.dart index 6cd2df9..49ed8e6 100644 --- a/frontend/lib/login_page.dart +++ b/frontend/lib/login_page.dart @@ -1,12 +1,49 @@ import 'package:flutter/material.dart'; import 'package:frontend/gptchat.dart'; - - import 'package:frontend/signUp_page.dart'; +import 'package:http/http.dart' as http; +import 'dart:convert'; class LoginPage extends StatelessWidget { - const LoginPage({Key? key}) : super(key: key); - + LoginPage({super.key}); + final TextEditingController _userNameController = TextEditingController(); + final TextEditingController _passwordController = TextEditingController(); + + void loginUser(BuildContext context) async { + String userName = _userNameController.text; + String password = _passwordController.text; + + // 로그인 요청을 보낼 URL + Uri url = Uri.parse('http://127.0.0.1:8000/primary_disease_prediction/'); + + // 요청 본문에 포함될 데이터 + Map requestBody = { + 'userName': userName, + 'password': password, + }; + try { + final response = await http.post( + url, + body: jsonEncode(requestBody), + headers: {'Content-Type': 'application/json'}, + ); + if (response.statusCode == 200) { + Navigator.pushReplacement( + context, MaterialPageRoute(builder: (context) => const GptPage())); + } else { + // 로그인 실패 + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('로그인에 실패했습니다.')), + ); + } + } catch (e) { + // 요청 실패 + print('Error during login: $e'); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('로그인에 오류가 발생했습니다. 다시 시도해주세요.')), + ); + } + } @override Widget build(BuildContext context) { @@ -15,8 +52,9 @@ class LoginPage extends StatelessWidget { // 화면 크기에 따라 폰트 크기와 패딩을 동적으로 설정 - double fontSize = screenWidth < 800 ? 18 : 18; - double paddingSize = screenWidth < 800 ? 20 : 50; + double fontSize = screenWidth < 850 ? 18 : 18; + double paddingSize = screenWidth < 850 ? 20 : 50; + double formFieldWidth = screenWidth < 800 ? screenWidth * 0.8 : screenWidth * 0.3; @@ -31,7 +69,6 @@ class LoginPage extends StatelessWidget { fontSize: 10, fontWeight: FontWeight.bold, ), - ), SizedBox(width: 10), Text( @@ -100,7 +137,7 @@ class LoginPage extends StatelessWidget { obscureText: true, // 비번 가리기 ), // 로그인 버튼 ******************************* - SizedBox(height: screenHeight * 0.06), + SizedBox(height: screenHeight * 0.07), SizedBox( width: formFieldWidth, child: ElevatedButton( @@ -140,8 +177,8 @@ class LoginPage extends StatelessWidget { TextButton( onPressed: () {}, style: ButtonStyle( - overlayColor: MaterialStateProperty.all( - Colors.transparent), + overlayColor: + WidgetStateProperty.all(Colors.transparent), ), child: const Text( "Click here to read APAYO's policy", @@ -154,17 +191,16 @@ class LoginPage extends StatelessWidget { // 회원가입 버튼 ****************************** SizedBox(height: screenHeight * 0.03), - Container( + SizedBox( width: formFieldWidth, child: OutlinedButton( onPressed: () { Navigator.push( context, MaterialPageRoute( - builder: (context) => const SignUpPage(), + builder: (context) => SignUpPage(), ), ); - }, style: ElevatedButton.styleFrom( backgroundColor: Colors.white, @@ -194,7 +230,7 @@ class LoginPage extends StatelessWidget { ), ), SizedBox(height: screenHeight * 0.9), // 이미지 상단 간격 조정 - MediaQuery.of(context).size.width >= 600 + MediaQuery.of(context).size.width >= 850 ? Expanded( child: Center( child: Visibility( diff --git a/frontend/lib/signUp_page.dart b/frontend/lib/signUp_page.dart index c53a132..3305a38 100644 --- a/frontend/lib/signUp_page.dart +++ b/frontend/lib/signUp_page.dart @@ -1,24 +1,93 @@ import 'package:flutter/material.dart'; import 'package:frontend/login_page.dart'; +import 'dart:convert'; +import 'package:http/http.dart' as http; class SignUpPage extends StatelessWidget { - const SignUpPage({Key? key}) : super(key: key); + //stateLessWidegt 확장 + SignUpPage({super.key}); + + //컨트롤러, 변수 선언 + final TextEditingController _userNameController = TextEditingController(); + final TextEditingController _passwordController = TextEditingController(); + final TextEditingController _ageController = TextEditingController(); + String _selectedGender = ''; + + // Sign Up 누르면 실행 + void signUp(BuildContext context) async { + String userName = _userNameController.text; //사용자 입력사항 컨트롤러변수에 저장 + String password = _passwordController.text; + int age = int.tryParse(_ageController.text) ?? 0; + + if (userName.isNotEmpty && + password.isNotEmpty && + age > 0 && + _selectedGender != '') { + // 서버 요청 대기 + Uri url = Uri.parse('http://127.0.0.1:8000/primary_disease_prediction/'); + + //요청 본문 JSON 형식으로 + Map requestBody = { + 'userName': userName, + 'password': password, + 'age': age, + 'gender': _selectedGender, + }; + + try { + //서버에 post 요청함 + final response = await http.post( + url, + body: jsonEncode(requestBody), + headers: {'Content-Type': 'application/json'}, + ); + //회원가입 성공하면 로그인 페이지 이동 + if (response.statusCode == 200) { + Navigator.pushReplacement( + //화면 전환 + context, //이전 화면의 context전달해서 화면 교체 + MaterialPageRoute(builder: (context) => LoginPage()), //새로운 빌더함수 전달 + ); + } else { + //회원가입 실패 + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('회원가입에 실패했습니다.')), + ); + } + } catch (e) { + print('Error during sign up: $e'); + if (e.toString().contains('Duplicate entry')) { + // 이미 사용 중인 사용자 이름인 경우 에러 메시지 표시 + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('이미 사용 중인 사용자 이름입니다. 다른 이름을 선택해주세요.')), + ); + } + } + } else { + //필수 정보 입력 안했을때 + ScaffoldMessenger.of(context) + .showSnackBar(const SnackBar(content: Text('모든 필수 정보를 입력해주세요.'))); + } + } @override Widget build(BuildContext context) { - double screenWidth = MediaQuery.of(context).size.width; //넓이 - double screenHeight = MediaQuery.of(context).size.height; //높이 가져옴 + //현재 화면 넓이 높이 가져옴 + double screenWidth = MediaQuery.of(context).size.width; + double screenHeight = MediaQuery.of(context).size.height; // 화면 크기에 따라 폰트 크기와 패딩을 동적으로 설정 - double fontSize = screenWidth < 800 ? 12 : 18; - double paddingSize = screenWidth < 800 ? 20 : 50; + double fontSize = screenWidth < 850 ? 12 : 18; + double paddingSize = screenWidth < 850 ? 20 : 50; double formFieldWidth = screenWidth < 600 ? screenWidth * 0.8 : screenWidth * 0.3; return Scaffold( appBar: AppBar( + // 앱바 설정 title: const Row( children: [ + // 앱바에 표시될 요소들 Text( 'KIM MINSEO', style: TextStyle( @@ -51,17 +120,23 @@ class SignUpPage extends StatelessWidget { body: SingleChildScrollView( // SingleChildScrollView 추가 child: Row( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, //가운데 정렬 + crossAxisAlignment: CrossAxisAlignment.center, //세로 가운데 정렬 children: [ Expanded( + // 화면 나머지 공간 차지 child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ SizedBox( //width: formFieldWidth, // 폼 필드 동적 조절 child: Container( - padding: EdgeInsets.all(paddingSize * 1.9), // 패딩 동적 조절 + padding: EdgeInsets.only( + top: paddingSize * 1, + left: paddingSize * 3, + bottom: paddingSize * 3, + right: paddingSize * 3, + ), // 패딩 동적 조절 decoration: const BoxDecoration( color: Colors.white, ), @@ -73,7 +148,7 @@ class SignUpPage extends StatelessWidget { Text( "SignUp APAYO", style: TextStyle( - fontSize: fontSize * 1.3, color: Colors.black), + fontSize: fontSize * 1.5, color: Colors.black), ), //******************************************* Text( @@ -84,8 +159,9 @@ class SignUpPage extends StatelessWidget { fontWeight: FontWeight.w100), ), //유저이름 ********************************* - SizedBox(height: screenHeight * 0.02), + SizedBox(height: screenHeight * 0.03), TextFormField( + controller: _userNameController, // 컨트롤러 설정 decoration: const InputDecoration( labelText: 'User Name', ), @@ -93,54 +169,55 @@ class SignUpPage extends StatelessWidget { ), //비번 ************************************* - SizedBox(height: screenHeight * 0.02), + SizedBox(height: screenHeight * 0.03), TextFormField( + controller: _passwordController, // 컨트롤러 설정 decoration: const InputDecoration(labelText: 'Password'), obscureText: true, // 비번 가리기 ), - //생일*************************************** - SizedBox(height: screenHeight * 0.02), + //나이************************************** + SizedBox(height: screenHeight * 0.03), TextFormField( + controller: _ageController, // 컨트롤러 설정 decoration: const InputDecoration( labelText: 'Age', + //hintText: '숫자만 입력해주세요', ), + keyboardType: TextInputType.number, //숫자만 입력할 수 있도록함 ), //성별*********************************** - SizedBox(height: screenHeight * 0.02), + SizedBox(height: screenHeight * 0.03), + // 사용자가 선택한 성별을 저장하는 변수 DropdownButtonFormField( - value: 'Male', - onChanged: (String? newValue) {}, - items: ['Male', 'Female'] + value: _selectedGender, // 사용자가 선택한 값 + onChanged: (String? newValue) { + // 새로운 값 선택할때마다 호출 + _selectedGender = newValue!; // 사용자가 선택한 성별 변수에 저장 + }, + items: ['', 'Male', 'Female'] // 기본값 추가 .map>((String value) { return DropdownMenuItem( value: value, - child: Text(value, - style: TextStyle(fontSize: fontSize * 0.7)), + child: Text( + value, + style: TextStyle(fontSize: fontSize * 0.7), + ), ); }).toList(), decoration: const InputDecoration( labelText: 'Gender', ), ), - const SizedBox( - height: 20, - ), // 회원가입 버튼 ******************************* - SizedBox(height: screenHeight * 0.02), + SizedBox(height: screenHeight * 0.03), SizedBox( width: formFieldWidth * 0.5, child: ElevatedButton( - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => const LoginPage()), - ); - }, + onPressed: () => signUp(context), // signUp 함수 호출 style: ElevatedButton.styleFrom( backgroundColor: const Color.fromARGB(255, 55, 207, 207), @@ -155,8 +232,9 @@ class SignUpPage extends StatelessWidget { ), ), ), + //read policy*************************************** - SizedBox(height: screenHeight * 0.02), + SizedBox(height: screenHeight * 0.03), TextButton( onPressed: () {}, style: ButtonStyle( @@ -179,7 +257,7 @@ class SignUpPage extends StatelessWidget { ), ), //SizedBox(height: screenHeight), // 이미지 상단 간격 조정 - MediaQuery.of(context).size.width >= 600 + MediaQuery.of(context).size.width >= 850 ? Expanded( child: Center( child: Visibility( diff --git a/frontend/lib/widgets/popup.dart b/frontend/lib/widgets/popup.dart new file mode 100644 index 0000000..c1bb72f --- /dev/null +++ b/frontend/lib/widgets/popup.dart @@ -0,0 +1,38 @@ +import 'package:flutter/material.dart'; + +class PopupMessage { + final String noti; + + PopupMessage(this.noti); + + void showPopup(BuildContext context) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text( + 'Notice', + style: TextStyle( + fontSize: 15, + ), + ), + content: Text( + noti, + style: const TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + ), + ), + actions: [ + TextButton( + onPressed: () { + Navigator.of(context).pop(); + }, + child: const Text('Close'), + ), + ], + ); + }, + ); + } +} diff --git a/frontend/lib/widgets/result_card.dart b/frontend/lib/widgets/result_card.dart index 0f5d781..7c9e90f 100644 --- a/frontend/lib/widgets/result_card.dart +++ b/frontend/lib/widgets/result_card.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:auto_size_text/auto_size_text.dart'; class ResultCard extends StatelessWidget { final String disease, description, dept; @@ -21,22 +22,20 @@ class ResultCard extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Row( - children: [ - Text( - ' 진단 결과를 알려드릴게요!', - style: TextStyle( - fontSize: 18, - fontWeight: FontWeight.bold, - ), - ), - Text( - ' (병원에 방문하실 때 참고해보세요)', - style: TextStyle( - fontSize: 18, - ), - ), - ], + AutoSizeText( + ' 진단 결과를 알려드릴게요!', + maxFontSize: 18, + style: TextStyle( + fontSize: MediaQuery.of(context).size.width * 0.03, + fontWeight: FontWeight.bold, + ), + ), + AutoSizeText( + ' \n(병원에 방문하실 때 참고해보세요)', + maxFontSize: 18, + style: TextStyle( + fontSize: MediaQuery.of(context).size.width * 0.02, + ), ), const SizedBox( height: 10, @@ -54,22 +53,25 @@ class ResultCard extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, // 결과 children: [ - Text( - //'예상 질병 $n 순위 : $disease\n', + AutoSizeText( '예상 질병이나 증상 : $disease\n', - style: const TextStyle( - fontSize: 20, + maxFontSize: 20, + style: TextStyle( fontWeight: FontWeight.w900, + fontSize: MediaQuery.of(context).size.width * 0.03, ), ), - Text( + AutoSizeText( '$description\n', - style: const TextStyle(fontSize: 18), + maxFontSize: 18, + style: TextStyle( + fontSize: MediaQuery.of(context).size.width * 0.02), ), - Text( + AutoSizeText( '추천 진료과 : $dept', - style: const TextStyle( - fontSize: 18, + maxFontSize: 18, + style: TextStyle( + fontSize: MediaQuery.of(context).size.width * 0.02, fontWeight: FontWeight.w700, ), ) diff --git a/frontend/lib/widgets/select_card.dart b/frontend/lib/widgets/select_card.dart index c7df73c..25c08c0 100644 --- a/frontend/lib/widgets/select_card.dart +++ b/frontend/lib/widgets/select_card.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:auto_size_text/auto_size_text.dart'; class SelectCard extends StatefulWidget { final String content; @@ -25,33 +26,31 @@ class SelectCardState extends State { return GestureDetector( onTap: widget.toggleInvert, // 카드 탭 시 _toggleInvert 함수 호출 child: Container( - height: 50, decoration: BoxDecoration( // 카드의 색상은 isInverted가 true일 때(마우스 선택)는 연두, 아니면 _blackColor 사용 color: widget.isInverted ? _invertedColor : greybackground, // 카드 모서리를 둥글게 처리 - borderRadius: BorderRadius.circular(25), + borderRadius: + BorderRadius.circular(MediaQuery.of(context).size.width * 0.03), ), - child: Padding( - // 카드 내부의 패딩 설정 - padding: const EdgeInsets.all(30), - child: Column( - // 세로축 기준으로 텍스트를 왼쪽 정렬 - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - // 항목 내용 표시 - Text( - widget.content, - style: const TextStyle( - // 스타일 조건부 적용 - color: Colors.black, - fontSize: 20, - fontWeight: FontWeight.bold, - ), + child: Column( + // 세로축 기준으로 텍스트를 왼쪽 정렬 + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + // 항목 내용 표시 + AutoSizeText( + widget.content, + maxFontSize: 20, + minFontSize: 5, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: MediaQuery.of(context).size.width * 0.03, + color: Colors.black, + fontWeight: FontWeight.bold, ), - ], - ), + ), + ], ), ), ); diff --git a/frontend/pubspec.yaml b/frontend/pubspec.yaml index f3a4c44..c9f5a89 100644 --- a/frontend/pubspec.yaml +++ b/frontend/pubspec.yaml @@ -2,7 +2,7 @@ name: frontend description: "A new Flutter project." # The following line prevents the package from being accidentally published to # pub.dev using `flutter pub publish`. This is preferred for private packages. -publish_to: 'none' # Remove this line if you wish to publish to pub.dev +# publish_to: 'none' # Remove this line if you wish to publish to pub.dev # The following defines the version and build number for your application. # A version number is three numbers separated by dots, like 1.2.43 @@ -30,6 +30,9 @@ environment: dependencies: flutter: sdk: flutter + auto_size_text: ^3.0.0 + flutter_screenutil: ^5.0.0+2 + http: ^1.2.1 # The following adds the Cupertino Icons font to your application.