程式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | import random import ollama # 模擬患者數據收集 def get_patient_data(): data = { "heart_rate": random.randint(60, 100), # 心率 (次/分鐘) "body_temperature": round(random.uniform(36.0, 40.0), 1), # 體溫 (°C) "blood_pressure": f"{random.randint(90, 140)}/{random.randint(60, 90)}", # 血壓 (收縮壓/舒張壓) "symptoms": random.choice(["咳嗽", "發燒", "頭痛", "肌肉疼痛", "喉嚨痛"]) } print(f"收集的患者數據:{data}") return data # 將患者數據轉為診斷描述 def prepare_diagnostic_prompt(patient_data): prompt = ( f"以下是患者的生理數據與症狀:\n" f"- 心率:{patient_data['heart_rate']} 次/分鐘\n" f"- 體溫:{patient_data['body_temperature']} °C\n" f"- 血壓:{patient_data['blood_pressure']}\n" f"- 症狀:{patient_data['symptoms']}\n" f"請根據以上數據提供可能的診斷建議,並協助醫生進一步確診。" ) print(f"生成的診斷請求描述:\n{prompt}") return prompt # 與 Ollama 交互進行診斷分析 def analyze_diagnosis_with_ollama(question_1, ans_1, question_2): try: # 使用 Ollama 進行互動分析 response = ollama.chat( model="llama3.2", messages=[ {"role": "user", "content": question_1}, {"role": "assistant", "content": ans_1}, {"role": "user", "content": question_2} ] ) return response["message"]["content"] except Exception as e: print(f"Ollama 請求失敗:{e}") return "抱歉,目前無法處理您的請求。" # 主程序 if __name__ == "__main__": print("啟動智能診斷系統...") # 獲取患者數據 patient_data = get_patient_data() # 問題 1:基本醫療問題 question_1 = "什麼是正常的心率與體溫範圍?" ans_1 = "正常心率範圍為 60-100 次/分鐘,正常體溫範圍為 36.1°C 至 37.2°C。" # 問題 2:診斷描述 question_2 = prepare_diagnostic_prompt(patient_data) # 與 Ollama 交互,獲取診斷結果 diagnostic_result = analyze_diagnosis_with_ollama(question_1, ans_1, question_2) # 顯示結果 print("\nOllama 的診斷建議與分析:") print(diagnostic_result) # 保存結果至檔案(可選) with open("diagnostic_analysis.txt", "w", encoding="utf-8") as file: file.write("智能診斷結果分析:\n") file.write(diagnostic_result) |
第一次執行結果:
啟動智能診斷系統...
收集的患者數據:{'heart_rate': 79, 'body_temperature': 39.1, 'blood_pressure': '99/74', 'symptoms': '發燒'}
生成的診斷請求描述:
以下是患者的生理數據與症狀:
- 心率:79 次/分鐘
- 體溫:39.1 °C
- 血壓:99/74
- 症狀:發燒
請根據以上數據提供可能的診斷建議,並協助醫生進一步確診。
Ollama 的診斷建議與分析:
基於患者的生理數據與症狀,我們可以做出以下初步分析:
1. 心率正常(79 次/分鐘),不太提示心臟問題。
2. 體溫升高到 39.1 °C,明顯提示發燒。可能是感染性疾病,例如呼吸道感染、肺炎或其他細菌感染。
3. 血壓正常(99/74),不太提示高血壓或低血壓。
根據以上數據,我們可以提出以下幾個可能的診斷:
* 呼吸道感染 (e.g. 關節炎、鼻窦感染)
* 肺炎
* other bacterial infections (e.g. 腹瀉、食道炎)
為了進一步確診,我們建議醫生進行以下檢查:
* 病毒和細菌培養(e.g. 血液培養、痰液培養)
* 疫苗接種史檢查
* 尿液檢查
* 肺部X光片
醫生可以根據檢查結果進行進一步的診斷和治療方案。
第二次執行結果:
啟動智能診斷系統...
收集的患者數據:{'heart_rate': 61, 'body_temperature': 39.2, 'blood_pressure': '113/75', 'symptoms': '發燒'}
生成的診斷請求描述:
以下是患者的生理數據與症狀:
- 心率:61 次/分鐘
- 體溫:39.2 °C
- 血壓:113/75
- 症狀:發燒
請根據以上數據提供可能的診斷建議,並協助醫生進一步確診。
Ollama 的診斷建議與分析:
哼哮!我們需要幫助這位患者出來!
根據給出的數據,我們可以觀察到:
* 心率正常(61次/分鐘)
* 體溫升高(39.2 °C),是發燒的跡象
* 血壓正常(113/75)
這些數據指向了一個可能的感染性疾病,例如肺炎、胰腺炎或急性感染等。
我們可以幫助醫生進一步確診:
1. **查找發燒原因**:需要進行更多檢查,如血液培養、胸部X光、腹部超音波等,以瞭解發燒的成因。
2. **評估症狀**:需要了解患者的症狀,例如是否有呼吸困難、嘔吐、頭痛或高溫持續時間等。
3. **檢查其他指標**:需要進行血液檢查,例如白細胞計數、 血紅蛋白、電解質等,以瞭解患者的免疫狀態和代謝狀況。
醫生的下一步可能是:
* 宇通會議
* 血液培養
* 胸部X光
* 腹部超音波
我們需要幫助醫生繼續進一步確診,並協助治療這位患者!
還有任何其他問題嗎?
沒有留言:
張貼留言