3 lines
26 KiB
JavaScript
3 lines
26 KiB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-lCz8esob.js","assets/element-plus-B7Dx6hR2.js","assets/@vue/runtime-dom-CEiKlVMn.js","assets/lodash-D3kF6u-c.js","assets/@vue/runtime-core-tF_2qJHK.js","assets/@vue/reactivity-BmZ-20sQ.js","assets/@vue/shared-mAAVTE9n.js","assets/@element-plus/icons-vue-C25ce6PD.js","assets/lodash-es-C2A-Pj28.js","assets/@popperjs/core-C5az9QE8.js","assets/dayjs-DG77mNTn.js","assets/@ctrl/tinycolor-BuyEbX8F.js","assets/async-validator-CFA_igpM.js","assets/normalize-wheel-es-BQoi3Ox2.js","assets/element-plus-CIwPhgpL.css","assets/file-BCcpn2-e.js","assets/index-Bx_nF8uU.js","assets/jspdf-BsthCvR5.js","assets/@babel/runtime-BanGtE2-.js","assets/fflate-_ayOYiT1.js","assets/vue-router-BjeWxBI0.js","assets/pinia-CTWOnonq.js","assets/axios-C80V62Fs.js","assets/@vueuse/core-Da2f2eD_.js","assets/@vueuse/shared-Bl-RnC0s.js","assets/css-color-function-DI01JAaZ.js","assets/balanced-match-BdS7OldZ.js","assets/color-B2zxaWkI.js","assets/clone-DBZ6_OiU.js","assets/color-convert-OrFsTA_V.js","assets/color-name-Dju3oUBS.js","assets/color-string-pUQDDJII.js","assets/ms-CzQ2E3wO.js","assets/vue-clipboard3-DByT_rEQ.js","assets/clipboard-CHgxszqY.js","assets/echarts-yVHyDRAS.js","assets/tslib-BDyQ-Jie.js","assets/zrender-C0YiHEZX.js","assets/highlight.js-Bxt7hFFy.js","assets/highlight-BfC0goYb.css","assets/@highlightjs/vue-plugin-Bm7NQW9r.js","assets/index-D1v_MIaA.css","assets/patient-5V9JuHPJ.js","assets/tcm-CPRxlmvb.js","assets/@tencentcloud/chat-uikit-vue3-CBs93omp.js","assets/@tencentcloud/uikit-base-component-vue3-CTQKyL8o.js","assets/@tencentcloud/uikit-base-component-vue3-BkrtIuVN.css","assets/tuikit-atomicx-vue3-Bf7F3z1j.js","assets/@tencentcloud/chat-uikit-engine-zx802ozq.js","assets/@tencentcloud/chat-AC2Y2r2A.js","assets/tim-upload-plugin-HO4N4AW9.js","assets/tim-profanity-filter-plugin-Dn_Cf-mP.js","assets/@tencentcloud/tui-core-8M7p1XHw.js","assets/vue-BEnQNo4t.js","assets/@vue/compiler-dom-CqayqxS7.js","assets/@vue/compiler-core-CvbQOXIO.js","assets/@tencentcloud/tuiroom-engine-js-Br9swJyU.js","assets/rtc-detect-Chu-fZvE.js","assets/tcplayer.js-qpFBCYzN.js","assets/tuikit-atomicx-vue3-Qhi9ezz1.css","assets/@tencentcloud/chat-uikit-vue3-Cj2eB1Uk.css","assets/im-business-message-parse-ClZDqEhB.js","assets/@tencentcloud/call-uikit-vue-zq_jbkUs.js","assets/@tencentcloud/call-engine-js-BX2W9Lhf.js","assets/index-BqRj5hg7.css","assets/edit-BaKheZU_.js","assets/perm-HvFMOxpQ.js","assets/BloodRecordList-BugSvQw1.js","assets/BloodRecordList-DhVK-Y_e.css","assets/DietRecordList-Cg54vjt2.js","assets/picker-WxJ8KRB4.js","assets/index-DZpsk4Ri.js","assets/index-B3imPWFk.css","assets/index-DyEfldBn.js","assets/index.vue_vue_type_script_setup_true_lang-Clh1LnRz.js","assets/index-zqGupbzk.js","assets/index-D0f1Mn00.css","assets/index-9IGmA2CG.js","assets/index.vue_vue_type_script_setup_true_lang-BmQQfXv-.js","assets/usePaging-BIG1oWvJ.js","assets/index-BYOmK9R5.css","assets/vuedraggable-Bl4C18MR.js","assets/sortablejs-dsEAUXlE.js","assets/picker-CIDrzFI6.css","assets/DietRecordList-Cc-xUr2B.css","assets/ExerciseRecordList-Csh8m3EY.js","assets/ExerciseRecordList-DGtgtzou.css","assets/CaseRecordList-BmicRBFe.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-BDVWUInT.js","assets/CallRecordPanel-D1yS2Ki-.css","assets/ImChatRecordPanel-CZN__3Lx.js","assets/ImChatRecordPanel-CO1Juvf9.css","assets/AssignLogPanel.vue_vue_type_script_setup_true_lang-gd9d1Nw7.js","assets/AppointmentRecordPanel-B0EJdb5U.js","assets/doctor-dmIVTvQP.js","assets/AppointmentRecordPanel-5TL68rh2.css","assets/NoteTimeline-DpXkrFhb.js","assets/NoteTimeline-DxaWggN9.css","assets/index-BIJwm-nj.js","assets/index-Ci1mbRMx.js","assets/medicine-CKcqIJBu.js","assets/index-tfEElgYq.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/html2canvas-QH1iLAAe.js","assets/index-7dVF45mm.css","assets/edit-DDs0XJdp.css"])))=>i.map(i=>d[i]);
|
|
import{_ as Ve}from"./jspdf-BsthCvR5.js";import{d as pt,C as gt,L as ft,T as ht,r as yt,R as bt,N as kt,M as St,i as Ct,V as Dt}from"./element-plus-B7Dx6hR2.js";import{w as Et,s as $t,T as It}from"./@vue/runtime-dom-CEiKlVMn.js";import{r as Ae,n as wt,a as qt,b as xt}from"./patient-5V9JuHPJ.js";import Tt from"./NoteTimeline-DpXkrFhb.js";import{j as Pt}from"./doctor-dmIVTvQP.js";import{G as Rt}from"./tcm-CPRxlmvb.js";import{i as D,_ as Lt}from"./index-Bx_nF8uU.js";import{f as Me}from"./diabetes-discovery-display-B_wmGXQJ.js";import{M as Nt,l as Vt,J as At,a2 as Mt}from"./@element-plus/icons-vue-C25ce6PD.js";import{f as Bt,w as Ht,b as zt,n as jt,d as Ft,as as Ot,ak as c,I as y,J as a,a as n,aN as v,aP as Q,F as Be,ap as Gt,O as b,G as w,H as C,at as He,P as ze,i as R,A as B}from"./@vue/runtime-core-tF_2qJHK.js";import{Q as d,o as P}from"./@vue/shared-mAAVTE9n.js";import{y as l,a as ge,n as _}from"./@vue/reactivity-BmZ-20sQ.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./lodash-D3kF6u-c.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./picker-WxJ8KRB4.js";import"./index-DZpsk4Ri.js";import"./index-DyEfldBn.js";import"./index.vue_vue_type_script_setup_true_lang-Clh1LnRz.js";import"./index-zqGupbzk.js";import"./index-9IGmA2CG.js";import"./index.vue_vue_type_script_setup_true_lang-BmQQfXv-.js";import"./@vueuse/core-Da2f2eD_.js";import"./@vueuse/shared-Bl-RnC0s.js";import"./file-BCcpn2-e.js";import"./usePaging-BIG1oWvJ.js";import"./vuedraggable-Bl4C18MR.js";import"./vue-BEnQNo4t.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";import"./vue-router-BjeWxBI0.js";import"./pinia-CTWOnonq.js";import"./axios-C80V62Fs.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-yVHyDRAS.js";import"./tslib-BDyQ-Jie.js";import"./zrender-C0YiHEZX.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-Bm7NQW9r.js";const Ut={class:"reception-page"},Kt={class:"reception-header"},Qt={class:"header-left"},Wt={class:"header-meta"},Jt={class:"header-right"},Yt={class:"live-pill"},Zt={class:"filter-shell"},Xt={class:"filter-tabs"},el={class:"main-area"},tl={class:"queue-col"},ll={class:"queue-panel"},al={class:"queue-head"},sl={class:"queue-title"},nl={class:"queue-meta"},il=["onClick"],ol={class:"row-name"},ul={class:"name-line"},rl={class:"name-meta"},dl={class:"time-line"},cl=["disabled","onClick"],vl=["onClick"],ml={key:0},_l={key:1,class:"no-more"},pl={class:"sidebar"},gl={key:0,class:"placeholder-card"},fl={class:"card patient-card"},hl={class:"patient-hero"},yl={class:"patient-name"},bl={class:"patient-meta"},kl={key:0},Sl={class:"card case-card"},Cl={class:"card-title"},Dl={class:"case-sub"},El={class:"grid-block"},$l={class:"kv-grid four"},Il={class:"grid-block"},wl={class:"kv-grid four"},ql={class:"grid-block"},xl={class:"kv-grid four"},Tl={class:"grid-block"},Pl={class:"kv-grid three"},Rl={class:"grid-block"},Ll={class:"kv-grid three"},Nl={class:"grid-block"},Vl={class:"kv-grid three"},Al={key:0,class:"grid-block"},Ml={class:"kv-grid one"},Bl={class:"grid-block"},Hl={class:"rx-note"},zl={class:"card note-card"},jl={class:"card metric-card"},Fl={class:"metric-viewport"},Ol={key:0,class:"metric-up"},Gl={key:0,class:"metric-up"},Ul={key:0,class:"metric-up"},Kl={key:0,class:"metric-up"},Ql={key:0,class:"float-bar"},fe=5e3,he=15,Wl=Bt({__name:"index",setup(Jl){const je=ze(()=>Ve(()=>import("./index-lCz8esob.js"),__vite__mapDeps([0,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]))),Fe=ze(()=>Ve(()=>import("./edit-BaKheZU_.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,8,9,10,11,12,13,14,43,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,66,67,68,69,70,71,72,73,74,75,76,77,78,15,79,80,81,53,54,55,82,83,84,85,86,87,88,89,90,91,61,92,93,94,95,96,97,42,98,99,100,101,102,103,104,105,106]))),r=e=>{const t=e.value,s=t==null||t===""||Array.isArray(t)&&t.length===0;return R("div",{class:["kv-item",e.multiline?"multiline":"",s?"empty":""],style:e.span?`grid-column: span ${e.span}`:""},[R("span",{class:"kv-label"},e.label),R("span",{class:"kv-value"},s?"—":String(t))])},te=e=>{const t=e.value===void 0||e.value===null||e.value==="";return R("div",{class:["kv-item","metric-kv-item",t?"empty":""],style:e.span?`grid-column: span ${e.span}`:""},[R("span",{class:"kv-label"},e.label),R("span",{class:["kv-value","metric-kv-value",e.high?"high":""]},t?"—":[`${e.value}${e.unit||""}`,e.high?R("span",{class:"metric-up"},"↑"):null])])},E=_(1),$=_([]),W=_(0),le=_(0),ae=_(0),se=_(1),J=_(!0),Y=_(!1),Z=_(!1),ne=_(!1),g=_(null),k=_(null),ie=_(!1),I=_(""),H=_(!1),z=_(fe/1e3),j=_(null);let L=null,N=null,oe=!1,F=!1,q=null,X=0,V=0;const ue=_(null),ee=_(null),ye=_(),be=_(),A=_(!1),O=_(""),re=_(!1),f=B(()=>{var e;return((e=k.value)==null?void 0:e.appointment)||{}}),i=B(()=>{var e;return((e=k.value)==null?void 0:e.diagnosis)||{}}),Oe=B(()=>{var e;return((e=k.value)==null?void 0:e.blood_records)||[]}),Ge=B(()=>{var e;return((e=k.value)==null?void 0:e.doctor_notes)||[]}),Ue=B(()=>{const e=new Date,t=["周日","周一","周二","周三","周四","周五","周六"][e.getDay()],s=u=>String(u).padStart(2,"0");return`${e.getFullYear()}-${s(e.getMonth()+1)}-${s(e.getDate())} ${t}`}),Ke=B(()=>i.value&&i.value.consultation_type==="follow_up"?"复诊":"初诊"),p=e=>{const t=i.value||{},s=t[e+"_text"];if(s!=null&&s!=="")return String(s);const u=t[e];return u==null||u===""?"":Array.isArray(u)?u.join("、"):String(u)},Qe=()=>{const e=new Date,t=s=>String(s).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}`},ke=e=>e?e.length<11?e:e.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"):"—",Se=e=>e===1?"男":e===0?"女":"—",We=e=>[Se(e.gender),e.age!=null?e.age+"岁":""].filter(s=>s&&s!=="—").join(" "),Je=e=>e?e.replace(/^(\d{2}:\d{2})(:\d{2})?$/,"$1"):"—",Ye=e=>e==="morning"?"上午":e==="afternoon"?"下午":"全天",Ze=e=>{const t=e==null?void 0:e.systolic_pressure,s=e==null?void 0:e.diastolic_pressure;return t==null&&s==null?"—":`${t??"—"} / ${s??"—"}`},x=e=>{if(e==null||e==="")return null;const t=Number(e);return Number.isFinite(t)?t:null},de=e=>{const t=x(e);return t===null?null:t<50?{fasting:7,postprandial:9}:t>=50?{fasting:8,postprandial:10}:null},ce=(e,t)=>{const s=x(e),u=de(t);return s!==null&&u!==null&&s>=u.fasting},Ce=(e,t)=>{const s=x(e),u=de(t);return s!==null&&u!==null&&s>=u.postprandial},De=(e,t)=>{const s=x(e),u=de(t);return s!==null&&u!==null&&s>=u.postprandial},Ee=e=>{const t=x(e==null?void 0:e.systolic_pressure),s=x(e==null?void 0:e.diastolic_pressure);return t!==null&&t>140||s!==null&&s>90},Xe=e=>{const t=x(e);return t!==null&&t>140},et=e=>{const t=x(e);return t!==null&&t>90},tt=e=>e?Array.isArray(e)?e.filter(Boolean).join("、"):String(e):"",ve=async(e,t,s)=>{const u=Qe(),m=await xt({status:t??E.value,start_date:u,end_date:u,patient_name:(s??I.value)||void 0,page_no:e,page_size:he}),T=(m==null?void 0:m.lists)||(m==null?void 0:m.data)||[],S=Number((m==null?void 0:m.count)??(m==null?void 0:m.total)??0);return{list:T,count:S}},lt=async(e,t,s)=>{const u=e===1?4:1;try{const{count:m}=await ve(1,u,t||void 0);if(s!==X||E.value!==e||I.value!==t)return;u===1?le.value=m:ae.value=m}catch{}},G=async e=>{const t=(e==null?void 0:e.silent)===!0;if(t&&oe)return;const s=++X,u=E.value,m=I.value,T=(e==null?void 0:e.autoSelect)??!t;oe=!0,t||(Z.value=!0);try{se.value=1;const{list:S,count:h}=await ve(1,u,m||void 0);if(s!==X||E.value!==u||I.value!==m)return;$.value=S,W.value=h||S.length,u===1?le.value=h:ae.value=h,J.value=S.length>=he&&$.value.length<(h||0),lt(u,m,s),g.value&&!S.some(_e=>_e.id===g.value)&&(g.value=null,k.value=null),!g.value&&T&&S.length>0&&await $e(S[0])}catch(S){t||console.error("加载队列失败:",S)}finally{s===X&&(Z.value=!1,oe=!1)}},at=async()=>{if(Y.value||!J.value)return;const e=E.value,t=I.value;Y.value=!0;try{const s=se.value+1,{list:u,count:m}=await ve(s,e,t||void 0);if(E.value!==e||I.value!==t)return;const T=new Set($.value.map(h=>h.id)),S=u.filter(h=>!T.has(h.id));$.value=[...$.value,...S],se.value=s,W.value=m||W.value,J.value=u.length>=he&&$.value.length<(m||0)}catch(s){console.error("加载更多失败:",s)}finally{Y.value=!1}},st=async()=>{if(!g.value||F)return;const e=g.value,t=++V;F=!0;try{const s=await Ae({id:e});if(t!==V||g.value!==e)return;k.value=s||k.value}catch{}finally{t===V&&(F=!1)}},$e=async e=>{if(g.value===e.id)return;const t=e.id,s=++V;g.value=e.id,k.value=null,ne.value=!0,F=!0,U();try{const u=await Ae({id:t});if(s!==V||g.value!==t)return;k.value=u||null}catch(u){console.error("加载详情失败:",u),D.msgError("加载患者详情失败")}finally{s===V&&(ne.value=!1,F=!1)}},Ie=async e=>{E.value!==e&&(E.value=e,g.value=null,k.value=null,await G(),U())},we=async()=>{g.value=null,k.value=null,await G(),U()},nt=async e=>{var t;if(!e.patient_id){D.msgWarning("患者信息不完整");return}try{const s=await Rt({patient_id:e.patient_id,diagnosis_id:e.diagnosis_id||e.id});(t=ye.value)==null||t.open({patientId:e.patient_id,patientName:e.patient_name,diagnosisId:e.diagnosis_id||e.id,signatureData:s})}catch(s){console.error("获取通话签名失败:",s),D.msgError((s==null?void 0:s.message)||"获取通话签名失败")}},it=async e=>{if(!j.value){j.value=e.id;try{await wt({id:e.id}),D.msgSuccess(`已通知医助 ${e.assistant_name||""}`),await M()}catch(t){D.msgError((t==null?void 0:t.message)||"通知失败")}finally{j.value=null}}},ot=()=>{var e,t;(e=i.value)!=null&&e.patient_id&&((t=be.value)==null||t.open("edit",i.value.patient_id))},ut=async()=>{await M()},M=async()=>{const e=g.value;await G({silent:!0,autoSelect:!1}),e&&g.value===e&&await st(),U()},rt=async()=>{var e;if((e=f.value)!=null&&e.id){try{await D.confirm("确认将该患者标记为「已完成接诊」?此操作不可撤销。")}catch{return}ie.value=!0;try{await Pt({id:f.value.id}),D.msgSuccess("已完成接诊"),g.value=null,k.value=null,await G({autoSelect:!0}),U()}catch(t){D.msgError((t==null?void 0:t.message)||"操作失败")}finally{ie.value=!1}}},dt=async()=>{var s;const e=(s=i.value)==null?void 0:s.id;if(!e){D.msgWarning("当前患者无诊单,无法添加备注");return}const t=O.value.trim();if(!t){D.msgWarning("请输入备注内容");return}re.value=!0;try{await qt({diagnosis_id:e,content:t}),D.msgSuccess("备注保存成功"),O.value="",A.value=!1,await M()}catch(u){D.msgError((u==null?void 0:u.message)||"保存失败")}finally{re.value=!1}},ct=()=>{z.value=fe/1e3},vt=()=>{N&&clearInterval(N),ct(),N=setInterval(()=>{H.value||(z.value>1?z.value-=1:z.value=1)},1e3)},qe=()=>{L&&clearTimeout(L),!H.value&&(vt(),L=setTimeout(async()=>{await M()},fe))},U=()=>{qe()},mt=()=>{me(),qe()},me=()=>{L&&(clearTimeout(L),L=null),N&&(clearInterval(N),N=null)},xe=()=>{H.value=document.hidden,document.hidden?me():M()},Te=e=>{var s;const t=String(((s=e==null?void 0:e.reason)==null?void 0:s.message)||(e==null?void 0:e.reason)||"");/Receiving end does not exist|Could not establish connection/i.test(t)&&e.preventDefault()},Pe=()=>{!ee.value||!ue.value||(q==null||q.disconnect(),q=new IntersectionObserver(e=>{for(const t of e)t.isIntersecting&&at()},{root:ue.value,rootMargin:"80px",threshold:0}),q.observe(ee.value))};return Ht(ee,()=>Pe()),zt(()=>{G(),mt(),document.addEventListener("visibilitychange",xe),window.addEventListener("unhandledrejection",Te),jt(()=>Pe())}),Ft(()=>{me(),q==null||q.disconnect(),document.removeEventListener("visibilitychange",xe),window.removeEventListener("unhandledrejection",Te)}),(e,t)=>{var Le;const s=pt,u=gt,m=ht,T=yt,S=bt,h=kt,_e=St,K=Ct,_t=Dt,Re=ft,pe=Ot("perms");return c(),y("div",Ut,[a("div",Kt,[a("div",Qt,[t[8]||(t[8]=a("h1",{class:"header-title"},"接诊台",-1)),a("div",Wt,d(l(Ue)),1)]),a("div",Jt,[a("div",Yt,[a("span",{class:P(["live-dot",{paused:l(H)}])},null,2),a("span",null,d(l(H)?"已暂停":`${l(z)}s 后刷新`),1)])])]),a("div",Zt,[n(u,{modelValue:l(I),"onUpdate:modelValue":t[0]||(t[0]=o=>ge(I)?I.value=o:null),placeholder:"请输入患者姓名",clearable:"",size:"default",class:"search-input",onKeyup:Et(we,["enter"]),onClear:we},{prefix:v(()=>[n(s,null,{default:v(()=>[n(l(Nt))]),_:1})]),_:1},8,["modelValue"]),a("div",Xt,[a("span",{class:P(["filter-tab",{active:l(E)===1}]),onClick:t[1]||(t[1]=o=>Ie(1))},"待接诊 "+d(l(le))+" 人",3),t[9]||(t[9]=a("span",{class:"filter-sep"},"·",-1)),a("span",{class:P(["filter-tab",{active:l(E)===4}]),onClick:t[2]||(t[2]=o=>Ie(4))},"已过号 "+d(l(ae))+" 人",3)])]),a("div",el,[a("aside",tl,[a("div",ll,[a("div",al,[a("span",sl,d(l(E)===1?"待接诊":"已过号"),1),a("span",nl,d(l(W))+" 人",1)]),Q((c(),y("div",{ref_key:"queueScrollRef",ref:ue,class:"queue-list"},[(c(!0),y(Be,null,Gt(l($),o=>(c(),y("div",{key:o.id,class:P(["queue-row",{active:l(g)===o.id,passed:o.status===4}]),onClick:Ne=>$e(o)},[a("div",ol,[a("div",ul,[b(d(o.patient_name||"未命名")+" ",1),a("span",rl,d(We(o)),1),o.status===4?(c(),w(m,{key:0,size:"small",type:"warning",class:"ml-1"},{default:v(()=>[...t[10]||(t[10]=[b("已过号",-1)])]),_:1})):C("",!0)]),a("div",dl,d(Je(o.appointment_time))+" · 医助 "+d(o.assistant_name||"—"),1)]),a("div",{class:"row-actions",onClick:t[3]||(t[3]=$t(()=>{},["stop"]))},[n(T,{content:"通知医助(企业微信)",placement:"top"},{default:v(()=>[a("button",{class:"row-icon-btn notify",disabled:l(j)===o.id,onClick:Ne=>it(o)},[l(j)===o.id?(c(),w(s,{key:0,class:"is-loading"},{default:v(()=>[n(l(Vt))]),_:1})):(c(),w(s,{key:1},{default:v(()=>[n(l(At))]),_:1}))],8,cl)]),_:2},1024),n(T,{content:"发起通话",placement:"top"},{default:v(()=>[a("button",{class:"row-icon-btn call",onClick:Ne=>nt(o)},[n(s,null,{default:v(()=>[n(l(Mt))]),_:1})],8,vl)]),_:2},1024)])],10,il))),128)),l($).length>0?(c(),y("div",{key:0,ref_key:"sentinelRef",ref:ee,class:"scroll-sentinel"},[l(Y)?(c(),y("span",ml,"加载中…")):l(J)?C("",!0):(c(),y("span",_l,"— 已全部加载 —"))],512)):C("",!0),!l(Z)&&l($).length===0?(c(),w(S,{key:1,description:"暂无待接诊患者","image-size":64})):C("",!0)])),[[Re,l(Z)&&l($).length===0]])])]),Q((c(),y("section",pl,[l(g)?l(k)?(c(),y(Be,{key:1},[a("div",fl,[t[11]||(t[11]=a("div",{class:"card-title"},"患者信息",-1)),a("div",hl,[a("div",yl,d(l(f).patient_name||"—"),1),a("div",bl,[a("div",null,d(ke(l(f).patient_phone))+" · "+d(Se(l(i).gender))+" · "+d(l(i).age!=null?l(i).age+"岁":"—"),1),a("div",null,d(l(i).height?l(i).height+"cm":"—")+" / "+d(l(i).weight?l(i).weight+"kg":"—")+" · "+d(l(i).region||"—"),1),a("div",null,"预约:"+d(l(f).appointment_date)+" "+d(l(f).appointment_time)+" · "+d(Ye(l(f).period)),1),a("div",null,"医生:"+d(l(f).doctor_name||"—")+" 医助:"+d(l(f).assistant_name||"—"),1),a("div",null,"状态:"+d(l(f).status_desc||"—")+" · "+d(l(f).has_prescription?"已开方":"未开方"),1),l(f).remark?(c(),y("div",kl,"备注:"+d(l(f).remark),1)):C("",!0)])])]),a("div",Sl,[a("div",Cl,[t[12]||(t[12]=b(" 患者病例 ",-1)),a("span",Dl,d(l(Ke))+" · 诊断日期 "+d(l(i).diagnosis_date||l(f).appointment_date||"—"),1)]),a("div",El,[t[13]||(t[13]=a("div",{class:"grid-title"},"基本信息",-1)),a("div",$l,[n(r,{label:"诊单ID",value:l(i).patient_id},null,8,["value"]),n(r,{label:"姓名",value:l(i).patient_name},null,8,["value"]),n(r,{label:"身份证号",value:l(i).id_card},null,8,["value"]),n(r,{label:"手机号",value:ke(l(i).phone||l(f).patient_phone)},null,8,["value"]),n(r,{label:"性别",value:p("gender")},null,8,["value"]),n(r,{label:"年龄",value:l(i).age!=null?l(i).age+"岁":""},null,8,["value"]),n(r,{label:"婚姻状态",value:p("marital_status")},null,8,["value"]),n(r,{label:"地区",value:l(i).region},null,8,["value"])])]),a("div",Il,[t[14]||(t[14]=a("div",{class:"grid-title"},"生命体征",-1)),a("div",wl,[n(r,{label:"身高",value:l(i).height?l(i).height+" cm":""},null,8,["value"]),n(r,{label:"体重",value:l(i).weight?l(i).weight+" kg":""},null,8,["value"]),n(te,{label:"高压",value:l(i).systolic_pressure,unit:" mmHg",high:Xe(l(i).systolic_pressure)},null,8,["value","high"]),n(te,{label:"低压",value:l(i).diastolic_pressure,unit:" mmHg",high:et(l(i).diastolic_pressure)},null,8,["value","high"]),n(r,{label:"诊断类型",value:p("diagnosis_type")},null,8,["value"]),n(te,{label:"空腹血糖",value:l(i).fasting_blood_sugar,unit:" mmol/L",high:ce(l(i).fasting_blood_sugar,l(i).age)},null,8,["value","high"]),n(r,{label:"在用药物",value:l(i).current_medications,multiline:""},null,8,["value"])])]),a("div",ql,[t[15]||(t[15]=a("div",{class:"grid-title"},"主诉",-1)),a("div",xl,[n(r,{label:"当地医院诊断日期",value:l(i).diagnosis_date},null,8,["value"]),n(r,{label:"发现糖尿病病史",value:l(Me)?l(Me)(l(i).diabetes_discovery_year):l(i).diabetes_discovery_year},null,8,["value"]),n(r,{label:"当地就诊医院",value:l(i).local_hospital_name},null,8,["value"]),n(r,{label:"当地医院诊断结果",value:tt(l(i).local_hospital_diagnosis)},null,8,["value"])])]),a("div",Tl,[t[16]||(t[16]=a("div",{class:"grid-title"},"现病史",-1)),a("div",Pl,[n(r,{label:"口腔感觉",value:p("appetite")},null,8,["value"]),n(r,{label:"每日饮水量",value:p("water_intake")},null,8,["value"]),n(r,{label:"近月体重变化",value:p("weight_change")},null,8,["value"]),n(r,{label:"脂肪肝程度",value:p("fatty_liver_degree")},null,8,["value"]),n(r,{label:"饮食情况",value:p("diet_condition"),span:"2"},null,8,["value"]),n(r,{label:"肢体感觉",value:p("body_feeling")},null,8,["value"]),n(r,{label:"睡眠情况",value:p("sleep_condition")},null,8,["value"]),n(r,{label:"眼睛情况",value:p("eye_condition")},null,8,["value"]),n(r,{label:"头部感觉",value:p("head_feeling")},null,8,["value"]),n(r,{label:"出汗情况",value:p("sweat_condition")},null,8,["value"]),n(r,{label:"皮肤情况",value:p("skin_condition")},null,8,["value"]),n(r,{label:"小便情况",value:p("urine_condition")},null,8,["value"]),n(r,{label:"大便情况",value:p("stool_condition")},null,8,["value"]),n(r,{label:"腰肾情况",value:p("kidney_condition")},null,8,["value"]),n(r,{label:"其他补充",value:l(i).symptoms,span:"3",multiline:""},null,8,["value"])])]),a("div",Rl,[t[17]||(t[17]=a("div",{class:"grid-title"},"既往史",-1)),a("div",Ll,[n(r,{label:"既往病史",value:p("past_history"),span:"3"},null,8,["value"])])]),a("div",Nl,[t[18]||(t[18]=a("div",{class:"grid-title"},"其他病史",-1)),a("div",Vl,[n(r,{label:"外伤史",value:p("trauma_history")},null,8,["value"]),n(r,{label:"手术史",value:p("surgery_history")},null,8,["value"]),n(r,{label:"过敏史",value:p("allergy_history")},null,8,["value"]),n(r,{label:"家族病史",value:p("family_history")},null,8,["value"]),n(r,{label:"妊娠哺乳史",value:p("pregnancy_history")},null,8,["value"])])]),l(i).remark?(c(),y("div",Al,[t[19]||(t[19]=a("div",{class:"grid-title"},"病史补充",-1)),a("div",Ml,[n(r,{label:"",value:l(i).remark,multiline:""},null,8,["value"])])])):C("",!0),a("div",Bl,[t[20]||(t[20]=a("div",{class:"grid-title"},"处方意见",-1)),a("div",Hl,d(l(f).has_prescription?"已开方。":"当前未开方。"),1)])]),a("div",zl,[t[21]||(t[21]=a("div",{class:"card-title"},"医生备注 & 舌苔照片 & 检查报告",-1)),n(Tt,{notes:l(Ge),"diagnosis-id":(Le=l(i))==null?void 0:Le.id,onRefresh:M},null,8,["notes","diagnosis-id"])]),a("div",jl,[t[22]||(t[22]=a("div",{class:"card-title"},"血糖血压记录",-1)),a("div",Fl,[n(_e,{data:l(Oe),size:"small",stripe:"","empty-text":"暂无血糖血压记录",class:"metric-table","max-height":"360"},{default:v(()=>[n(h,{prop:"record_date",label:"记录日期",width:"110"}),n(h,{prop:"record_time",label:"记录时间",width:"100"},{default:v(({row:o})=>[b(d(o.record_time||"—"),1)]),_:1}),n(h,{label:"空腹血糖(mmol/L)",width:"150"},{default:v(({row:o})=>[a("span",{class:P(["metric-value",{high:ce(o.fasting_blood_sugar,l(i).age)}])},[b(d(o.fasting_blood_sugar??"—")+" ",1),ce(o.fasting_blood_sugar,l(i).age)?(c(),y("span",Ol,"↑")):C("",!0)],2)]),_:1}),n(h,{label:"餐后2小时血糖(mmol/L)",width:"180"},{default:v(({row:o})=>[a("span",{class:P(["metric-value",{high:Ce(o.postprandial_blood_sugar,l(i).age)}])},[b(d(o.postprandial_blood_sugar??"—")+" ",1),Ce(o.postprandial_blood_sugar,l(i).age)?(c(),y("span",Gl,"↑")):C("",!0)],2)]),_:1}),n(h,{label:"其他血糖(mmol/L)",width:"150"},{default:v(({row:o})=>[a("span",{class:P(["metric-value",{high:De(o.other_blood_sugar,l(i).age)}])},[b(d(o.other_blood_sugar??"—")+" ",1),De(o.other_blood_sugar,l(i).age)?(c(),y("span",Ul,"↑")):C("",!0)],2)]),_:1}),n(h,{label:"血压(mmHg)",width:"130"},{default:v(({row:o})=>[a("span",{class:P(["metric-value",{high:Ee(o)}])},[b(d(Ze(o))+" ",1),Ee(o)?(c(),y("span",Kl,"↑")):C("",!0)],2)]),_:1}),n(h,{label:"西药",width:"120"},{default:v(({row:o})=>[b(d(o.western_medicine||"—"),1)]),_:1}),n(h,{label:"胰岛素",width:"120"},{default:v(({row:o})=>[b(d(o.insulin||"—"),1)]),_:1}),n(h,{label:"备注","min-width":"160"},{default:v(({row:o})=>[b(d(o.remark||"—"),1)]),_:1})]),_:1},8,["data"])])])],64)):C("",!0):(c(),y("div",gl,[n(S,{description:"请从左侧选择一位待接诊患者"})]))])),[[Re,l(ne)&&!l(k)]])]),n(It,{name:"fade"},{default:v(()=>[l(g)&&l(k)?(c(),y("div",Ql,[Q((c(),w(K,{class:"float-action note",size:"large",onClick:t[4]||(t[4]=o=>A.value=!0)},{default:v(()=>[...t[23]||(t[23]=[b(" 备注 ",-1)])]),_:1})),[[pe,["doctor.appointment/addDoctorNote"]]]),Q((c(),w(K,{class:"float-action edit",size:"large",onClick:ot},{default:v(()=>[...t[24]||(t[24]=[b(" 编辑病历 ",-1)])]),_:1})),[[pe,["tcm.diagnosis/edit"]]]),l(f).status===1||l(f).status===4?Q((c(),w(K,{key:0,class:"float-action finish",size:"large",loading:l(ie),onClick:rt},{default:v(()=>[...t[25]||(t[25]=[b(" 完成接诊 ",-1)])]),_:1},8,["loading"])),[[pe,["doctor.appointment/complete"]]]):C("",!0)])):C("",!0)]),_:1}),n(_t,{modelValue:l(A),"onUpdate:modelValue":t[7]||(t[7]=o=>ge(A)?A.value=o:null),title:"添加备注",width:"480px","append-to-body":""},{footer:v(()=>[n(K,{onClick:t[6]||(t[6]=o=>A.value=!1)},{default:v(()=>[...t[26]||(t[26]=[b("取消",-1)])]),_:1}),n(K,{type:"primary",loading:l(re),onClick:dt},{default:v(()=>[...t[27]||(t[27]=[b("保存",-1)])]),_:1},8,["loading"])]),default:v(()=>[n(u,{modelValue:l(O),"onUpdate:modelValue":t[5]||(t[5]=o=>ge(O)?O.value=o:null),type:"textarea",rows:4,placeholder:"输入今日备注...",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1},8,["modelValue"]),(c(),w(He(l(je)),{ref_key:"chatDialogRef",ref:ye},null,512)),(c(),w(He(l(Fe)),{ref_key:"diagnosisEditRef",ref:be,onSuccess:ut},null,544))])}}}),Xa=Lt(Wl,[["__scopeId","data-v-6a9b0ab4"]]);export{Xa as default};
|