7 lines
65 KiB
JavaScript
7 lines
65 KiB
JavaScript
import{e as $s,i as Us,D as Cs,a4 as Ds,a5 as Ps,B as Rs,C as Ts,h as Is,T as Es,P as Os,Q as As,G as zs,I as Hs,g as Fs,m as Ls,l as Ms,d as Ws,r as js,V as Gs,L as Bs,N as Ks,M as qs,U as Js}from"./element-plus-lurTijPg.js";import{s as ne,w as Ys}from"./@vue/runtime-dom-DDAG46FW.js";import{M as Nt}from"./index-C233xKUI.js";import{u as Qs,e as Xs,i as V,m as C,_ as Zs}from"./index-DU3c9-Jb.js";import{f as ea}from"./diabetes-discovery-display-B_wmGXQJ.js";import{Z as ta,c as ve,_ as $t,h as sa,i as aa,ai as la}from"./tcm-Dvr9iZ3T.js";import{m as oa}from"./medicine-CkD1Gr84.js";import Ut from"./html2canvas-QH1iLAAe.js";import{E as na}from"./jspdf-BsthCvR5.js";import{aa as ra,a2 as ia,U as da,M as ua,G as ca,N as pa}from"./@element-plus/icons-vue-HOEUG8sr.js";import{f as _a,w as Ct,ak as g,I as b,F as D,a as o,M as ma,aN as i,J as l,O as m,ap as A,H as k,G as U,aP as ga,A as w}from"./@vue/runtime-core-C6bnekPw.js";import{y as s,a as E,n as x,r as Dt}from"./@vue/reactivity-DiY1c2vO.js";import{Q as p,o as Pt}from"./@vue/shared-mAAVTE9n.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"./vue-router-QlpZ4wdW.js";import"./pinia-B8cvXbiZ.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-1S4fJlii.js";import"./@vueuse/shared-Cl3lVqjz.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-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";const fa={key:0,class:"prescription-edit"},ba={class:"info-section"},va={class:"info-section"},ya={class:"info-section info-section--rp"},xa={class:"rp-toolbar",role:"region","aria-label":"中药处方"},ha={class:"rp-toolbar__lead"},ka={class:"rp-toolbar__text"},Va={class:"rp-toolbar__meta"},wa={class:"rp-toolbar__actions",role:"toolbar","aria-label":"处方药材快捷操作"},Sa={class:"mb-3"},Na={class:"herb-formula-block"},$a={class:"herb-formula-block__head"},Ua={class:"herbs-editor-grid"},Ca={class:"herb-editor-card__title"},Da={key:0,class:"herb-editor-card__dup-hint text-amber-600 text-xs mb-1"},Pa={class:"herb-editor-card__row"},Ra={class:"herb-formula-block mt-4"},Ta={class:"herb-formula-block__head"},Ia={class:"herbs-editor-grid"},Ea={key:0,class:"herb-editor-card__dup-hint text-amber-600 text-xs mb-1"},Oa={class:"herb-editor-card__row"},Aa={key:0,class:"text-sm text-gray-400 py-2"},za={class:"info-section"},Ha={key:3,class:"ml-2"},Fa={class:"signature-pad-wrap"},La={class:"signature-actions"},Ma={key:1,class:"rx-wrap"},Wa={class:"rx-toolbar"},ja={key:0,class:"rx-status rx-status-danger"},Ga={key:1,class:"rx-status rx-status-danger"},Ba={key:0,class:"mt-1"},Ka={class:"prescription-preview-content"},qa={class:"rx-notice"},Ja={class:"rx-notice-meta"},Ya={class:"rx-info"},Qa={class:"rx-info-row"},Xa={class:"rx-info-cell"},Za={class:"rx-val"},el={class:"rx-info-cell"},tl={class:"rx-val"},sl={class:"rx-info-cell"},al={class:"rx-val"},ll={class:"rx-info-cell"},ol={class:"rx-val"},nl={class:"rx-info-row rx-info-row-full"},rl={class:"rx-info-cell"},il={class:"rx-val"},dl={key:0,class:"rx-info-row rx-info-row-full"},ul={key:0,class:"rx-info-cell"},cl={class:"rx-val"},pl={key:1,class:"rx-info-cell"},_l={class:"rx-val"},ml={class:"rx-info-row rx-info-row-full"},gl={class:"rx-info-cell"},fl={class:"rx-val"},bl={class:"rx-rp"},vl={class:"rx-watermark"},yl={class:"rx-rp-head"},xl={class:"rx-rp-cols-head"},hl={class:"rx-rp-col-head"},kl={class:"rx-rp-col-head"},Vl={class:"rx-herbs"},wl={class:"rx-herb-name"},Sl={class:"rx-herb-total"},Nl={class:"rx-herb-name"},$l={class:"rx-herb-total"},Ul={class:"rx-herb-name"},Cl={class:"rx-herb-total"},Dl={class:"rx-herb-name"},Pl={class:"rx-herb-total"},Rl={class:"rx-text"},Tl={key:0},Il={key:1},El={key:2},Ol={key:3},Al={key:4},zl={key:5},Hl={key:6,class:"rx-text-warn"},Fl={key:7,class:"rx-text-warn"},Ll={class:"rx-bottom"},Ml={class:"rx-bot-row rx-bot-row-1"},Wl={class:"rx-bot-cell rx-bot-stack rx-bot-doctor"},jl={class:"rx-bot-doctor-body"},Gl=["src"],Bl={class:"rx-bot-doctor-name"},Kl={class:"rx-bot-cell rx-bot-meta"},ql={class:"rx-bot-meta-val"},Jl={class:"rx-bot-cell rx-bot-meta"},Yl={class:"rx-bot-meta-val"},Ql={class:"rx-bot-cell rx-bot-meta"},Xl={class:"rx-bot-meta-val"},Zl={key:0,class:"rx-bot-row rx-hospital-row"},eo={class:"case-record-a3-inner"},to={class:"case-record-a3-title"},so={class:"case-record-a3-body"},ao={class:"cr-section"},lo={class:"cr-grid"},oo={class:"cr-item"},no={class:"cr-item"},ro={class:"cr-item"},io={class:"cr-item"},uo={class:"cr-item"},co={class:"cr-item"},po={class:"cr-item"},_o={class:"cr-item"},mo={class:"cr-item"},go={class:"cr-item"},fo={class:"cr-section"},bo={class:"cr-grid"},vo={class:"cr-item"},yo={class:"cr-item"},xo={class:"cr-section"},ho={class:"cr-grid"},ko={class:"cr-item"},Vo={class:"cr-item"},wo={class:"cr-item"},So={class:"cr-item"},No={class:"cr-item"},$o={class:"cr-item cr-full"},Uo={class:"cr-item cr-full"},Co={class:"cr-section"},Do={class:"cr-grid"},Po={class:"cr-item cr-full"},Ro={class:"cr-item cr-full"},To={class:"cr-item cr-full"},Io={class:"cr-item cr-full"},Eo={class:"cr-item cr-full"},Oo={class:"cr-item cr-full"},Ao={class:"cr-item cr-full"},zo={class:"cr-item cr-full"},Ho={class:"cr-item cr-full"},Fo={class:"cr-item cr-full"},Lo={class:"cr-item cr-full"},Mo={class:"cr-item cr-full"},Wo={class:"cr-item cr-full"},jo={class:"cr-item cr-full"},Go={class:"cr-item cr-full"},Bo={class:"cr-section"},Ko={class:"cr-item cr-full"},qo={class:"cr-section"},Jo={class:"cr-grid"},Yo={class:"cr-item"},Qo={class:"cr-item"},Xo={class:"cr-item"},Zo={class:"cr-item"},en={class:"cr-item"},tn={class:"cr-section"},sn={key:0,class:"cr-grid"},an={class:"cr-item cr-full"},ln={class:"cr-images"},on=["src"],nn={class:"cr-grid"},rn={class:"cr-item cr-full"},dn={key:2,class:"rx-audit"},un={key:0},cn={key:0,class:"ml-2 text-gray-400"},pn={key:1,class:"mt-1"},_n={class:"flex justify-end gap-2 mt-4"},mn={class:"inline-block"},gn={class:"flex justify-end gap-2"},fn={class:"mb-4 flex gap-3"},bn={class:"mb-3 flex flex-wrap items-center gap-x-4 gap-y-2"},vn={key:0},yn={key:1,class:"text-gray-400"},xn={class:"flex justify-end mt-4"},hn={class:"mt-3 flex flex-wrap items-center gap-x-4 gap-y-2"},re=560,ie=168,kn=_a({__name:"index",emits:["success"],setup(Vn,{expose:Rt,emit:Tt}){function z(t){return t==="辅方"?"辅方":"主方"}function Ae(t){return{name:String((t==null?void 0:t.name)??"").trim(),dosage:Number(t==null?void 0:t.dosage)||0,formula_type:z(t==null?void 0:t.formula_type)}}function te(t="浓缩水丸"){return t==="饮片"?{dosage_amount:50,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}:t==="浓缩水丸"?{dosage_amount:5,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}:{dosage_amount:1,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}}function ze(t,e){const n=te(e);if(!t||typeof t!="object")return{...n};const r=t;return{dosage_amount:r.dosage_amount!==null&&r.dosage_amount!==void 0&&r.dosage_amount!==""?Number(r.dosage_amount):n.dosage_amount,dosage_bag_count:r.dosage_bag_count!=null?Number(r.dosage_bag_count)||1:n.dosage_bag_count,need_decoction:r.need_decoction===1||r.need_decoction===!0,bags_per_dose:r.bags_per_dose!=null?Number(r.bags_per_dose)||1:n.bags_per_dose,times_per_day:r.times_per_day!=null?Number(r.times_per_day)||3:n.times_per_day,usage_days:r.usage_days!=null?Number(r.usage_days)||7:n.usage_days}}function He(t,e,n){const r=t.prescription_type||"浓缩水丸",_=Number(t.times_per_day)>0?Number(t.times_per_day):3,v=t.dosage_amount!=null?Number(t.dosage_amount):10,f=t.dosage_unit||(r==="饮片"?"ml":"g"),y=t.usage_way||e||"温水送服",S=t.usage_time||n||"",u=[];if(u.push(`每天${_}次`),r==="浓缩水丸"){const N=Number(t.dosage_bag_count)>0?Number(t.dosage_bag_count):1;u.push(`一次${N}袋`),u.push(`每袋${v}${f}`)}else u.push(`一次${v}${f}`);return u.push(y),S&&u.push(S),u.join(", ")}const Fe=Tt,F=x(!1),It=x(),ye=x(!1),xe=x(!1),Le=x(),Me=x(),L=x(),de=x(null),d=x(null),R=x("internal"),he=x(!1),ue=w(()=>{const t=d.value;return t?Number(t.audit_status)===1&&Number(t.void_status)!==1:!1}),We=w(()=>{const t=d.value;return t?Number(t.has_prescription_order)===1:!1}),Et=w(()=>ue.value?"查看处方":"中医处方单"),ce=w(()=>{var e;const t=(e=d.value)==null?void 0:e.herbs;return Array.isArray(t)?t.filter(n=>z(n==null?void 0:n.formula_type)==="主方"):[]}),K=w(()=>{var e;const t=(e=d.value)==null?void 0:e.herbs;return Array.isArray(t)?t.filter(n=>z(n==null?void 0:n.formula_type)==="辅方"):[]}),ke=w(()=>{const t=d.value;if(!t||!K.value.length)return"";const e=ze(t.aux_usage,t.prescription_type||"浓缩水丸");return He({prescription_type:t.prescription_type,dosage_amount:e.dosage_amount,dosage_unit:t.dosage_unit,dosage_bag_count:e.dosage_bag_count,times_per_day:e.times_per_day,usage_way:t.usage_way,usage_time:t.usage_time},t.usage_way,t.usage_time)}),Ve=w(()=>{var e;const t=(e=d.value)==null?void 0:e.herbs;return Array.isArray(t)?t:[]}),pe=t=>String(t).padStart(2,"0"),Ot=w(()=>{const t=d.value;if(!t)return"—";const e=t.create_time??t.update_time??null;if(e){const n=String(e).length===10?Number(e)*1e3:Number(e),r=new Date(n);if(!isNaN(r.getTime()))return`${r.getFullYear()}-${pe(r.getMonth()+1)}-${pe(r.getDate())} ${pe(r.getHours())}:${pe(r.getMinutes())}`}return t.prescription_date||"—"}),At=w(()=>{const t=d.value;if(!t)return"—";const e=String(t.sn??"").trim();if(e)return e;const n=String(t.visit_no??"").trim();return n||(t.id?`G${t.id}`:"—")}),je=w(()=>{var e;const t=Number((e=d.value)==null?void 0:e.dose_count);return Number.isFinite(t)&&t>0?t:1}),zt=w(()=>{const t=Ve.value.reduce((e,n)=>e+(Number(n==null?void 0:n.dosage)||0),0);return M(t)}),Ge=t=>{const e=Number(t)||0;return M(e*je.value)},Ht=w(()=>{const t=d.value;if(!t)return"—";const e=t.prescription_type||"浓缩水丸";return e==="饮片"?"饮片":/丸|散|膏|片/.test(e)?`浓缩丸-${e}`:e}),Be=w(()=>{const t=d.value;return t?t.usage_text?t.usage_text:He(t):"—"}),Ke=w(()=>{const t=d.value;return t&&t.medical_advice||""}),qe=w(()=>{const t=d.value;if(!t)return"";const e=[];return e.push(`共${Ve.value.length}味药`),t.usage_notes&&e.push(String(t.usage_notes)),t.remark&&e.push(String(t.remark)),e.join(" ")}),Je=w(()=>{const t=d.value;return t&&(t.pharmacy_remark||t.pharmacy_note)||""}),Ft=w(()=>{const t=d.value;if(!t)return"—";const e=t.medication_days??t.usage_days;if(e!=null&&String(e).trim()!=="")return`${e} 天`;const n=t.dose_count;return n!=null&&String(n).trim()!==""&&Number(n)>0?`${n} 天`:"—"}),Ye=w(()=>{const t=d.value;if(!t||(t.prescription_type||"浓缩水丸")!=="浓缩水丸")return null;const e=Number(t.medication_days??t.usage_days??t.dose_count),n=Number(t.times_per_day),r=Number(t.dosage_amount),_=Number(t.dosage_bag_count)>0?Number(t.dosage_bag_count):1;return!Number.isFinite(e)||!Number.isFinite(n)||!Number.isFinite(r)||e<=0||n<=0||r<=0?null:e*n*r*_}),Qe=w(()=>{const t=d.value;if(!t||(t.prescription_type||"浓缩水丸")!=="浓缩水丸"||!K.value.length)return null;const e=ze(t.aux_usage,t.prescription_type||"浓缩水丸"),n=Number(t.medication_days??e.usage_days),r=Number(e.times_per_day),_=Number(e.dosage_amount),v=Number(e.dosage_bag_count)>0?Number(e.dosage_bag_count):1;return!Number.isFinite(n)||!Number.isFinite(r)||!Number.isFinite(_)||n<=0||r<=0||_<=0?null:n*r*_*v}),Lt=w(()=>{const t=Ye.value,e=Qe.value,n=typeof t=="number"&&isFinite(t)&&t>0?t:0,r=typeof e=="number"&&isFinite(e)&&e>0?e:0,_=n+r;if(_>0)return M(_);const v=d.value;if(!v)return"";const f=v.out_pellet||v.total_weight;if(f&&Number(f)>0)return M(Number(f));const y=Ve.value;if(!y.length)return"";const S=y.reduce((u,N)=>u+(Number(N==null?void 0:N.dosage)||0),0);return M(S*je.value)}),Xe=w(()=>{const t=Lt.value;if(!t)return"";const e=Ye.value,n=Qe.value;return typeof e=="number"&&isFinite(e)&&e>0&&typeof n=="number"&&isFinite(n)&&n>0?`${t}克(主方 ${M(e)}克 + 辅方 ${M(n)}克)`:`${t}克`});function M(t){return isFinite(t)?Number.isInteger(t)?String(t):t.toFixed(2).replace(/\.?0+$/,""):"0"}function Mt(t){var e;return t===1||t==="1"?"男":t===0||t==="0"?"女":((e=d.value)==null?void 0:e.gender_desc)||"—"}function Wt(t){return t==null||t===""?"—":`${t}岁`}function jt(t){if(!t)return"";const e=new Date(t*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}const Ze=w(()=>a.herbs.map((t,e)=>({herb:t,index:e})).filter(({herb:t})=>z(t.formula_type)==="主方")),se=w(()=>a.herbs.map((t,e)=>({herb:t,index:e})).filter(({herb:t})=>z(t.formula_type)==="辅方")),Gt=w(()=>Ze.value.length),Bt=w(()=>se.value.length),we=w(()=>{var e;const t=Number((e=De.userInfo)==null?void 0:e.id);return t>0?t:0}),W=x(!1),Se=x(!1),Ne=x([]),ae=x(""),le=x(""),q=x("replace"),J=x(!1),Y=x(1),_e=x(15),$e=x(0),Q=x(!1),X=x(""),me=x("replace"),Ue=x(!1),Kt=/^(用法|用量|医嘱|忌口|水煎服|空腹|饭后|温水|内服|外用|备注|顿服|分服|ml|毫升|[×xX]\s*\d)/;function qt(t){let e=t.replace(/\r\n/g,`
|
||
`).replace(/\r/g,`
|
||
`);return e=e.replace(/[0-9]/g,n=>String.fromCharCode(n.charCodeAt(0)-65296+48)),e.trim()}function Jt(t){return t.replace(/^\s*Rp[::**\s]*/i,"").replace(/^\s*处方[::\s]*/,"").replace(/^\s*中药处方[::\s]*/,"").trimStart()}function Ce(t){return t.replace(/([^)]*)$/u,"").replace(/\([^)]*\)$/u,"").trim()}function et(t){const e=t.trim();if(!e||Kt.test(e)||/^\d/.test(e)||/^\d+\s*剂$/.test(e))return null;const n=e.match(/^(.+)\s*各\s*(\d+(?:\.\d+)?)\s*(?:克|g|G)?$/i);if(n){const v=parseFloat(n[2]);if(!Number.isFinite(v)||v<=0)return null;const f=n[1].split(/[、,,\s]+/).map(y=>y.trim()).filter(Boolean);return f.length?f.map(y=>({name:Ce(y),dosage:v})):null}const r=e.match(/^(.+?)\s*(\d+(?:\.\d+)?)\s*(?:克|g|G|钱)?$/i);if(r){const v=Ce(r[1].trim()),f=parseFloat(r[2]);return!v||!Number.isFinite(f)||f<=0?null:[{name:v,dosage:f}]}const _=Ce(e);return _.length>=2&&_.length<=16?[{name:_,dosage:6}]:null}function Yt(t){const e=Jt(qt(t)),n=[];for(const r of e.split(/\n+/)){const _=r.trim();if(_)for(const v of _.split(/[、,,;;]/)){const f=v.trim();if(f)if(/\s/.test(f)&&!et(f)){const y=f.split(/\s+(?=[\u4e00-\u9fff]{2,})/);for(const S of y){const u=S.trim();u&&n.push(u)}}else n.push(f)}}return n}function Qt(t){const e=[];for(const n of Yt(t)){const r=et(n);r&&e.push(...r)}return e}async function Xt(t){const e=t.trim();if(!e)return null;try{const _=((await oa({name:e,page_no:1,page_size:200,status:1})).lists||[]).find(v=>(v.name??"").trim()===e);return _?_.name.trim():null}catch{return null}}function Zt(){Q.value=!0}async function es(){const t=Qt(X.value);if(!t.length){V.msgWarning("未能从文本中解析出药材,请检查格式(药名 + 剂量,或用顿号/换行分隔)");return}Ue.value=!0;try{const e=[],n=[];for(const f of t){const y=await Xt(f.name);if(!y){n.push(f.name.trim());continue}e.push({name:y,dosage:f.dosage,formula_type:"主方"})}const r=[...new Set(n.filter(Boolean))];if(e.length===0){V.msgWarning(r.length?`药品库中无以下完全同名药材,未录入:${r.join("、")}`:"未能匹配到药品库中的药材");return}if(me.value==="replace"){const f=a.herbs.filter(y=>z(y.formula_type)==="辅方");a.herbs=[...f,...e]}else a.herbs.push(...e);const _=Oe(),v=r.length>0?`;药品库未收录已跳过:${r.join("、")}`:"";_.length?V.msgWarning(`已导入 ${e.length} 味药材${v}。存在重复药名:${_.join("、")},请合并剂量或删除多余行`):r.length?V.msgSuccess(`已导入 ${e.length} 味药材${v},请核对剂量`):V.msgSuccess(`已导入 ${e.length} 味药材,请核对药名与剂量`),Q.value=!1,X.value=""}finally{Ue.value=!1}}const tt=Dt({stationName:"成都双流甄养堂互联网医院",showDisclaimer:!0,disclaimer:""}),a=Dt({diagnosis_id:0,appointment_id:0,prescription_name:"",prescription_type:"浓缩水丸",dosage_amount:10,dosage_unit:"g",dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,patient_name:"",gender:0,gender_desc:"女",age:0,phone:"",visit_no:"",prescription_date:"",pulse:"",tongue:"",tongue_image:"",pulse_condition:"",clinical_diagnosis:"",case_record:null,herbs:[],dose_count:1,dose_unit:"剂",usage_days:7,times_per_day:2,usage_instruction:"",usage_time:"饭后",usage_way:"温水送服",dietary_taboo:[],usage_notes:"",amount:0,doctor_name:"",doctor_signature:"",is_shared:0,aux_usage:te("浓缩水丸")}),De=Qs(),ts=Xs(),ss=t=>{const e=typeof t=="string"?t:(t==null?void 0:t.url)??(t==null?void 0:t.uri)??(t==null?void 0:t.path)??"";return e?String(e).startsWith("http")?e:ts.getImageUrl(e):""},Pe=x([]),Re=x([]),st=x([]),at=x([]),lt=x([]),ot=x([]),nt=x([]),rt=x([]),it=x([]),dt=x([]),ut=x([]),ct=x([]),pt=x([]),_t=x([]),mt=x([]),gt=x([]),ft=x([]),bt=x([]),H=(t,e)=>{if(!e)return"";const n=t.find(r=>r.value===e);return n?n.name:e},vt=async()=>{try{const[t,e,n,r,_,v,f,y,S,u,N,P,I,j,G,Z,oe,ee]=await Promise.all([C({type:"diagnosis_type"}),C({type:"syndrome_type"}),C({type:"diabetes_type"}),C({type:"past_history"}),C({type:"appetite"}),C({type:"water_intake"}),C({type:"diet_condition"}),C({type:"weight_change"}),C({type:"body_feeling"}),C({type:"sleep_condition"}),C({type:"eye_condition"}),C({type:"head_feeling"}),C({type:"sweat_condition"}),C({type:"skin_condition"}),C({type:"urine_condition"}),C({type:"stool_condition"}),C({type:"kidney_condition"}),C({type:"fatty_liver_degree"})]);Pe.value=(t==null?void 0:t.diagnosis_type)||[],Re.value=(e==null?void 0:e.syndrome_type)||[],st.value=(n==null?void 0:n.diabetes_type)||[],at.value=(r==null?void 0:r.past_history)||[],lt.value=(_==null?void 0:_.appetite)||[],ot.value=(v==null?void 0:v.water_intake)||[],nt.value=(f==null?void 0:f.diet_condition)||[],rt.value=(y==null?void 0:y.weight_change)||[],it.value=(S==null?void 0:S.body_feeling)||[],dt.value=(u==null?void 0:u.sleep_condition)||[],ut.value=(N==null?void 0:N.eye_condition)||[],ct.value=(P==null?void 0:P.head_feeling)||[],pt.value=(I==null?void 0:I.sweat_condition)||[],_t.value=(j==null?void 0:j.skin_condition)||[],mt.value=(G==null?void 0:G.urine_condition)||[],gt.value=(Z==null?void 0:Z.stool_condition)||[],ft.value=(oe==null?void 0:oe.kidney_condition)||[],bt.value=(ee==null?void 0:ee.fatty_liver_degree)||[]}catch{}},T=(t,e)=>{if(!e||Array.isArray(e)&&e.length===0)return"—";const r=(Array.isArray(e)?e:typeof e=="string"?e.split(","):[]).map(_=>{const v=t.find(f=>f.value===_);return v?v.name:_}).filter(Boolean);return r.length?r.join("、"):"—"},as=t=>!t||Array.isArray(t)&&t.length===0?"—":(Array.isArray(t)?t:typeof t=="string"?t.split(","):[]).filter(Boolean).join("、")||"—",ls=t=>{var _;if((_=t==null?void 0:t.symptoms)!=null&&_.trim())return t.symptoms.trim();const e=H(Pe.value,t==null?void 0:t.diagnosis_type),n=H(Re.value,t==null?void 0:t.syndrome_type),r=[e,n].filter(Boolean);return r.length?r.join(" "):""},os=async(t,e)=>{var n;if(J.value){console.warn("处方正在打开中,请勿重复点击");return}J.value=!0;try{e!=null&&e.stationName&&(tt.stationName=e.stationName);const r=t.diagnosis||t,_=t.diagnosis_id??(r==null?void 0:r.id)??t.id;if(!_){V.msgWarning("缺少诊单信息");return}await vt();const v=Number(t.id??t.appointment_id??0);if(v)try{const y=await ta({appointment_id:v});if(console.log("-----------",y),y!=null&&y.id){const S=await ve({id:y.id});d.value=S,F.value=!0;return}}catch{}let f=t.case_record&&Object.keys(t.case_record).length>0?t.case_record:null;if(!f&&_)try{const y=await $t({id:Number(_)});f=y&&typeof y=="object"?y:null}catch(y){console.warn("获取诊单详情失败:",y)}a.diagnosis_id=Number(_),a.appointment_id=v,a.prescription_name="",a.prescription_type="浓缩水丸",a.dosage_unit="g",a.dosage_amount=10,a.dosage_bag_count=1,a.patient_name=t.patient_name||r.patient_name||"",a.gender=t.patient_gender??r.gender??0,a.gender_desc=a.gender===1?"男":"女",a.age=t.patient_age??r.age??0,a.phone=t.patient_phone||r.phone||"",a.visit_no=t.id?`1K${String(t.id).padStart(8,"0")}`:"",a.prescription_date=new Date().toISOString().slice(0,10),a.pulse=r.pulse||"",a.tongue=r.tongue_coating||r.tongue||"",a.tongue_image="",a.pulse_condition="",a.clinical_diagnosis=ls(r),a.case_record=f,a.herbs=[],a.dose_count=1,a.dose_unit="剂",a.usage_days=7,a.usage_instruction="",a.usage_time="饭后",a.usage_way="温水送服",a.dietary_taboo=[],a.usage_notes="",a.amount=0,a.doctor_name=((n=De.userInfo)==null?void 0:n.name)||"",a.doctor_signature="",a.is_shared=0,a.need_decoction=!1,a.bags_per_dose=1,a.times_per_day=2,Object.assign(a.aux_usage,te("浓缩水丸")),d.value=null,F.value=!0,setTimeout(()=>Ie(),100)}finally{setTimeout(()=>{J.value=!1},500)}},ns=async(t,e)=>{if(J.value){console.warn("处方正在打开中,请勿重复点击");return}J.value=!0,R.value=(e==null?void 0:e.slipType)??"internal",he.value=(e==null?void 0:e.hideCaseRecord)??!1;try{const n=await ve({id:t});d.value=n,n!=null&&n.case_record&&Object.keys(n.case_record).length>0&&await vt(),F.value=!0}catch{V.msgError("加载处方失败")}finally{setTimeout(()=>{J.value=!1},500)}},Te=()=>{F.value=!1,d.value=null,R.value="internal",he.value=!1},yt=t=>{const e=L.value;if(!e)return{x:0,y:0};const n=e.getBoundingClientRect();if(n.width<=0||n.height<=0)return{x:0,y:0};const r=(t.clientX-n.left)/n.width*re,_=(t.clientY-n.top)/n.height*ie;return{x:Math.max(0,Math.min(re,r)),y:Math.max(0,Math.min(ie,_))}},rs=()=>{const t=L.value;t&&(a.doctor_signature=t.toDataURL("image/png"))},is=t=>{if(t.pointerType==="mouse"&&t.button!==0)return;const e=L.value,n=e==null?void 0:e.getContext("2d");if(!e||!n)return;e.setPointerCapture(t.pointerId),de.value=t.pointerId;const{x:r,y:_}=yt(t);n.beginPath(),n.moveTo(r,_)},ds=t=>{var _;if(de.value!==t.pointerId)return;const e=(_=L.value)==null?void 0:_.getContext("2d");if(!e)return;const{x:n,y:r}=yt(t);e.lineTo(n,r),e.stroke(),e.beginPath(),e.moveTo(n,r)},xt=t=>{if(de.value!==t.pointerId)return;de.value=null;const e=L.value;if(e)try{e.releasePointerCapture(t.pointerId)}catch{}rs()},us=()=>{Ie(),a.doctor_signature=""},Ie=()=>{const t=L.value;if(!t)return;const e=Math.min(typeof window<"u"&&window.devicePixelRatio||1,2.5);t.style.width=`${re}px`,t.style.height=`${ie}px`,t.width=Math.round(re*e),t.height=Math.round(ie*e);const n=t.getContext("2d");n&&(n.setTransform(1,0,0,1,0,0),n.scale(e,e),n.fillStyle="#fff",n.fillRect(0,0,re,ie),n.strokeStyle="#333",n.lineWidth=2.5,n.lineCap="round",n.lineJoin="round")};function Ee(t){return(t??"").trim()}function ge(t){var _,v;const e=a.herbs,n=Ee((_=e[t])==null?void 0:_.name);if(!n)return!1;let r=0;for(let f=0;f<e.length;f++)Ee((v=e[f])==null?void 0:v.name)===n&&r++;return r>1}function Oe(){const t=new Map;for(const e of a.herbs){const n=Ee(e==null?void 0:e.name);n&&t.set(n,(t.get(n)??0)+1)}return[...t.entries()].filter(([,e])=>e>1).map(([e])=>e)}const ht=(t="主方")=>{a.herbs.push({name:"",dosage:6,formula_type:t})},kt=t=>{a.herbs.splice(t,1)},fe=async()=>{const t=we.value;if(!t){V.msgWarning("无法确定开方医师,无法加载处方库"),Ne.value=[],$e.value=0;return}Se.value=!0;try{const e=await sa({page_no:Y.value,page_size:_e.value,prescription_name:ae.value,formula_type:le.value,prescribing_creator_id:t});Ne.value=e.lists||[],$e.value=e.count||0}catch(e){console.error("加载处方库失败:",e),V.msgError("加载处方库失败")}finally{Se.value=!1}},be=()=>{Y.value=1,fe()},cs=()=>{if(!we.value){V.msgWarning("无法确定开方医师,无法从处方库导入");return}W.value=!0},ps=t=>{Vt(t)},Vt=t=>{if(!t.herbs||t.herbs.length===0){V.msgWarning("该处方没有药材信息");return}const e=z(t.formula_type),n=JSON.parse(JSON.stringify(t.herbs)).map(_=>({...Ae(_),formula_type:e}));if(q.value==="replace"){const _=a.herbs.filter(v=>z(v.formula_type)!==e);a.herbs=[..._,...n]}else a.herbs.push(...n);const r=q.value==="append"?"(已追加)":"";Oe().length?V.msgWarning(`已导入处方「${t.prescription_name}」${r},共${n.length}味药材。存在重复药名,请合并剂量或删除多余行`):V.msgSuccess(`已导入处方「${t.prescription_name}」${r},共${n.length}味药材`),W.value=!1};Ct(W,t=>{if(t){if(!we.value){V.msgWarning("无法确定开方医师,无法从处方库导入"),W.value=!1;return}ae.value="",le.value="",q.value="replace",Y.value=1,fe()}}),Ct(()=>a.prescription_type,t=>{t==="浓缩水丸"?(a.dosage_unit="g",a.dosage_amount=10,a.dosage_bag_count=1,a.need_decoction=!1,a.bags_per_dose=1):t==="饮片"?(a.dosage_unit="ml",a.dosage_amount=50,a.dosage_bag_count=1,a.bags_per_dose=1):(a.dosage_unit="g",a.dosage_amount=void 0,a.dosage_bag_count=1,a.need_decoction=!1,a.bags_per_dose=1),Object.assign(a.aux_usage,te(t))});const _s=async()=>{var e,n,r;if(!((e=a.clinical_diagnosis)!=null&&e.trim())){V.msgWarning("请输入临床诊断");return}if(a.herbs.length===0){V.msgWarning("请至少添加一味中药");return}const t=Oe();if(t.length){V.msgWarning(`存在重复药名:${t.join("、")},请合并剂量或删除多余行后再保存`);return}for(const _ of a.herbs){if(!((n=_.name)!=null&&n.trim())){V.msgWarning("请填写中药名称");return}if(!_.dosage||_.dosage<=0){V.msgWarning(`请填写「${_.name}」的剂量`);return}}if(!((r=a.doctor_signature)!=null&&r.trim())){V.msgWarning("请使用电子签名板手写医师签名");return}ye.value=!0;try{const _=await aa({diagnosis_id:a.diagnosis_id,appointment_id:a.appointment_id,prescription_name:a.prescription_name,prescription_type:a.prescription_type,patient_name:a.patient_name,gender:a.gender,age:a.age,phone:a.phone,visit_no:a.visit_no,prescription_date:a.prescription_date,pulse:a.pulse,tongue:a.tongue,tongue_image:a.tongue_image,pulse_condition:a.pulse_condition,clinical_diagnosis:a.clinical_diagnosis,case_record:a.case_record,herbs:a.herbs.map(f=>Ae(f)),aux_usage:se.value.length>0?{...a.aux_usage}:null,dose_count:a.dose_count,dose_unit:a.dose_unit,dosage_amount:a.dosage_amount,dosage_unit:a.dosage_unit,dosage_bag_count:a.dosage_bag_count,need_decoction:a.need_decoction,bags_per_dose:a.bags_per_dose,usage_days:a.usage_days,times_per_day:a.times_per_day,usage_instruction:a.usage_instruction,usage_time:a.usage_time,usage_way:a.usage_way,dietary_taboo:a.dietary_taboo,usage_notes:a.usage_notes,amount:a.amount,doctor_name:a.doctor_name,doctor_signature:a.doctor_signature,is_shared:a.is_shared}),v=_==null?void 0:_.id;if(v){const f=await ve({id:v});d.value=f,Fe("success")}else V.msgError("保存失败")}catch(_){V.msgError((_==null?void 0:_.msg)||"保存失败")}finally{ye.value=!1}},ms=t=>{if(!t)return"—";const e=new Date(t*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}:${String(e.getSeconds()).padStart(2,"0")}`},gs=async()=>{var e,n;const t=(e=d.value)==null?void 0:e.id;if(t){if(Number((n=d.value)==null?void 0:n.has_prescription_order)===1){V.msgWarning("该处方已存在业务订单,无法作废");return}try{await V.confirm("确定要作废该处方吗?作废后不可恢复。"),xe.value=!0,await la({id:t}),V.msgSuccess("作废成功");const r=await ve({id:t});d.value=r,Fe("success")}catch(r){r!=="cancel"&&(r==null?void 0:r.message)!=="cancel"&&V.msgError((r==null?void 0:r.msg)||"作废失败")}finally{xe.value=!1}}},fs=async t=>{if(!t)return null;try{const e=await $t({id:t});return e&&typeof e=="object"?e:null}catch(e){return console.warn("获取诊单详情失败:",e),null}},bs=async()=>{var e;const t=d.value;t&&(a.diagnosis_id=t.diagnosis_id??a.diagnosis_id,a.appointment_id=t.appointment_id??a.appointment_id,a.prescription_name="",a.prescription_type=t.prescription_type||"浓缩水丸",a.prescription_type==="浓缩水丸"?(a.dosage_unit="g",a.dosage_amount=10,a.dosage_bag_count=1):a.prescription_type==="饮片"?(a.dosage_unit="ml",a.dosage_amount=50,a.dosage_bag_count=1):(a.dosage_unit="g",a.dosage_amount=void 0,a.dosage_bag_count=1),a.patient_name=t.patient_name||"",a.gender=t.gender??0,a.gender_desc=t.gender===1?"男":"女",a.age=t.age??0,a.phone=t.phone||"",a.visit_no=t.visit_no||"",a.prescription_date=new Date().toISOString().slice(0,10),a.pulse=t.pulse||"",a.tongue=t.tongue||"",a.tongue_image="",a.pulse_condition="",a.clinical_diagnosis=t.clinical_diagnosis||"",a.dose_count=1,a.dose_unit=t.dose_unit||"剂",a.usage_days=7,a.usage_instruction="",a.usage_time="饭后",a.usage_way="温水送服",a.dietary_taboo=[],a.usage_notes="",a.amount=0,a.doctor_name=((e=De.userInfo)==null?void 0:e.name)||t.doctor_name||"",a.doctor_signature="",a.is_shared=0,a.herbs=[],Object.assign(a.aux_usage,te(a.prescription_type||"浓缩水丸")),a.case_record=t.case_record&&Object.keys(t.case_record).length>0?t.case_record:await fs(Number(a.diagnosis_id)),setTimeout(()=>Ie(),100)),d.value=null},wt=async()=>{const t=Le.value;if(!t)throw new Error("未找到处方内容");return Ut(t,{scale:2,useCORS:!0,logging:!1,backgroundColor:"#ffffff"})},vs=async t=>{const e=t.querySelectorAll('img[src^="http"]'),n=Array.from(e).map(async r=>{try{const _=await fetch(r.src,{mode:"cors"});if(!_.ok)return;const v=await _.blob(),f=await new Promise((y,S)=>{const u=new FileReader;u.onload=()=>y(u.result),u.onerror=S,u.readAsDataURL(v)});r.src=f}catch{}});await Promise.allSettled(n)},ys=async()=>{const t=Me.value;return t?(t.scrollIntoView({behavior:"instant",block:"nearest"}),await vs(t),await new Promise(e=>setTimeout(e,200)),Ut(t,{scale:2,useCORS:!0,logging:!1,backgroundColor:"#ffffff"})):null},xs=async()=>{var t;try{const e=await wt(),n=document.createElement("a");n.download=`处方_${((t=d.value)==null?void 0:t.patient_name)||"未命名"}_${Date.now()}.png`,n.href=e.toDataURL("image/png"),n.click(),V.msgSuccess("图片已下载")}catch{V.msgError("下载图片失败")}},hs=async()=>{var t;try{const e=await wt(),n=e.toDataURL("image/png"),r=new na({orientation:"portrait",unit:"mm",format:"a5"}),_=r.internal.pageSize.getWidth(),v=r.internal.pageSize.getHeight(),f=Math.min(_/e.width,v/e.height),y=e.width*f,S=e.height*f;r.addImage(n,"PNG",0,0,y,S);const u=await ys();if(u){r.addPage("a3","p");const I=Math.min(297/u.width,420/u.height),j=u.width*I,G=u.height*I;r.addImage(u.toDataURL("image/png"),"PNG",0,0,j,G)}r.save(`处方_${((t=d.value)==null?void 0:t.patient_name)||"未命名"}_${Date.now()}.pdf`),V.msgSuccess("PDF已下载")}catch{V.msgError("下载PDF失败")}};return Rt({open:os,openById:ns}),(t,e)=>{const n=Rs,r=Ps,_=Ts,v=Ds,f=Us,y=Is,S=Es,u=As,N=Os,P=Hs,I=zs,j=Fs,G=Cs,Z=Ms,oe=Ls,ee=Ws,ks=js,Vs=$s,B=Ks,ws=qs,Ss=Js,St=Gs,Ns=Bs;return g(),b(D,null,[o(Vs,{modelValue:s(F),"onUpdate:modelValue":e[32]||(e[32]=h=>E(F)?F.value=h:null),title:s(Et),size:"1200px","close-on-click-modal":!1,onClose:Te},ma({default:i(()=>{var h,O;return[s(d)?(g(),b("div",Ma,[o(oe,{modelValue:s(R),"onUpdate:modelValue":e[31]||(e[31]=c=>E(R)?R.value=c:null),class:"rx-slip-tabs"},{default:i(()=>[o(Z,{label:"药房联",name:"internal"}),o(Z,{label:"处方联",name:"user"})]),_:1},8,["modelValue"]),l("div",Wa,[s(d).void_status===1?(g(),U(S,{key:0,type:"danger",size:"small"},{default:i(()=>[...e[69]||(e[69]=[m("已作废",-1)])]),_:1})):s(ue)?(g(),U(S,{key:1,type:"success",size:"small"},{default:i(()=>[...e[70]||(e[70]=[m("已通过",-1)])]),_:1})):Number(s(d).audit_status)===0?(g(),U(S,{key:2,type:"warning",size:"small"},{default:i(()=>[...e[71]||(e[71]=[m("待审核",-1)])]),_:1})):Number(s(d).audit_status)===2?(g(),U(S,{key:3,type:"danger",size:"small"},{default:i(()=>[...e[72]||(e[72]=[m("已驳回",-1)])]),_:1})):k("",!0),e[73]||(e[73]=l("div",{class:"flex-1"},null,-1))]),s(d).void_status===1?(g(),b("div",ja," 作废人:"+p(s(d).void_by_name||"—")+",作废时间:"+p(ms(s(d).void_time)),1)):Number(s(d).audit_status)===2?(g(),b("div",Ga,[e[74]||(e[74]=l("div",{class:"font-medium"},"处方审核:已驳回",-1)),s(d).audit_remark?(g(),b("div",Ba,"驳回意见:"+p(s(d).audit_remark),1)):k("",!0)])):k("",!0),l("div",Ka,[s(d)?(g(),b("div",{key:0,ref_key:"prescriptionPrintRef",ref:Le,class:"rx-paper"},[l("div",qa,[e[75]||(e[75]=l("span",{class:"rx-notice-text"}," 服药前请核对姓名、电话、医生等信息以及服法、医嘱等要点 ",-1)),l("span",Ja,[l("span",null,"日期:"+p(s(Ot)),1),l("span",null,"编号:"+p(s(At)),1)])]),l("div",Ya,[l("div",Qa,[l("div",Xa,[e[76]||(e[76]=l("span",{class:"rx-key"},"姓名",-1)),l("span",Za,p(s(d).patient_name||"—"),1)]),l("div",el,[e[77]||(e[77]=l("span",{class:"rx-key"},"性别",-1)),l("span",tl,p(Mt(s(d).gender)),1)]),l("div",sl,[e[78]||(e[78]=l("span",{class:"rx-key"},"年龄",-1)),l("span",al,p(Wt(s(d).age)),1)]),l("div",ll,[e[79]||(e[79]=l("span",{class:"rx-key"},"电话",-1)),l("span",ol,p(s(d).phone||"—"),1)])]),l("div",nl,[l("div",rl,[e[80]||(e[80]=l("span",{class:"rx-key"},"门诊号",-1)),l("span",il,p(s(d).visit_no||"—"),1)])]),s(d).pulse||s(d).tongue?(g(),b("div",dl,[s(d).pulse?(g(),b("div",ul,[e[81]||(e[81]=l("span",{class:"rx-key"},"面象",-1)),l("span",cl,p(s(d).pulse),1)])):k("",!0),s(d).tongue?(g(),b("div",pl,[e[82]||(e[82]=l("span",{class:"rx-key"},"舌象",-1)),l("span",_l,p(s(d).tongue),1)])):k("",!0)])):k("",!0),l("div",ml,[l("div",gl,[e[83]||(e[83]=l("span",{class:"rx-key"},"临床诊断",-1)),l("span",fl,p(s(d).clinical_diagnosis||"—"),1)])])]),l("div",bl,[l("div",vl,p(s(R)==="internal"?"药房联":"处方联"),1),l("div",yl,[e[86]||(e[86]=l("div",{class:"rx-rp-label"},"Rp.",-1)),l("div",xl,[l("div",hl,[e[84]||(e[84]=l("span",null,"用药 (单剂)",-1)),l("span",null,p(s(R)==="user"?"用量":"总量"),1)]),l("div",kl,[e[85]||(e[85]=l("span",null,"用药 (单剂)",-1)),l("span",null,p(s(R)==="user"?"用量":"总量"),1)])])]),l("div",Vl,[s(R)==="internal"?(g(),b(D,{key:0},[s(ce).length?(g(),b(D,{key:0},[e[87]||(e[87]=l("div",{class:"rx-herb-section-label"},"主方",-1)),(g(!0),b(D,null,A(s(ce),(c,$)=>(g(),b("div",{key:"main-"+$,class:"rx-herb-cell"},[l("span",wl,p(c.name)+" ("+p(c.dosage)+"克)",1),l("span",Sl,p(Ge(c.dosage))+"克",1)]))),128))],64)):k("",!0),s(K).length?(g(),b(D,{key:1},[e[88]||(e[88]=l("div",{class:"rx-herb-section-label rx-herb-section-label--aux"},"辅方",-1)),(g(!0),b(D,null,A(s(K),(c,$)=>(g(),b("div",{key:"aux-"+$,class:"rx-herb-cell"},[l("span",Nl,p(c.name)+" ("+p(c.dosage)+"克)",1),l("span",$l,p(Ge(c.dosage))+"克",1)]))),128))],64)):k("",!0)],64)):(g(),b(D,{key:1},[s(ce).length?(g(),b(D,{key:0},[e[89]||(e[89]=l("div",{class:"rx-herb-section-label"},"主方",-1)),(g(!0),b(D,null,A(s(ce),(c,$)=>(g(),b("div",{key:"user-main-"+$,class:"rx-herb-cell"},[l("span",Ul,p(c.name),1),l("span",Cl,p(c.dosage)+"克",1)]))),128))],64)):k("",!0),s(K).length?(g(),b(D,{key:1},[e[90]||(e[90]=l("div",{class:"rx-herb-section-label rx-herb-section-label--aux"},"辅方",-1)),(g(!0),b(D,null,A(s(K),(c,$)=>(g(),b("div",{key:"user-aux-"+$,class:"rx-herb-cell"},[l("span",Dl,p(c.name),1),l("span",Pl,p(c.dosage)+"克",1)]))),128))],64)):k("",!0)],64))])]),l("div",Rl,[s(R)==="internal"||s(ke)?(g(),b("p",Tl,"主方服法:"+p(s(Be)),1)):(g(),b("p",Il,"服法:"+p(s(Be)),1)),s(ke)?(g(),b("p",El,p(s(R)==="user"?"辅服法":"辅方服法")+":"+p(s(ke)),1)):k("",!0),s(Ke)?(g(),b("p",Ol,"医嘱:"+p(s(Ke)),1)):k("",!0),s(qe)?(g(),b("p",Al,"备注:"+p(s(qe)),1)):k("",!0),s(d).dietary_taboo&&s(d).dietary_taboo.length?(g(),b("p",zl," 忌口:"+p(Array.isArray(s(d).dietary_taboo)?s(d).dietary_taboo.join("、"):s(d).dietary_taboo),1)):k("",!0),s(Je)?(g(),b("p",Hl,"药房备注:"+p(s(Je)),1)):k("",!0),s(Xe)&&s(d).prescription_type!=="饮片"?(g(),b("p",Fl," 出丸:"+p(s(Xe)),1)):k("",!0)]),l("div",Ll,[l("div",Ml,[l("div",Wl,[e[91]||(e[91]=l("div",{class:"rx-bot-label"},"医师",-1)),l("div",jl,[s(d).doctor_signature?(g(),b("img",{key:0,src:s(d).doctor_signature,alt:"医师签名",class:"rx-bot-sign-img"},null,8,Gl)):k("",!0),l("div",Bl,p(s(d).doctor_name||"—"),1)])]),l("div",Kl,[e[92]||(e[92]=l("span",{class:"rx-bot-meta-key"},"类型:",-1)),l("span",ql,p(s(Ht)),1)]),l("div",Jl,[e[93]||(e[93]=l("span",{class:"rx-bot-meta-key"},"天数:",-1)),l("span",Yl,p(s(Ft)),1)]),l("div",Ql,[e[94]||(e[94]=l("span",{class:"rx-bot-meta-key"},"剂量:",-1)),l("span",Xl,p(s(zt))+"克",1)])]),s(R)==="user"?(g(),b("div",Zl,[...e[95]||(e[95]=[l("div",{class:"rx-hospital-line"},"成都双流甄养堂互联网医院有限公司 联系方式:4001667339",-1),l("div",{class:"rx-hospital-line"},"地址:四川省成都市双流区黄甲街道黄龙大道二段280号",-1)])])):k("",!0)])],512)):k("",!0),s(d).case_record&&!s(he)?(g(),b("div",{key:1,ref_key:"caseRecordPrintRef",ref:Me,class:"case-record-a3"},[l("div",eo,[l("h2",to,p(s(tt).stationName)+" 详细病历",1),l("div",so,[l("div",ao,[e[106]||(e[106]=l("div",{class:"cr-section-title"},"基本信息",-1)),l("div",lo,[l("div",oo,[e[96]||(e[96]=l("span",{class:"cr-label"},"诊单ID",-1)),m(p(s(d).case_record.patient_id||"—"),1)]),l("div",no,[e[97]||(e[97]=l("span",{class:"cr-label"},"姓名",-1)),m(p(s(d).case_record.patient_name||"—"),1)]),l("div",ro,[e[98]||(e[98]=l("span",{class:"cr-label"},"身份证号",-1)),m(p(s(d).case_record.id_card||"—"),1)]),l("div",io,[e[99]||(e[99]=l("span",{class:"cr-label"},"手机号",-1)),m(p(s(d).case_record.phone||"—"),1)]),l("div",uo,[e[100]||(e[100]=l("span",{class:"cr-label"},"性别",-1)),m(p(s(d).gender_desc),1)]),l("div",co,[e[101]||(e[101]=l("span",{class:"cr-label"},"年龄",-1)),m(p(s(d).case_record.age??"—")+"岁",1)]),l("div",po,[e[102]||(e[102]=l("span",{class:"cr-label"},"婚姻状态",-1)),m(p(["未婚","已婚","离异"][s(d).case_record.marital_status]??"—"),1)]),l("div",_o,[e[103]||(e[103]=l("span",{class:"cr-label"},"身高",-1)),m(p(s(d).case_record.height??"—")+"cm",1)]),l("div",mo,[e[104]||(e[104]=l("span",{class:"cr-label"},"体重",-1)),m(p(s(d).case_record.weight??"—")+"kg",1)]),l("div",go,[e[105]||(e[105]=l("span",{class:"cr-label"},"地区",-1)),m(p(s(d).case_record.region||"—"),1)])])]),l("div",fo,[e[109]||(e[109]=l("div",{class:"cr-section-title"},"生命体征",-1)),l("div",bo,[l("div",vo,[e[107]||(e[107]=l("span",{class:"cr-label"},"血压",-1)),m(p(s(d).case_record.systolic_pressure!=null&&s(d).case_record.diastolic_pressure!=null?s(d).case_record.systolic_pressure+"/"+s(d).case_record.diastolic_pressure+" mmHg":"—"),1)]),l("div",yo,[e[108]||(e[108]=l("span",{class:"cr-label"},"空腹血糖",-1)),m(p(s(d).case_record.fasting_blood_sugar!=null?s(d).case_record.fasting_blood_sugar+" mmol/L":"—"),1)])])]),l("div",xo,[e[117]||(e[117]=l("div",{class:"cr-section-title"},"主诉",-1)),l("div",ho,[l("div",ko,[e[110]||(e[110]=l("span",{class:"cr-label"},"诊断日期",-1)),m(p(s(d).case_record.diagnosis_date||"—"),1)]),l("div",Vo,[e[111]||(e[111]=l("span",{class:"cr-label"},"诊断类型",-1)),m(p(H(s(Pe),s(d).case_record.diagnosis_type)||"—"),1)]),l("div",wo,[e[112]||(e[112]=l("span",{class:"cr-label"},"证型",-1)),m(p(H(s(Re),s(d).case_record.syndrome_type)||"—"),1)]),l("div",So,[e[113]||(e[113]=l("span",{class:"cr-label"},"糖尿病期数",-1)),m(p(H(s(st),s(d).case_record.diabetes_type)||"—"),1)]),l("div",No,[e[114]||(e[114]=l("span",{class:"cr-label"},"发现糖尿病患病史",-1)),m(p(s(ea)((h=s(d).case_record)==null?void 0:h.diabetes_discovery_year)),1)]),l("div",$o,[e[115]||(e[115]=l("span",{class:"cr-label"},"当地医院诊断",-1)),m(p(as(s(d).case_record.local_hospital_diagnosis)),1)]),l("div",Uo,[e[116]||(e[116]=l("span",{class:"cr-label"},"当地就诊医院",-1)),m(p(s(d).case_record.local_hospital_name||"—"),1)])])]),l("div",Co,[e[133]||(e[133]=l("div",{class:"cr-section-title"},"现病史",-1)),l("div",Do,[l("div",Po,[e[118]||(e[118]=l("span",{class:"cr-label"},"口腔感觉",-1)),m(p(T(s(lt),s(d).case_record.appetite)),1)]),l("div",Ro,[e[119]||(e[119]=l("span",{class:"cr-label"},"每日饮水量",-1)),m(p(H(s(ot),s(d).case_record.water_intake)||"—"),1)]),l("div",To,[e[120]||(e[120]=l("span",{class:"cr-label"},"体重变化",-1)),m(p(H(s(rt),s(d).case_record.weight_change)||"—"),1)]),l("div",Io,[e[121]||(e[121]=l("span",{class:"cr-label"},"脂肪肝程度",-1)),m(p(H(s(bt),s(d).case_record.fatty_liver_degree)||"—"),1)]),l("div",Eo,[e[122]||(e[122]=l("span",{class:"cr-label"},"饮食情况",-1)),m(p(T(s(nt),s(d).case_record.diet_condition)),1)]),l("div",Oo,[e[123]||(e[123]=l("span",{class:"cr-label"},"肢体感觉",-1)),m(p(T(s(it),s(d).case_record.body_feeling)),1)]),l("div",Ao,[e[124]||(e[124]=l("span",{class:"cr-label"},"睡眠情况",-1)),m(p(T(s(dt),s(d).case_record.sleep_condition)),1)]),l("div",zo,[e[125]||(e[125]=l("span",{class:"cr-label"},"眼睛情况",-1)),m(p(T(s(ut),s(d).case_record.eye_condition)),1)]),l("div",Ho,[e[126]||(e[126]=l("span",{class:"cr-label"},"头部感觉",-1)),m(p(T(s(ct),s(d).case_record.head_feeling)),1)]),l("div",Fo,[e[127]||(e[127]=l("span",{class:"cr-label"},"出汗情况",-1)),m(p(T(s(pt),s(d).case_record.sweat_condition)),1)]),l("div",Lo,[e[128]||(e[128]=l("span",{class:"cr-label"},"皮肤情况",-1)),m(p(T(s(_t),s(d).case_record.skin_condition)),1)]),l("div",Mo,[e[129]||(e[129]=l("span",{class:"cr-label"},"小便情况",-1)),m(p(T(s(mt),s(d).case_record.urine_condition)),1)]),l("div",Wo,[e[130]||(e[130]=l("span",{class:"cr-label"},"大便情况",-1)),m(p(T(s(gt),s(d).case_record.stool_condition)),1)]),l("div",jo,[e[131]||(e[131]=l("span",{class:"cr-label"},"腰肾情况",-1)),m(p(T(s(ft),s(d).case_record.kidney_condition)),1)]),l("div",Go,[e[132]||(e[132]=l("span",{class:"cr-label"},"其他补充",-1)),m(p(s(d).case_record.symptoms||"—"),1)])])]),l("div",Bo,[e[135]||(e[135]=l("div",{class:"cr-section-title"},"既往史",-1)),l("div",Ko,[e[134]||(e[134]=l("span",{class:"cr-label"},null,-1)),m(p(T(s(at),s(d).case_record.past_history)),1)])]),l("div",qo,[e[141]||(e[141]=l("div",{class:"cr-section-title"},"其他病史",-1)),l("div",Jo,[l("div",Yo,[e[136]||(e[136]=l("span",{class:"cr-label"},"外伤史",-1)),m(p(s(d).case_record.trauma_history===1?"有":"无"),1)]),l("div",Qo,[e[137]||(e[137]=l("span",{class:"cr-label"},"手术史",-1)),m(p(s(d).case_record.surgery_history===1?"有":"无"),1)]),l("div",Xo,[e[138]||(e[138]=l("span",{class:"cr-label"},"过敏史",-1)),m(p(s(d).case_record.allergy_history===1?"有":"无"),1)]),l("div",Zo,[e[139]||(e[139]=l("span",{class:"cr-label"},"家族病史",-1)),m(p(s(d).case_record.family_history===1?"有":"无"),1)]),l("div",en,[e[140]||(e[140]=l("span",{class:"cr-label"},"妊娠哺乳史",-1)),m(p(s(d).case_record.pregnancy_history===1?"有":"无"),1)])])]),l("div",tn,[e[144]||(e[144]=l("div",{class:"cr-section-title"},"诊断信息",-1)),(O=s(d).case_record.tongue_images)!=null&&O.length?(g(),b("div",sn,[l("div",an,[e[142]||(e[142]=l("span",{class:"cr-label"},"舌苔照片",-1)),l("div",ln,[(g(!0),b(D,null,A(s(d).case_record.tongue_images,(c,$)=>(g(),b("img",{key:$,src:ss(c),class:"cr-img",crossorigin:"anonymous"},null,8,on))),128))])])])):k("",!0),l("div",nn,[l("div",rn,[e[143]||(e[143]=l("span",{class:"cr-label"},"舌象",-1)),m(p(s(d).case_record.tongue_coating||"—"),1)])])])])])],512)):k("",!0)]),s(d)&&(s(d).audit_by_name||s(d).audit_remark)?(g(),b("div",dn,[s(d).audit_by_name?(g(),b("div",un,[m(" 审核人:"+p(s(d).audit_by_name)+" ",1),s(d).audit_time?(g(),b("span",cn,p(jt(s(d).audit_time)),1)):k("",!0)])):k("",!0),s(d).audit_remark?(g(),b("div",pn,"审核意见:"+p(s(d).audit_remark),1)):k("",!0)])):k("",!0),l("div",_n,[o(f,{onClick:xs},{default:i(()=>[o(ee,null,{default:i(()=>[o(s(ua))]),_:1}),e[145]||(e[145]=m(" 下载图片 ",-1))]),_:1}),o(f,{type:"primary",onClick:hs},{default:i(()=>[o(ee,null,{default:i(()=>[o(s(ca))]),_:1}),e[146]||(e[146]=m(" 下载PDF ",-1))]),_:1}),s(d).void_status!==1&&!s(ue)?(g(),U(ks,{key:0,disabled:!s(We),content:"该处方已存在业务订单,无法作废,请前往已开处方里修改",placement:"top"},{default:i(()=>[l("span",mn,[o(f,{type:"danger",plain:"",disabled:s(We),loading:s(xe),onClick:gs},{default:i(()=>[...e[147]||(e[147]=[m(" 作废处方 ",-1)])]),_:1},8,["disabled","loading"])])]),_:1},8,["disabled"])):k("",!0),s(ue)?k("",!0):(g(),U(f,{key:1,onClick:bs},{default:i(()=>[...e[148]||(e[148]=[m("新建处方",-1)])]),_:1})),o(f,{onClick:Te},{default:i(()=>[...e[149]||(e[149]=[m("关闭",-1)])]),_:1})])])):(g(),b("div",fa,[o(G,{ref_key:"formRef",ref:It,model:s(a),"label-width":"100px",class:"prescription-form"},{default:i(()=>[l("div",ba,[e[44]||(e[44]=l("div",{class:"section-title"},"患者信息",-1)),o(v,{gutter:16},{default:i(()=>[o(r,{span:8},{default:i(()=>[o(n,{label:"姓名"},{default:i(()=>[l("span",null,p(s(a).patient_name),1)]),_:1})]),_:1}),o(r,{span:8},{default:i(()=>[o(n,{label:"性别"},{default:i(()=>[l("span",null,p(s(a).gender_desc),1)]),_:1})]),_:1}),o(r,{span:8},{default:i(()=>[o(n,{label:"年龄"},{default:i(()=>[l("span",null,p(s(a).age),1)]),_:1})]),_:1}),o(r,{span:12},{default:i(()=>[o(n,{label:"电话"},{default:i(()=>[l("span",null,p(s(a).phone),1)]),_:1})]),_:1}),o(r,{span:12},{default:i(()=>[o(n,{label:"门诊号"},{default:i(()=>[o(_,{modelValue:s(a).visit_no,"onUpdate:modelValue":e[0]||(e[0]=c=>s(a).visit_no=c),placeholder:"门诊号"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})]),l("div",va,[e[45]||(e[45]=l("div",{class:"section-title"},"诊断信息",-1)),o(v,{gutter:16},{default:i(()=>[o(r,{span:12},{default:i(()=>[o(n,{label:"面象",prop:"pulse"},{default:i(()=>[o(_,{modelValue:s(a).pulse,"onUpdate:modelValue":e[1]||(e[1]=c=>s(a).pulse=c),placeholder:"面象"},null,8,["modelValue"])]),_:1})]),_:1}),o(r,{span:12},{default:i(()=>[o(n,{label:"舌象",prop:"tongue"},{default:i(()=>[o(_,{modelValue:s(a).tongue,"onUpdate:modelValue":e[2]||(e[2]=c=>s(a).tongue=c),placeholder:"舌象"},null,8,["modelValue"])]),_:1})]),_:1}),o(r,{span:24},{default:i(()=>[o(n,{label:"临床诊断",prop:"clinical_diagnosis"},{default:i(()=>[o(_,{modelValue:s(a).clinical_diagnosis,"onUpdate:modelValue":e[3]||(e[3]=c=>s(a).clinical_diagnosis=c),type:"textarea",rows:2,placeholder:"请输入临床诊断"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})]),l("div",ya,[l("div",xa,[l("div",ha,[e[48]||(e[48]=l("span",{class:"rp-toolbar__marker","aria-hidden":"true"},null,-1)),l("div",ka,[e[47]||(e[47]=l("h3",{class:"rp-toolbar__heading"},[m(" 中药处方 "),l("span",{class:"rp-toolbar__abbr"},"(RP)")],-1)),l("p",Va,[e[46]||(e[46]=m(" 共 ",-1)),l("strong",null,p(s(a).herbs.length),1),m(" 味(主方 "+p(s(Gt))+" / 辅方 "+p(s(Bt))+")· 可手动添加、从处方库或粘贴药方批量录入 ",1)])])]),l("div",wa,[o(f,{type:"primary",size:"small",icon:s(ra),onClick:e[4]||(e[4]=c=>ht("主方"))},{default:i(()=>[...e[49]||(e[49]=[m(" 添加主方 ",-1)])]),_:1},8,["icon"]),o(f,{type:"primary",plain:"",size:"small",onClick:e[5]||(e[5]=c=>ht("辅方"))},{default:i(()=>[...e[50]||(e[50]=[m(" 添加辅方 ",-1)])]),_:1}),o(f,{type:"primary",plain:"",size:"small",icon:s(ia),onClick:cs},{default:i(()=>[...e[51]||(e[51]=[m(" 从处方库导入 ",-1)])]),_:1},8,["icon"]),o(f,{type:"primary",plain:"",size:"small",icon:s(da),onClick:Zt},{default:i(()=>[...e[52]||(e[52]=[m(" 导入药方 ",-1)])]),_:1},8,["icon"])])]),l("div",Sa,[o(n,{label:"处方价格",prop:"amount",class:"!mb-0"},{default:i(()=>[o(y,{modelValue:s(a).amount,"onUpdate:modelValue":e[6]||(e[6]=c=>s(a).amount=c),min:0,precision:2,placeholder:"请输入处方总价(元)",class:"!w-40"},null,8,["modelValue"]),e[53]||(e[53]=l("span",{class:"ml-2 text-gray-500"},"元",-1))]),_:1})]),l("div",Na,[l("div",$a,[o(S,{type:"primary",size:"small"},{default:i(()=>[...e[54]||(e[54]=[m("主方",-1)])]),_:1})]),l("div",Ua,[(g(!0),b(D,null,A(s(Ze),c=>(g(),b("div",{key:"main-"+c.index,class:Pt(["herb-editor-card",{"herb-editor-card--dup":ge(c.index)}])},[l("div",Ca,"主方 "+p(c.index+1),1),o(Nt,{modelValue:s(a).herbs[c.index].name,"onUpdate:modelValue":$=>s(a).herbs[c.index].name=$,class:"herb-editor-card__select"},null,8,["modelValue","onUpdate:modelValue"]),ge(c.index)?(g(),b("div",Da," 该药名与其他行重复,请合并剂量或删除多余行 ")):k("",!0),l("div",Pa,[o(y,{modelValue:s(a).herbs[c.index].dosage,"onUpdate:modelValue":$=>s(a).herbs[c.index].dosage=$,min:.1,step:1,precision:1,placeholder:"剂量(克)",class:"herb-editor-card__dose"},null,8,["modelValue","onUpdate:modelValue"]),e[56]||(e[56]=l("span",{class:"text-gray-500 shrink-0"},"克",-1)),o(f,{type:"danger",size:"small",link:"",onClick:$=>kt(c.index)},{default:i(()=>[...e[55]||(e[55]=[m(" 删除 ",-1)])]),_:1},8,["onClick"])])],2))),128))])]),l("div",Ra,[l("div",Ta,[o(S,{type:"warning",size:"small"},{default:i(()=>[...e[57]||(e[57]=[m("辅方",-1)])]),_:1})]),l("div",Ia,[(g(!0),b(D,null,A(s(se),c=>(g(),b("div",{key:"aux-"+c.index,class:Pt(["herb-editor-card",{"herb-editor-card--dup":ge(c.index)}])},[e[60]||(e[60]=l("div",{class:"herb-editor-card__title"},"辅方",-1)),o(Nt,{modelValue:s(a).herbs[c.index].name,"onUpdate:modelValue":$=>s(a).herbs[c.index].name=$,class:"herb-editor-card__select"},null,8,["modelValue","onUpdate:modelValue"]),ge(c.index)?(g(),b("div",Ea," 该药名与其他行重复,请合并剂量或删除多余行 ")):k("",!0),l("div",Oa,[o(y,{modelValue:s(a).herbs[c.index].dosage,"onUpdate:modelValue":$=>s(a).herbs[c.index].dosage=$,min:.1,step:1,precision:1,placeholder:"剂量(克)",class:"herb-editor-card__dose"},null,8,["modelValue","onUpdate:modelValue"]),e[59]||(e[59]=l("span",{class:"text-gray-500 shrink-0"},"克",-1)),o(f,{type:"danger",size:"small",link:"",onClick:$=>kt(c.index)},{default:i(()=>[...e[58]||(e[58]=[m(" 删除 ",-1)])]),_:1},8,["onClick"])])],2))),128)),s(se).length?k("",!0):(g(),b("p",Aa,"暂无辅方药材"))])])]),l("div",za,[o(v,{gutter:16},{default:i(()=>[o(r,{span:8},{default:i(()=>[o(n,{label:"处方类型",prop:"prescription_type"},{default:i(()=>[o(N,{modelValue:s(a).prescription_type,"onUpdate:modelValue":e[7]||(e[7]=c=>s(a).prescription_type=c),placeholder:"请选择处方类型",class:"!w-full"},{default:i(()=>[o(u,{label:"浓缩水丸",value:"浓缩水丸"}),o(u,{label:"饮片",value:"饮片"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),o(r,{span:24},{default:i(()=>[...e[61]||(e[61]=[l("div",{class:"usage-formula-title usage-formula-title--main"},"主方用法",-1)])]),_:1}),o(r,{span:8},{default:i(()=>[o(n,{label:"用量",prop:"dosage_amount"},{default:i(()=>[s(a).prescription_type==="浓缩水丸"?(g(),U(N,{key:0,modelValue:s(a).dosage_amount,"onUpdate:modelValue":e[8]||(e[8]=c=>s(a).dosage_amount=c),placeholder:"请选择用量",class:"!w-full"},{default:i(()=>[o(u,{label:"1g",value:1}),o(u,{label:"2g",value:2}),o(u,{label:"3g",value:3}),o(u,{label:"4g",value:4}),o(u,{label:"5g",value:5}),o(u,{label:"6g",value:6}),o(u,{label:"7g",value:7}),o(u,{label:"8g",value:8}),o(u,{label:"9g",value:9}),o(u,{label:"10g",value:10})]),_:1},8,["modelValue"])):s(a).prescription_type==="饮片"?(g(),U(N,{key:1,modelValue:s(a).dosage_amount,"onUpdate:modelValue":e[9]||(e[9]=c=>s(a).dosage_amount=c),placeholder:"请选择用量",class:"!w-full"},{default:i(()=>[o(u,{label:"50ml",value:50}),o(u,{label:"100ml",value:100}),o(u,{label:"120ml",value:120}),o(u,{label:"150ml",value:150}),o(u,{label:"180ml",value:180}),o(u,{label:"200ml",value:200}),o(u,{label:"250ml",value:250})]),_:1},8,["modelValue"])):(g(),U(y,{key:2,modelValue:s(a).dosage_amount,"onUpdate:modelValue":e[10]||(e[10]=c=>s(a).dosage_amount=c),min:0,precision:2,class:"!w-full"},null,8,["modelValue"])),s(a).prescription_type!=="浓缩水丸"&&s(a).prescription_type!=="饮片"?(g(),b("span",Ha,p(s(a).dosage_unit),1)):k("",!0)]),_:1})]),_:1}),s(a).prescription_type==="浓缩水丸"?(g(),U(r,{key:0,span:8},{default:i(()=>[o(n,{label:" ",prop:"dosage_bag_count","label-width":"12px"},{default:i(()=>[o(N,{modelValue:s(a).dosage_bag_count,"onUpdate:modelValue":e[11]||(e[11]=c=>s(a).dosage_bag_count=c),placeholder:"请选择袋数",class:"!w-[120px]"},{default:i(()=>[o(u,{label:"1袋",value:1}),o(u,{label:"2袋",value:2}),o(u,{label:"3袋",value:3}),o(u,{label:"4袋",value:4}),o(u,{label:"5袋",value:5})]),_:1},8,["modelValue"])]),_:1})]),_:1})):k("",!0),s(a).prescription_type==="饮片"?(g(),U(r,{key:1,span:8},{default:i(()=>[o(n,{label:"每贴出包数",prop:"bags_per_dose"},{default:i(()=>[o(N,{modelValue:s(a).bags_per_dose,"onUpdate:modelValue":e[12]||(e[12]=c=>s(a).bags_per_dose=c),placeholder:"请选择",class:"!w-full"},{default:i(()=>[o(u,{label:"1包",value:1}),o(u,{label:"2包",value:2}),o(u,{label:"3包",value:3}),o(u,{label:"4包",value:4}),o(u,{label:"5包",value:5}),o(u,{label:"6包",value:6}),o(u,{label:"7包",value:7}),o(u,{label:"8包",value:8}),o(u,{label:"9包",value:9})]),_:1},8,["modelValue"])]),_:1})]),_:1})):k("",!0),s(a).prescription_type==="饮片"?(g(),U(r,{key:2,span:8},{default:i(()=>[o(n,{label:"是否代煎",prop:"need_decoction"},{default:i(()=>[o(I,{modelValue:s(a).need_decoction,"onUpdate:modelValue":e[13]||(e[13]=c=>s(a).need_decoction=c)},{default:i(()=>[o(P,{label:!0},{default:i(()=>[...e[62]||(e[62]=[m("代煎",-1)])]),_:1}),o(P,{label:!1},{default:i(()=>[...e[63]||(e[63]=[m("不代煎",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})):k("",!0),o(r,{span:8},{default:i(()=>[o(n,{label:"服用天数",prop:"usage_days"},{default:i(()=>[o(y,{modelValue:s(a).usage_days,"onUpdate:modelValue":e[14]||(e[14]=c=>s(a).usage_days=c),min:1,max:365,class:"!w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(r,{span:8},{default:i(()=>[o(n,{label:"每天几次",prop:"times_per_day"},{default:i(()=>[o(y,{modelValue:s(a).times_per_day,"onUpdate:modelValue":e[15]||(e[15]=c=>s(a).times_per_day=c),min:1,max:6,class:"!w-full",placeholder:"每天服用次数"},null,8,["modelValue"])]),_:1})]),_:1}),s(se).length>0?(g(),b(D,{key:3},[o(r,{span:24},{default:i(()=>[...e[64]||(e[64]=[l("div",{class:"usage-formula-title usage-formula-title--aux"},"辅方用法",-1)])]),_:1}),o(r,{span:8},{default:i(()=>[o(n,{label:"用量"},{default:i(()=>[s(a).prescription_type==="浓缩水丸"?(g(),U(N,{key:0,modelValue:s(a).aux_usage.dosage_amount,"onUpdate:modelValue":e[16]||(e[16]=c=>s(a).aux_usage.dosage_amount=c),placeholder:"请选择用量",class:"!w-full"},{default:i(()=>[(g(),b(D,null,A(10,c=>o(u,{key:c,label:c+"g",value:c},null,8,["label","value"])),64))]),_:1},8,["modelValue"])):s(a).prescription_type==="饮片"?(g(),U(N,{key:1,modelValue:s(a).aux_usage.dosage_amount,"onUpdate:modelValue":e[17]||(e[17]=c=>s(a).aux_usage.dosage_amount=c),placeholder:"请选择用量",class:"!w-full"},{default:i(()=>[o(u,{label:"50ml",value:50}),o(u,{label:"100ml",value:100}),o(u,{label:"120ml",value:120}),o(u,{label:"150ml",value:150}),o(u,{label:"180ml",value:180}),o(u,{label:"200ml",value:200}),o(u,{label:"250ml",value:250})]),_:1},8,["modelValue"])):(g(),U(y,{key:2,modelValue:s(a).aux_usage.dosage_amount,"onUpdate:modelValue":e[18]||(e[18]=c=>s(a).aux_usage.dosage_amount=c),min:0,precision:2,class:"!w-full"},null,8,["modelValue"]))]),_:1})]),_:1}),s(a).prescription_type==="浓缩水丸"?(g(),U(r,{key:0,span:8},{default:i(()=>[o(n,{label:" ","label-width":"12px"},{default:i(()=>[o(N,{modelValue:s(a).aux_usage.dosage_bag_count,"onUpdate:modelValue":e[19]||(e[19]=c=>s(a).aux_usage.dosage_bag_count=c),placeholder:"请选择袋数",class:"!w-[120px]"},{default:i(()=>[o(u,{label:"1袋",value:1}),o(u,{label:"2袋",value:2}),o(u,{label:"3袋",value:3}),o(u,{label:"4袋",value:4}),o(u,{label:"5袋",value:5})]),_:1},8,["modelValue"])]),_:1})]),_:1})):k("",!0),s(a).prescription_type==="饮片"?(g(),U(r,{key:1,span:8},{default:i(()=>[o(n,{label:"是否代煎"},{default:i(()=>[o(I,{modelValue:s(a).aux_usage.need_decoction,"onUpdate:modelValue":e[20]||(e[20]=c=>s(a).aux_usage.need_decoction=c)},{default:i(()=>[o(P,{label:!0},{default:i(()=>[...e[65]||(e[65]=[m("代煎",-1)])]),_:1}),o(P,{label:!1},{default:i(()=>[...e[66]||(e[66]=[m("不代煎",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})):k("",!0),s(a).prescription_type==="饮片"?(g(),U(r,{key:2,span:8},{default:i(()=>[o(n,{label:"每贴出包数"},{default:i(()=>[o(N,{modelValue:s(a).aux_usage.bags_per_dose,"onUpdate:modelValue":e[21]||(e[21]=c=>s(a).aux_usage.bags_per_dose=c),placeholder:"请选择",class:"!w-full"},{default:i(()=>[(g(),b(D,null,A(9,c=>o(u,{key:c,label:c+"包",value:c},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})]),_:1})):k("",!0),o(r,{span:8},{default:i(()=>[o(n,{label:"每天几次"},{default:i(()=>[o(y,{modelValue:s(a).aux_usage.times_per_day,"onUpdate:modelValue":e[22]||(e[22]=c=>s(a).aux_usage.times_per_day=c),min:1,max:6,class:"!w-full",placeholder:"每天服用次数"},null,8,["modelValue"])]),_:1})]),_:1}),o(r,{span:8},{default:i(()=>[o(n,{label:"服用天数"},{default:i(()=>[o(y,{modelValue:s(a).aux_usage.usage_days,"onUpdate:modelValue":e[23]||(e[23]=c=>s(a).aux_usage.usage_days=c),min:1,max:365,class:"!w-full"},null,8,["modelValue"])]),_:1})]),_:1})],64)):k("",!0),o(r,{span:24},{default:i(()=>[o(n,{label:"用法",prop:"usage_instruction"},{default:i(()=>[o(_,{modelValue:s(a).usage_instruction,"onUpdate:modelValue":e[24]||(e[24]=c=>s(a).usage_instruction=c),placeholder:"",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1}),o(r,{span:12},{default:i(()=>[o(n,{label:"服用时间",prop:"usage_time"},{default:i(()=>[o(N,{modelValue:s(a).usage_time,"onUpdate:modelValue":e[25]||(e[25]=c=>s(a).usage_time=c),placeholder:"请选择服用时间",class:"!w-full"},{default:i(()=>[o(u,{label:"饭前",value:"饭前"}),o(u,{label:"饭后",value:"饭后"}),o(u,{label:"饭中",value:"饭中"}),o(u,{label:"空腹",value:"空腹"}),o(u,{label:"睡前",value:"睡前"}),o(u,{label:"晨起",value:"晨起"}),o(u,{label:"随时",value:"随时"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),o(r,{span:12},{default:i(()=>[o(n,{label:"服用方式",prop:"usage_way"},{default:i(()=>[o(N,{modelValue:s(a).usage_way,"onUpdate:modelValue":e[26]||(e[26]=c=>s(a).usage_way=c),placeholder:"请选择服用方式",class:"!w-full"},{default:i(()=>[o(u,{label:"温水送服",value:"温水送服"}),o(u,{label:"开水冲服",value:"开水冲服"}),o(u,{label:"黄酒送服",value:"黄酒送服"}),o(u,{label:"淡盐水送服",value:"淡盐水送服"}),o(u,{label:"米汤送服",value:"米汤送服"}),o(u,{label:"嚼服",value:"嚼服"}),o(u,{label:"含化",value:"含化"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),o(r,{span:24},{default:i(()=>[o(n,{label:"忌口",prop:"dietary_taboo"},{default:i(()=>[o(N,{modelValue:s(a).dietary_taboo,"onUpdate:modelValue":e[27]||(e[27]=c=>s(a).dietary_taboo=c),multiple:"",placeholder:"请选择忌口内容(可多选)",class:"!w-full"},{default:i(()=>[o(u,{label:"辛辣食物",value:"辛辣食物"}),o(u,{label:"生冷食物",value:"生冷食物"}),o(u,{label:"油腻食物",value:"油腻食物"}),o(u,{label:"海鲜",value:"海鲜"}),o(u,{label:"牛羊肉",value:"牛羊肉"}),o(u,{label:"鸡蛋",value:"鸡蛋"}),o(u,{label:"豆制品",value:"豆制品"}),o(u,{label:"酒类",value:"酒类"}),o(u,{label:"浓茶",value:"浓茶"}),o(u,{label:"咖啡",value:"咖啡"}),o(u,{label:"烟草",value:"烟草"}),o(u,{label:"萝卜",value:"萝卜"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),o(r,{span:24},{default:i(()=>[o(n,{label:"其他说明",prop:"usage_notes"},{default:i(()=>[o(_,{modelValue:s(a).usage_notes,"onUpdate:modelValue":e[28]||(e[28]=c=>s(a).usage_notes=c),type:"textarea",rows:2,placeholder:"其他服用注意事项",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1}),o(r,{span:12},{default:i(()=>[o(n,{label:"医师",prop:"doctor_name"},{default:i(()=>[o(_,{modelValue:s(a).doctor_name,"onUpdate:modelValue":e[29]||(e[29]=c=>s(a).doctor_name=c),placeholder:"医师姓名"},null,8,["modelValue"])]),_:1})]),_:1}),o(r,{span:12},{default:i(()=>[o(n,{label:"是否共享",prop:"is_shared"},{default:i(()=>[o(j,{modelValue:s(a).is_shared,"onUpdate:modelValue":e[30]||(e[30]=c=>s(a).is_shared=c),"active-value":1,"inactive-value":0,"active-text":"所有人可见","inactive-text":"仅自己可见"},null,8,["modelValue"])]),_:1})]),_:1}),o(r,{span:24},{default:i(()=>[o(n,{label:"医师签名",prop:"doctor_signature",required:""},{default:i(()=>[l("div",Fa,[l("canvas",{ref_key:"signatureCanvasRef",ref:L,class:"signature-canvas",onPointerdown:ne(is,["prevent"]),onPointermove:ne(ds,["prevent"]),onPointerup:ne(xt,["prevent"]),onPointercancel:ne(xt,["prevent"])},null,544),l("div",La,[o(f,{size:"small",onClick:us},{default:i(()=>[...e[67]||(e[67]=[m("清空签名",-1)])]),_:1})])]),e[68]||(e[68]=l("div",{class:"text-xs text-amber-600 mt-1"},"* 必填,请在框内手写医师签名",-1))]),_:1})]),_:1})]),_:1})])]),_:1},8,["model"])]))]}),_:2},[s(d)?void 0:{name:"footer",fn:i(()=>[l("div",gn,[o(f,{onClick:Te},{default:i(()=>[...e[150]||(e[150]=[m("取消",-1)])]),_:1}),o(f,{type:"primary",onClick:_s,loading:s(ye)},{default:i(()=>[...e[151]||(e[151]=[m("保存处方",-1)])]),_:1},8,["loading"])])]),key:"0"}]),1032,["modelValue","title"]),o(St,{modelValue:s(W),"onUpdate:modelValue":e[38]||(e[38]=h=>E(W)?W.value=h:null),title:"从处方库导入",width:"800px","close-on-click-modal":!1},{default:i(()=>[l("div",fn,[o(_,{modelValue:s(ae),"onUpdate:modelValue":e[33]||(e[33]=h=>E(ae)?ae.value=h:null),class:"flex-1",placeholder:"请输入处方名称搜索",clearable:"",onKeyup:Ys(be,["enter"]),onClear:be},{append:i(()=>[o(f,{icon:s(pa),onClick:be},null,8,["icon"])]),_:1},8,["modelValue"]),o(N,{modelValue:s(le),"onUpdate:modelValue":e[34]||(e[34]=h=>E(le)?le.value=h:null),placeholder:"处方类型",clearable:"",class:"w-[140px]",onChange:be},{default:i(()=>[o(u,{label:"全部",value:""}),o(u,{label:"主方",value:"主方"}),o(u,{label:"辅方",value:"辅方"})]),_:1},8,["modelValue"])]),l("div",bn,[e[154]||(e[154]=l("span",{class:"text-sm text-gray-600 shrink-0"},"导入方式",-1)),o(I,{modelValue:s(q),"onUpdate:modelValue":e[35]||(e[35]=h=>E(q)?q.value=h:null)},{default:i(()=>[o(P,{label:"replace"},{default:i(()=>[...e[152]||(e[152]=[m("覆盖同类型药材",-1)])]),_:1}),o(P,{label:"append"},{default:i(()=>[...e[153]||(e[153]=[m("追加到末尾",-1)])]),_:1})]),_:1},8,["modelValue"])]),ga((g(),U(ws,{data:s(Ne),height:"400",onRowClick:ps,style:{cursor:"pointer"}},{default:i(()=>[o(B,{label:"处方名称",prop:"prescription_name","min-width":"150","show-overflow-tooltip":""}),o(B,{label:"处方类型",width:"90"},{default:i(({row:h})=>[o(S,{type:h.formula_type==="辅方"?"warning":"primary",size:"small"},{default:i(()=>[m(p(h.formula_type||"主方"),1)]),_:2},1032,["type"])]),_:1}),o(B,{label:"药材数量",width:"100"},{default:i(({row:h})=>{var O;return[m(p(((O=h.herbs)==null?void 0:O.length)||0)+"味 ",1)]}),_:1}),o(B,{label:"药材明细","min-width":"300","show-overflow-tooltip":""},{default:i(({row:h})=>[h.herbs&&h.herbs.length>0?(g(),b("span",vn,p(h.herbs.map(O=>`${O.name} ${O.dosage}g`).join("、")),1)):(g(),b("span",yn,"暂无药材"))]),_:1}),o(B,{label:"是否公开",width:"110"},{default:i(({row:h})=>[o(S,{type:h.is_public?"success":"info",size:"small"},{default:i(()=>[m(p(h.is_public?"所有人可见":"仅自己可见"),1)]),_:2},1032,["type"])]),_:1}),o(B,{label:"创建人",prop:"creator_name",width:"100"}),o(B,{label:"操作",width:"100",fixed:"right"},{default:i(({row:h})=>[o(f,{type:"primary",link:"",onClick:ne(O=>Vt(h),["stop"])},{default:i(()=>[...e[155]||(e[155]=[m(" 导入 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[Ns,s(Se)]]),l("div",xn,[o(Ss,{"current-page":s(Y),"onUpdate:currentPage":e[36]||(e[36]=h=>E(Y)?Y.value=h:null),"page-size":s(_e),"onUpdate:pageSize":e[37]||(e[37]=h=>E(_e)?_e.value=h:null),total:s($e),"page-sizes":[10,15,20,50],layout:"total, sizes, prev, pager, next",onCurrentChange:fe,onSizeChange:fe},null,8,["current-page","page-size","total"])])]),_:1},8,["modelValue"]),o(St,{modelValue:s(Q),"onUpdate:modelValue":e[42]||(e[42]=h=>E(Q)?Q.value=h:null),title:"导入药方(识别药材)",width:"560px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:e[43]||(e[43]=h=>X.value="")},{footer:i(()=>[o(f,{onClick:e[41]||(e[41]=h=>Q.value=!1)},{default:i(()=>[...e[160]||(e[160]=[m("取消",-1)])]),_:1}),o(f,{type:"primary",loading:s(Ue),onClick:es},{default:i(()=>[...e[161]||(e[161]=[m(" 识别并导入 ",-1)])]),_:1},8,["loading"])]),default:i(()=>[e[162]||(e[162]=l("p",{class:"text-gray-500 text-sm mb-2 leading-relaxed"}," 粘贴整张药方文本,系统按「药名 + 剂量」解析;药名须与药品库中名称完全一致才会录入,否则跳过。支持顿号/逗号/换行分隔;单行可用空格分味(如「黄芪15g 白术10g」);「黄芪、党参各10克」等同剂量写法亦可识别。 ",-1)),o(_,{modelValue:s(X),"onUpdate:modelValue":e[39]||(e[39]=h=>E(X)?X.value=h:null),type:"textarea",rows:10,placeholder:`示例:
|
||
黄芪15 党参12 茯苓10
|
||
柴胡10g、黄芩10、半夏12克
|
||
黄芪、白术、茯苓各15克`},null,8,["modelValue"]),l("div",hn,[e[158]||(e[158]=l("span",{class:"text-sm text-gray-600 shrink-0"},"导入方式",-1)),o(I,{modelValue:s(me),"onUpdate:modelValue":e[40]||(e[40]=h=>E(me)?me.value=h:null)},{default:i(()=>[o(P,{label:"replace"},{default:i(()=>[...e[156]||(e[156]=[m("覆盖主方药材",-1)])]),_:1}),o(P,{label:"append"},{default:i(()=>[...e[157]||(e[157]=[m("追加到主方末尾",-1)])]),_:1})]),_:1},8,["modelValue"]),e[159]||(e[159]=l("span",{class:"text-xs text-gray-500"},"(粘贴导入至主方,保留已有辅方)",-1))])]),_:1},8,["modelValue"])],64)}}}),pr=Zs(kn,[["__scopeId","data-v-41ad482e"]]);export{pr as default};
|