WXL
3 天以前 2cc85c64f1c64a2dbaeae276a3e2ca8420de76b7
1
import{_ as e,r as a,T as s,o as n,O as t,y as l,z as i,A as c,c as o,w as u,aE as d,i as p,a as r,e as m,b as g,f as v,h as f,F as k,B as h,K as _,L as y,aF as $,k as q,S as R,N as C,t as b,d as j,m as w}from"./index-DF3kK8Jo.js";import{_ as T}from"./uni-popup.Df-Bes22.js";const x=e({__name:"ai",setup(e){var x;const I=a((null==(x=s("userInfo"))?void 0:x.avatar)||"/static/avatar/default.png"),F=a(""),z=a([]),A=a(0),S=a(null),V=()=>{_({title:"加载中..."}),setTimeout(()=>{z.value=[{type:"user",content:"之前的咨询记录1"},{type:"ai",content:"历史回复1",quickReplies:["追问1","追问2"]},...z.value],y()},1e3)},B=a(["最近感冒了,该怎么办?","头痛是什么原因?","如何缓解失眠?"]),E={record:{content:e=>`\n根据您的病历,我的分析如下:\n\n1. 基本情况\n   医院:${e.hospital}\n   科室:${e.department}\n   诊断:${e.diagnosis}\n\n2. 病情分析\n   - 这是一个${e.diagnosis}的诊断\n   - 这类疾病通常属于${e.department}常见病症\n   - 需要重点关注的症状包括...\n\n3. 建议\n   - 建议按医嘱完成治疗疗程\n   - 注意观察以下症状...\n   - 如有以下情况需及时就医...\n\n4. 预防措施\n   - 保持良好的生活习惯\n   - 避免接触可能的诱发因素\n   - 定期进行相关检查\n\n需要了解更多详细信息吗?\n    `,quickReplies:["这个病严重吗?","需要注意什么?","多久能康复?","是否需要复查?"]},report:{content:e=>`\n根据您的检查报告,我的分析如下:\n\n1. 检查概况\n   项目:${e.name}\n   时间:${e.time}\n   结果:${"normal"===e.status?"正常":"异常"}\n\n2. 详细分析\n   ${"normal"===e.status?"\n     • 您的检查结果在正常范围内\n     • 各项指标符合健康标准\n     • 建议继续保持良好的生活习惯\n   ":"\n     • 检测到部分指标异常\n     • 建议及时就医进行进一步检查\n     • 需要注意观察相关症状变化\n   "}\n\n3. 建议\n   - ${"normal"===e.status?"定期进行健康检查,保持健康的生活方式。":"建议您尽快预约相关科室进行就医。"}\n   - 保持良好的作息和饮食习惯\n   - 适量运动,增强体质\n\n4. 后续跟进\n   ${"normal"===e.status?"建议您按照常规体检周期进行复查。":"建议您在就医后根据医生建议安排复查时间。"}\n\n需要了解更多信息或预约就医吗?`,quickReplies:["如何预约复查?","需要挂什么科室?","这个结果代表什么?","建议就医吗?"]}},O=e=>{F.value=e,L()},D=[{keywords:["头痛","头晕"],content:"根据您描述的症状,可能的原因包括:\n1. 紧张性头痛\n2. 偏头痛\n3. 颈椎问题\n4. 眼疲劳\n\n建议:\n1. 保持良好的作息习惯\n2. 避免长时间用眼\n3. 适当运动放松\n4. 如果症状持续,建议到神经内科就诊",medicines:["布洛芬缓释胶囊","头痛宁片"],quickReplies:["症状多久需要就医?","如何预防头痛?","需要做什么检查?"]},{keywords:["感冒","发烧","咳嗽"],content:"您的症状疑似上呼吸道感染,建议:\n1. 多休息,保持充足睡眠\n2. 多饮温水\n3. 可以服用一些退烧止咳药物\n4. 如果发烧超过38.5℃或持续3天以上,建议及时就医",medicines:["布洛芬缓释胶囊","感冒灵颗粒","止咳糖浆"],quickReplies:["需要吃什么药?","多久能好?","如何预防传染?"]}],K={"布洛芬缓释胶囊":{id:1,name:"布洛芬缓释胶囊",image:"/static/medicines/buluofen.jpg",price:"39.8",desc:"用于缓解轻至中度疼痛,如头痛、关节痛、发热等",usage:"口服,一次1片,必要时每4-6小时重复一次",spec:"0.3g*12片/盒"},"感冒灵颗粒":{id:2,name:"感冒灵颗粒",image:"/static/medicines/ganmaoling.jpg",price:"28.5",desc:"用于感冒引起的头痛、发热、鼻塞、流涕、咽痛等",usage:"口服,一次1袋,一日3次",spec:"10g*10袋/盒"},"止咳糖浆":{id:3,name:"止咳糖浆",image:"/static/medicines/zhike.jpg",price:"35.6",desc:"用于各种原因引起的咳嗽症状",usage:"口服,一次10ml,一日3次",spec:"100ml/瓶"}},L=async()=>{if(!F.value||!F.value.trim())return;const e=F.value.trim();z.value.push({type:"user",content:e,avatar:I.value}),F.value="",await d(),M();let a=null;for(const n of D)if(n.keywords.some(a=>e.includes(a))){a=n;break}a||(a={content:"我理解您的问题。建议您:\n1. 注意观察症状变化\n2. 保持良好的作息习惯\n3. 如果症状持续,建议及时就医",medicines:[],quickReplies:["需要挂什么科?","如何预约就医?","还有其他建议吗?"]});const s=a.medicines.map(e=>K[e]).filter(Boolean);setTimeout(()=>{z.value.push({type:"ai",content:a.content+(s.length?"\n\n推荐药品:"+s.map(e=>`\n• ${e.name}\n  ${e.desc}\n  规格:${e.spec}\n  用法:${e.usage}`).join("\n"):""),medicines:s,quickReplies:a.quickReplies}),M()},1e3)},M=()=>{d(()=>{const e=$();e.select(".chat-content").boundingClientRect(),e.exec(e=>{e[0]&&(A.value=e[0].height)})})};n(()=>{var e;const a=t(),n=a[a.length-1],l=null==(e=n.$getOpenerEventChannel)?void 0:e.call(n);null==l||l.on("initMessage",e=>{e.message&&(z.value.push({type:"user",content:e.message}),setTimeout(()=>{const a=e.message.includes("病历"),s=a?E.record:E.report,n=e.message.match(/医院: (.+)\n科室: (.+)\n诊断: (.+)/)||e.message.match(/检查项目: (.+)\n检查时间: (.+)\n检查结果: (.+)/);if(n){const e=a?{hospital:n[1],department:n[2],diagnosis:n[3]}:{name:n[1],time:n[2],status:n[3]};z.value.push({type:"ai",content:s.content(e),quickReplies:s.quickReplies})}else z.value.push({type:"ai",content:"抱歉,我无法解析这些信息。请提供更多详细信息。",quickReplies:["重新描述","人工咨询"]});M()},1e3))});const i=s("selectedRecordId");i&&getRecordDetail(i).then(e=>{S.value=e,N()})});const N=()=>{S.value&&(z.value.push({type:"ai",content:"我已收到您的病历,正在为您分析...",avatar:"/static/avatar/ai.png"}),setTimeout(()=>{z.value.push({type:"ai",content:`根据您的病历显示:\n1. 主要症状: ${S.value.symptoms}\n2. 初步诊断: ${S.value.diagnosis}\n3. 建议治疗方案: ${S.value.treatment}\n\n请问您还有什么想要了解的吗?`,avatar:"/static/avatar/ai.png"})},1e3))},P=a([{id:1,hospital:"青岛中央医院",department:"呼吸内科",diagnosis:"上呼吸道感染",date:"2024-03-15",details:"发热38.5℃,咽痛,咳嗽..."},{id:2,hospital:"青岛仁伯爵综合医院",department:"消化内科",diagnosis:"慢性胃炎",date:"2024-02-20",details:"上腹部不适,嗳气..."}]),U={"上呼吸道感染":[{id:1,name:"布洛芬缓释胶囊",image:"/static/medicines/buluofen.jpg",price:"39.8",desc:"用于缓解感冒发热、咽喉疼痛"},{id:2,name:"板蓝根颗粒",image:"/static/medicines/banlangen.jpg",price:"28.5",desc:"清热解毒,凉血利咽"}],"慢性胃炎":[{id:3,name:"奥美拉唑肠溶胶囊",image:"/static/medicines/amzl.jpg",price:"45.6",desc:"用于胃酸过多、胃痛"}]},G=a(null),H=()=>{G.value.close()},J=e=>{z.value.push({type:"user",content:`请分析我的病历:\n医院:${e.hospital}\n科室:${e.department}\n诊断:${e.diagnosis}`,avatar:I.value}),setTimeout(()=>{const a=E.record.content({hospital:e.hospital,department:e.department,diagnosis:e.diagnosis,details:e.details}),s=U[e.diagnosis]||[];z.value.push({type:"ai",content:a,medicines:s,quickReplies:["需要复查吗?","如何预防复发?","建议就医吗?","查看其他病历"]}),M()},1e3)};return l(e=>{"record"===e.type&&(P.value.length>1?G.value.open():1===P.value.length&&J(P.value[0]))}),(e,a)=>{const s=q,n=p,t=w,l=R,d=C,_=i(c("uni-popup"),T);return r(),o(n,{class:"ai-consultation"},{default:u(()=>[m(l,{class:"chat-content","scroll-y":"","scroll-top":A.value,"scroll-with-animation":!0,onScrolltoupper:V},{default:u(()=>[m(n,{class:"welcome-message"},{default:u(()=>[m(s,{class:"title"},{default:u(()=>[g("AI智能问诊助手")]),_:1}),m(s,{class:"desc"},{default:u(()=>[g("您好,我是您的AI医疗助手,请详细描述您的症状。")]),_:1}),m(n,{class:"quick-questions"},{default:u(()=>[(r(!0),v(k,null,f(B.value,(e,a)=>(r(),o(s,{key:a,onClick:a=>O(e)},{default:u(()=>[g(b(e),1)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1}),m(n,{class:"message-list"},{default:u(()=>[(r(!0),v(k,null,f(z.value,(e,a)=>(r(),o(n,{key:a,class:h(["message-item",e.type])},{default:u(()=>["user"===e.type?(r(),v(k,{key:0},[m(n,{class:"message-content"},{default:u(()=>[g(b(e.content),1)]),_:2},1024),m(t,{src:I.value,class:"avatar",mode:"aspectFill"},null,8,["src"])],64)):(r(),v(k,{key:1},[m(t,{src:"/assets/ai-CgP9rpfp.png",class:"avatar",mode:"aspectFill"}),m(n,{class:"message-content"},{default:u(()=>[g(b(e.content)+" ",1),e.quickReplies?(r(),o(n,{key:0,class:"quick-replies"},{default:u(()=>[(r(!0),v(k,null,f(e.quickReplies,(e,a)=>(r(),o(s,{key:a,onClick:a=>O(e)},{default:u(()=>[g(b(e),1)]),_:2},1032,["onClick"]))),128))]),_:2},1024)):j("",!0)]),_:2},1024)],64))]),_:2},1032,["class"]))),128))]),_:1})]),_:1},8,["scroll-top"]),m(n,{class:"input-area"},{default:u(()=>[m(n,{class:"input-box"},{default:u(()=>[m(d,{modelValue:F.value,"onUpdate:modelValue":a[0]||(a[0]=e=>F.value=e),"adjust-position":!1,"show-confirm-bar":!1,"cursor-spacing":20,maxlength:-1,placeholder:"请输入问题",onConfirm:L},null,8,["modelValue"]),m(s,{class:h(["send-btn",{active:F.value&&F.value.trim()}]),onClick:L},{default:u(()=>[g("发送")]),_:1},8,["class"])]),_:1})]),_:1}),m(_,{ref_key:"recordSelector",ref:G,type:"bottom"},{default:u(()=>[m(n,{class:"record-selector"},{default:u(()=>[m(n,{class:"selector-header"},{default:u(()=>[m(s,{class:"title"},{default:u(()=>[g("选择要分析的病历")]),_:1}),m(s,{class:"close",onClick:H},{default:u(()=>[g("×")]),_:1})]),_:1}),m(n,{class:"record-list"},{default:u(()=>[(r(!0),v(k,null,f(P.value,(e,a)=>(r(),o(n,{class:"record-item",key:a,onClick:a=>(e=>{H(),J(e)})(e)},{default:u(()=>[m(n,{class:"info"},{default:u(()=>[m(s,{class:"hospital"},{default:u(()=>[g(b(e.hospital),1)]),_:2},1024),m(s,{class:"department"},{default:u(()=>[g(b(e.department),1)]),_:2},1024),m(s,{class:"date"},{default:u(()=>[g("就诊时间:"+b(e.date),1)]),_:2},1024)]),_:2},1024),m(s,{class:"diagnosis"},{default:u(()=>[g(b(e.diagnosis),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1})]),_:1},512)]),_:1})}}},[["__scopeId","data-v-02e320e0"]]);export{x as default};