cnhis-design-vue 3.2.18-beta.8 → 3.2.18-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- import{defineComponent as e,inject as n,ref as t,watch as o,createVNode as s,createTextVNode as r,nextTick as a,resolveComponent as l}from"vue";import{NSpin as i}from"naive-ui";import{InjectionAIChatEmits as c,InjectionAIChat as u}from"../types/index.js";import{isArray as d,isFunction as m}from"lodash-es";import{uuidGenerator as p}from"../../../../shared/utils/index.js";import"@vueuse/core";import"date-fns";import"@vue/shared";import"@vueuse/shared";import"../../../../shared/hooks/selectHooks/useSearchContent.js";import"@vicons/ionicons5";import{useScrollLoading as v}from"../../../../shared/hooks/useScrollLoading.js";import f from"./card/JsonCard.js";import{conversationApi as g}from"../api/index.js";import{useProgram as h}from"../hooks/useProgram.js";var y=e({name:"ChatMain",inheritAttrs:!1,components:{JsonCard:f},setup(e,{attrs:f,slots:y,emit:j}){n(c);const{patientInfo:C,state:b,queryRecord:x}=n(u),{programMethod:T,MedicalOrderId:_}=h(),w=t(null),M=t([]),k={page:0,hasMore:!0};async function I(){if(!k.hasMore)return;k.page++,1==k.page&&(M.value=[]);const{records:e,rows:n}=await x.value({page:k.page});d(n)&&M.value.length<=+e&&(M.value=k.page>1?[...M.value,...n]:n,M.value.length>=+e&&(k.hasMore=!1,console.log("没有更多消息了")))}async function q(e){var n;d(e.contents)&&(M.value.unshift(e),await a(),null==(n=w.value)||n.scrollTo({top:0,behavior:"auto"}))}function E(e,n){var t,o;return"json"===(null==(o=null==(t=null==e?void 0:e.contents)?void 0:t[n])?void 0:o.contentType)}function J(e,n){var t;const{contents:o=[],msgId:r=""}=e;if("json"===(null==(t=o[n])?void 0:t.contentType))return function(e,n){return s(l("json-card"),{item:e,messageItem:n},null)}(e,o[n]);return[o[n].content.replace(/\\n|\n|\r\n/g,"<br>").split("<br>").filter((e=>!!e)).map(((e,n,t)=>[e,n===t.length-1?null:s("br",null,null)]))]}function O({role:e=""}){return"user"===e}return v(w,(()=>{I()}),"top"),I(),o((()=>b.reportContent),(e=>{e&&q(e)})),o((()=>b.sending),(async e=>{var n,t,o;if(e){b.sendContent&&(M.value.unshift({msgId:p(),contents:[{role:"user",content:b.sendContent}]}),null==(n=w.value)||n.scrollTo({top:0,behavior:"auto"}));const{opType:e}=b.params||{};if(e&&["recommend_treatment_plan","recommend_diagnosis"].includes(e)&&M.value.length>0){const e=M.value.find((e=>{var n;return!O(null==(n=null==e?void 0:e.contents)?void 0:n[0])}));e&&Object.assign(b.params,e,{contents:[{role:"user",content:"",contentType:"text"}]})}const s=await g({contents:[{role:"user",content:b.sendContent,contentType:"text"}],platform:"web",sessionType:"text_chat",source:"global",configs:C.value.info,...b.params});"diagnosis"===e&&(b.refreshMedical=!0),"create_medical"===e&&d(s.contents)&&s.contents.reverse(),q(s),e&&["create_inquiry","create_medical"].includes(e)&&(b.showRight=!0,"create_inquiry"===e?b.consultationContent=s:(b.consultationContent=null,await T(_,{vac01:(null==(o=null==(t=C.value)?void 0:t.info)?void 0:o.vac01)||"1878974046080958465",type:1}))),b.sending=!1,b.loading=!1,b.sendContent="",b.params={}}})),()=>[s("section",{class:"chat-main",ref:w,style:"column-reverse"},[[b.loading?s("div",{class:"message-item"},[s("div",{class:"content-box"},[s("div",{class:"content loading"},[s(i,{size:22,stroke:"#4170EE"},null),s("span",null,[r("正在加载中,请稍等...")])])])]):null,M.value.map((e=>e.contents.map(((n,t)=>s("div",{class:"message-item",key:e.msgId+t},[s("div",{class:["content-box",O(n)?"mine":""]},[s("div",{class:["content",{"content-json":!m(n.render)&&E(e,t)}]},[m(n.render)?n.render():J(e,t)])])])))))]])]}});export{y as default};
1
+ import{defineComponent as n,inject as e,ref as t,watch as o,createVNode as s,createTextVNode as r,nextTick as a,resolveComponent as l}from"vue";import{NSpin as i}from"naive-ui";import{InjectionAIChatEmits as c,InjectionAIChat as u}from"../types/index.js";import{isArray as d,isFunction as m}from"lodash-es";import{uuidGenerator as p}from"../../../../shared/utils/index.js";import v from"./card/JsonCard.js";import{conversationApi as f}from"../api/index.js";import{useProgram as g}from"../hooks/useProgram.js";var h=n({name:"ChatMain",inheritAttrs:!1,components:{JsonCard:v},setup(n,{attrs:v,slots:h,emit:y}){e(c);const{patientInfo:C,state:b,queryRecord:j}=e(u),{programMethod:x,MedicalOrderId:T}=g(),_=t(null),I=t([]);async function w(n){var e;d(n.contents)&&(I.value.unshift(n),await a(),null==(e=_.value)||e.scrollTo({top:0,behavior:"auto"}))}function M(n,e){var t,o;return"json"===(null==(o=null==(t=null==n?void 0:n.contents)?void 0:t[e])?void 0:o.contentType)}function k(n,e){var t;const{contents:o=[],msgId:r=""}=n;if("json"===(null==(t=o[e])?void 0:t.contentType))return function(n,e){return s(l("json-card"),{item:n,messageItem:e},null)}(n,o[e]);return[o[e].content.replace(/\\n|\n|\r\n/g,"<br>").split("<br>").filter((n=>!!n)).map(((n,e,t)=>[n,e===t.length-1?null:s("br",null,null)]))]}function q({role:n=""}){return"user"===n}return o((()=>b.reportContent),(n=>{n&&(w(n),b.reportContent=null)})),o((()=>b.sending),(async n=>{var e,t,o;if(n){b.sendContent&&(I.value.unshift({msgId:p(),contents:[{role:"user",content:b.sendContent}]}),null==(e=_.value)||e.scrollTo({top:0,behavior:"auto"}));const{opType:n}=b.params||{};if(n&&["recommend_treatment_plan","recommend_diagnosis"].includes(n)&&I.value.length>0){const n=I.value.find((n=>{var e;return!q(null==(e=null==n?void 0:n.contents)?void 0:e[0])}));n&&Object.assign(b.params,n,{contents:[{role:"user",content:"",contentType:"text"}]})}try{const e=await f({contents:[{role:"user",content:b.sendContent,contentType:"text"}],platform:"web",sessionType:"text_chat",source:"global",configs:C.value.info,...b.params});"diagnosis"===n&&(b.refreshMedical=!0),"create_medical"===n&&d(e.contents)&&e.contents.reverse(),w(e),n&&["create_inquiry","create_medical"].includes(n)&&(b.showRight=!0,"create_inquiry"===n?b.consultationContent=e:(b.consultationContent=null,await x(T,{vac01:(null==(o=null==(t=C.value)?void 0:t.info)?void 0:o.vac01)||"1878974046080958465",type:1}))),b.sendContent="",b.params={}}catch(n){console.log("error ==>",n)}finally{b.sending=!1,b.loading=!1}}})),()=>[s("section",{class:"chat-main",ref:_,style:"column-reverse"},[[b.loading?s("div",{class:"message-item"},[s("div",{class:"content-box"},[s("div",{class:"content loading"},[s(i,{size:22,stroke:"#4170EE"},null),s("span",null,[r("正在加载中,请稍等...")])])])]):null,I.value.map((n=>n.contents.map(((e,t)=>s("div",{class:"message-item",key:n.msgId+t},[s("div",{class:["content-box",q(e)?"mine":""]},[s("div",{class:["content",{"content-json":!m(e.render)&&M(n,t)}]},[m(e.render)?e.render():k(n,t)])])])))))]])]}});export{h as default};
@@ -1 +1 @@
1
- import{defineComponent as t,inject as n,reactive as e,ref as o,watch as i,withDirectives as l,openBlock as a,createElementBlock as s,createElementVNode as c,createVNode as r,unref as u,withCtx as y,Fragment as d,createTextVNode as f,createCommentVNode as p,vShow as k}from"vue";import{NButton as _,NIcon as m,NSpace as g}from"naive-ui";import{InjectionAIChat as v}from"../types/index.js";import h from"../../../editor/index.js";import{CloseOutline as j}from"@vicons/ionicons5";import{saveApi as w}from"../api/index.js";const C={class:"ai-chat__right"},z={class:"header"};var b=t({__name:"ChatRight",setup(t){const b=[{key:"zs_yy",title:"主诉"},{key:"xbs_fuk",title:"现病史"},{key:"jws_vtk",title:"既往史"},{key:"patient_allergy_sync",title:"过敏史"},{key:"tgjcms_wsssss",title:"体格检查描述"},{key:"marriage",title:"婚姻状况"},{key:"nation",title:"民族"},{key:"profession",title:"职业"},{key:"jkzk_wyuu",title:"一般健康状况"},{key:"ryljlz_tbyvrt",title:"外长期居住史"},{key:"yjbz_qisf1",title:"饮酒标志"},{key:"gydwufcjfsxwzjcs_aogt_oietyntrrqk",title:"工业毒物、粉尘及放射性物质接触史"},{key:"yqtysjcs_ua_uirqk",title:"疫区、疫水接触史"},{key:"ryct_tbsw",title:"入院查体"},{key:"fzjclg_lessxj",title:"辅助检查结果"},{key:"o_hn_iyjc_hr",title:"互认回填"},{key:"cbzd_phyo",title:"初步诊断"},{key:"zljh_yuya",title:"诊疗计划"},{key:"wdcqjzs_qftanwk",title:"外地长期居住史"}],{state:x,patientInfo:q}=n(v),R=e({toolbarKeys:["bold","fontSize"]}),D=o(""),$=o(Date.now().toString());async function I(){var t;const n=E();x.consultationContent.contents[0].content.autoBackfillData=n,await w({msgId:x.consultationContent.msgId,contents:x.consultationContent.contents,configs:null==(t=q.value)?void 0:t.info})}function B(){const t=E();console.log("json ==>",t,x.consultationContent),x.consultationContent.contents[0].content.autoBackfillData=t,x.params={opType:"create_medical",...x.consultationContent,contents:[{role:"user",content:"",contentType:"text"}],medicalInfo:x.consultationContent},x.sending=!0}function E(){const t={};return b.forEach((n=>{const e=new RegExp(`<p><span.*?><strong>\\d+、${n.title}<\\/strong><\\/span><\\/p><p>(.*?)<\\/p>`,"i"),o=D.value.match(e);if(o&&o[1]){const e=o[1].trim();t[n.key]="<br>"===e?"":e}})),t}return i((()=>x.consultationContent),(t=>{var n,e,o;if(t){const{autoBackfillData:i}=(null==(o=null==(e=null==(n=null==t?void 0:t.contents)?void 0:n[0])?void 0:e.content)?void 0:o.details)||{};if(!i)return;b.forEach(((t,n)=>{D.value+=`<p><span style="font-size: 16px;"><strong>${n+1}、${t.title}</strong></span></p><p><span>${i[t.key]||""}</span></p><p>${n<b.length-1?"<br>":""}`}))}})),i((()=>x.showRight),(t=>{t||(x.consultationContent=null)})),i((()=>x.refreshMedical),(t=>{t&&($.value=Date.now().toString(),x.refreshMedical=!1)})),(t,n)=>l((a(),s("div",C,[c("div",z,[r(u(_),{quaternary:"",onClick:n[0]||(n[0]=()=>u(x).showRight=!1)},{icon:y((()=>[r(u(m),{size:"20",component:u(j)},null,8,["component"])])),_:1})]),(a(),s("div",{class:"main",id:"aiChatMedicalRecord",key:$.value},[u(x).consultationContent?(a(),s(d,{key:0},[r(u(h),{"toolbar-config":R,modelValue:D.value,"onUpdate:modelValue":n[1]||(n[1]=t=>D.value=t)},null,8,["toolbar-config","modelValue"]),r(u(g),{class:"footer","wrap-item":!1},{default:y((()=>[r(u(_),{round:"",class:"gradient",onClick:B},{default:y((()=>[f("审核完成")])),_:1}),r(u(_),{round:"",onClick:I},{default:y((()=>[f("暂存")])),_:1})])),_:1})],64)):p("v-if",!0)]))],512)),[[k,u(x).showRight]])}});export{b as default};
1
+ import{defineComponent as t,inject as n,reactive as e,ref as o,watch as i,withDirectives as l,openBlock as a,createElementBlock as s,createElementVNode as c,createVNode as r,unref as u,withCtx as d,Fragment as y,createTextVNode as f,createCommentVNode as p,vShow as k}from"vue";import{NButton as m,NIcon as g,NSpace as _}from"naive-ui";import{InjectionAIChat as v}from"../types/index.js";import{$message as h}from"../utils/index.js";import j from"../../../editor/index.js";import{CloseOutline as w}from"@vicons/ionicons5";import{saveApi as C}from"../api/index.js";const b={class:"ai-chat__right"},z={class:"header"};var x=t({__name:"ChatRight",setup(t){const x=[{key:"zs_yy",title:"主诉"},{key:"xbs_fuk",title:"现病史"},{key:"jws_vtk",title:"既往史"},{key:"patient_allergy_sync",title:"过敏史"},{key:"tgjcms_wsssss",title:"体格检查描述"},{key:"marriage",title:"婚姻状况"},{key:"nation",title:"民族"},{key:"profession",title:"职业"},{key:"jkzk_wyuu",title:"一般健康状况"},{key:"ryljlz_tbyvrt",title:"外长期居住史"},{key:"yjbz_qisf1",title:"饮酒标志"},{key:"gydwufcjfsxwzjcs_aogt_oietyntrrqk",title:"工业毒物、粉尘及放射性物质接触史"},{key:"yqtysjcs_ua_uirqk",title:"疫区、疫水接触史"},{key:"ryct_tbsw",title:"入院查体"},{key:"fzjclg_lessxj",title:"辅助检查结果"},{key:"o_hn_iyjc_hr",title:"互认回填"},{key:"cbzd_phyo",title:"初步诊断"},{key:"zljh_yuya",title:"诊疗计划"},{key:"wdcqjzs_qftanwk",title:"外地长期居住史"}],{state:q,patientInfo:R}=n(v),D=e({toolbarKeys:["bold","fontSize"]}),$=o(""),I=o(Date.now().toString());async function B(){var t;try{const n=M();q.consultationContent.contents[0].content.details.autoBackfillData=n,await C({msgId:q.consultationContent.msgId,contents:q.consultationContent.contents,configs:null==(t=R.value)?void 0:t.info}),h.success("保存成功")}catch(t){console.log("error ==>",t)}}function E(){const t=M();console.log("json ==>",t,q.consultationContent),q.consultationContent.contents[0].content.details.autoBackfillData=t,q.params={opType:"create_medical",...q.consultationContent,contents:[{role:"user",content:"",contentType:"text"}],medicalInfo:q.consultationContent},q.sending=!0,q.loading=!0}function M(){const t={};return x.forEach((n=>{const e=new RegExp(`<p><span.*?><strong>\\d+、${n.title}<\\/strong><\\/span><\\/p><p>(.*?)<\\/p>`,"i"),o=$.value.match(e);if(o&&o[1]){const e=o[1].trim();t[n.key]="<br>"===e?"":e}})),t}return i((()=>q.consultationContent),(t=>{var n,e,o;if(t){const{autoBackfillData:i}=(null==(o=null==(e=null==(n=null==t?void 0:t.contents)?void 0:n[0])?void 0:e.content)?void 0:o.details)||{};if(!i)return;x.forEach(((t,n)=>{$.value+=`<p><span style="font-size: 16px;"><strong>${n+1}、${t.title}</strong></span></p><p><span>${i[t.key]||""}</span></p><p>${n<x.length-1?"<br>":""}`}))}})),i((()=>q.showRight),(t=>{t||(q.consultationContent=null)})),i((()=>q.refreshMedical),(t=>{t&&(I.value=Date.now().toString(),q.refreshMedical=!1)})),(t,n)=>l((a(),s("div",b,[c("div",z,[r(u(m),{quaternary:"",onClick:n[0]||(n[0]=()=>u(q).showRight=!1)},{icon:d((()=>[r(u(g),{size:"20",component:u(w)},null,8,["component"])])),_:1})]),(a(),s("div",{class:"main",id:"aiChatMedicalRecord",key:I.value},[u(q).consultationContent?(a(),s(y,{key:0},[r(u(j),{"toolbar-config":D,modelValue:$.value,"onUpdate:modelValue":n[1]||(n[1]=t=>$.value=t)},null,8,["toolbar-config","modelValue"]),r(u(_),{class:"footer","wrap-item":!1},{default:d((()=>[r(u(m),{round:"",class:"gradient",disabled:u(q).loading,onClick:E},{default:d((()=>[f("审核完成")])),_:1},8,["disabled"]),r(u(m),{round:"",onClick:B},{default:d((()=>[f("暂存")])),_:1})])),_:1})],64)):p("v-if",!0)]))],512)),[[k,u(q).showRight]])}});export{x as default};
@@ -1 +1 @@
1
- import{defineComponent as e,inject as a,ref as i,computed as s,createVNode as l,resolveComponent as n,createTextVNode as t}from"vue";import{NSpace as o,NIcon as c,NImage as d,NButton as r}from"naive-ui";import u from"../../../../../shared/assets/img/file.png.js";import v from"../../../../../shared/assets/img/file-emr.png.js";import m from"../../../../../shared/assets/img/use.png.js";import{CheckmarkCircle as p}from"@vicons/ionicons5";import g from"./SelectIcon.js";import{InjectionAIChat as f}from"../../types/index.js";import{useProgram as h}from"../../hooks/useProgram.js";var y=e({name:"ChatJsonCard",inheritAttrs:!1,props:{item:{type:Object,default:()=>({})},messageItem:{type:Object,default:()=>({})}},components:{NSpace:o,NIcon:c,NImage:d,SelectIcon:g},emits:[],setup(e,{attrs:o,slots:c,emit:d}){const{state:g,patientInfo:y}=a(f),{programMethod:b,MedicalOrderId:C,ReportId:I}=h(),{messageType:_,content:x}=e.messageItem,k=i([]),j=i([]),w=s((()=>{var e,a;return(null==(a=null==(e=y.value)?void 0:e.info)?void 0:a.vac01)||"1878974046080958465"})),T=s((()=>{var e;return null==(e=null==x?void 0:x.diagnosis)?void 0:e[0]})),N=s((()=>{var e;return"diagnosis_added"===_&&(null==(e=T.value)?void 0:e.name)})),S=s((()=>N.value)),O=s((()=>"diagnosis"===_||"diagnosis_added"===_||"treatment_plan"===_));var q,P;"diagnosis_added"===_&&(k.value=null==(P=null==(q=x.recommendedExaminations)?void 0:q.map)?void 0:P.call(q,(e=>e.name)));const A=(e,a="name")=>{j.value.includes(e[a])?j.value=j.value.filter((i=>i!==e[a])):j.value.push(e[a]),console.log(j.value)},D=(a,i)=>{var s,l;null==(s=null==a?void 0:a.preventDefault)||s.call(a),null==(l=null==a?void 0:a.stopPropagation)||l.call(a);let n=i?[i]:[];arguments.length||(n=x.possibleConditions.filter((e=>j.value.includes(e.code)))),n.length&&(g.params={...e.item,opType:"diagnosis",contents:[{role:"user",content:"",contentType:"text"}],possibleConditions:n},g.sending=!0)},J=async(e,a)=>{var i,s;null==(i=null==e?void 0:e.preventDefault)||i.call(e),null==(s=null==e?void 0:e.stopPropagation)||s.call(e);const l=a?k.value.includes(a.name)?[a.name]:[]:[...k.value];await b(C,{bbx05List:JSON.stringify(l),vac01:w.value,type:3})},E=async()=>{var e;const a=(null==(e=x.reports)?void 0:e[0])||{};await b(I,{vaa07:w.value,reportType:a.reportType,reportId:a.reportId})},L=async(e,a)=>{var i,s;null==(i=null==e?void 0:e.preventDefault)||i.call(e),null==(s=null==e?void 0:e.stopPropagation)||s.call(e);const l=a?[a.name]:j.value;await b(C,{drugNameList:JSON.stringify(l),vac01:w.value,type:3})},M=()=>{if(!("diagnosis_added"===_?!k.value.length:!j.value.length))return"diagnosis"===_?D():"diagnosis_added"===_?J():"treatment_plan"===_?L():void 0};async function R(){g.showRight=!0,"medical"===_?(async()=>{await b(C,{vac01:w.value,type:1})})():g.consultationContent=e.item}const H=()=>l("div",{class:"diagnosis-added-box"},[l("div",{class:"recommended-wrap"},[l("div",{class:"title"},[t("影像学检查")]),x.recommendedExaminations.map((e=>l("div",{class:"recommended-item"},[l("div",{class:"top"},[l("div",{class:"left-tag"},[l("span",{class:["recommended-tag",{active:k.value.includes(e.name)}],onClick:()=>(e=>{k.value.includes(e.name)?k.value=k.value.filter((a=>a!==e.name)):k.value.push(e.name)})(e)},[e.name,l(n("select-icon"),{class:"select-icon",width:16},null)])]),l("img",{class:"right-icon",src:m,onClick:a=>J(a,e)},null)]),l("div",{class:"desc"},[e.description])])))])]),z=()=>{var e,a;return S.value?l("div",{class:"card-header"},[l("span",{class:"left-title"},[l(n("n-icon"),{component:p},null),t("已添加诊断:"),null==(e=T.value)?void 0:e.name]),l("span",{class:"right-desc"},[t("创建时间: "),null==(a=T.value)?void 0:a.createdTime])]):null},B=()=>{if(!O.value)return null;const e="diagnosis_added"===_?!k.value.length:!j.value.length;return l("div",{class:"card-footer"},[l("span",{class:"left-desc"},[t("请注意,辅助诊断由AI推荐,结果仅供临床")]),l("span",{class:["right-btn",{disabled:e}],onClick:M},[t("引用所选")])])},F=()=>"inquiry"==_||"medical"==_?(()=>{var e,a;const i="inquiry"===_;return l("div",{class:"inquiry_medical-box",onClick:()=>R()},[l("div",{class:"left-img"},[l("img",{src:i?u:v},null)]),l("div",{class:"right-text"},[l("p",{class:"top-info"},[i?null==(e=x.summary)?void 0:e.inquiryStr:x.info]),l("p",{class:"sum-time"},[t("创建时间:"),(null==(a=x.summary)?void 0:a.creationTime)||x.creationTime])])])})():"diagnosis"==_?l("div",{class:"diagnosis-box"},[l("div",{class:"title"},[t("诊断辅助")]),l("div",{class:"desc"},[x.patientHistory]),x.possibleConditions.map((e=>l("div",{class:["con-item",{active:j.value.includes(e.condition)}],onClick:()=>A(e,"code")},[l("div",{class:"top-content"},[l("div",{class:"left_wrap"},[l("a",{href:e.link,target:"_blank"},[t("【"),e.condition,t("】")]),e.code,t("("),e.probability,t(")")]),l("img",{class:"right-icon",src:m,onClick:a=>D(a,e)},null)]),l("div",{class:"btm-desc"},[e.description])])))]):"diagnosis_added"==_?H():"treatment_plan"==_?l("div",{class:"treatment-plan-box"},[l("div",{class:"top-div"},[l("div",{class:"title"},[x.title])]),l("div",{class:"desc"},[x.description]),l("div",{class:"medication-wrap"},[l("div",{class:"title"},[t("药物")]),x.medications.map((e=>l("div",{class:["medication-item",{active:j.value.includes(e.name)}],onClick:()=>A(e)},[l("div",{class:"top"},[l("div",{class:"name"},[e.name]),l("img",{class:"right-icon",src:m,onClick:a=>L(a,e)},null)]),l("ul",null,[l("li",null,[t("用量: "),e.dosage,e.purpose]),l("li",null,[t("用法: "),e.usageInstructions])])])))]),l("div",{class:"precaution-wrap"},[l("div",{class:"title"},[t("注意事项")]),l("div",{class:"precaution-div"},[x.precautions.map(((e,a)=>l("div",{class:"treatment-item"},[a+1,t(". "),e])))])])]):"report_message"==_?(()=>{var e,a;const i=(null==(e=x.reports)?void 0:e[0])||{},s=(null==(a=i.reportInterpretation)?void 0:a.replace(/\\n|\n|\r/g,"<br>").split("<br>"))||[""],o=s.map(((e,a)=>[e,a===s.length-1?null:l("br",null,null)]));return l("div",{class:"report-message-box"},[l("div",{class:"top-title"},[l("div",{class:"left-title"},[l(n("n-icon"),{component:p},null),i.reportName]),l("div",{class:"right-detail"},[l(r,{text:!0,onClick:E},{default:()=>[t("报告详情")]}),l(r,{text:!0},{default:()=>[t("推荐方案")]})])]),l("div",{class:"center-img"},[i.images.map((e=>"pdf"===e.imageType?l("embed",{class:"pdf-embed",src:e.image,type:"application/pdf"},null):l(n("n-image"),{src:e.image},null)))]),l("div",{class:"bottom-interpretation"},[o,l("div",{class:"desc-tip"},[t("请注意,辅助诊断由AI推荐,结果仅供临床参考。")])])])})():"默认json内容";return()=>l("section",{class:"json-card_section"},[z(),l("div",{class:"card-content"},[F()]),B()])}});export{y as default};
1
+ import{defineComponent as e,inject as i,ref as a,computed as s,createVNode as n,resolveComponent as t,createTextVNode as l}from"vue";import{NSpace as o,NIcon as c,NImage as d,NButton as r}from"naive-ui";import u from"../../../../../shared/assets/img/file.png.js";import m from"../../../../../shared/assets/img/file-emr.png.js";import v from"../../../../../shared/assets/img/use.png.js";import{CheckmarkCircle as p}from"@vicons/ionicons5";import g from"./SelectIcon.js";import{InjectionAIChat as f}from"../../types/index.js";import{useProgram as h}from"../../hooks/useProgram.js";var y=e({name:"ChatJsonCard",inheritAttrs:!1,props:{item:{type:Object,default:()=>({})},messageItem:{type:Object,default:()=>({})}},components:{NSpace:o,NIcon:c,NImage:d,SelectIcon:g},emits:[],setup(e,{attrs:o,slots:c,emit:d}){const{state:g,patientInfo:y}=i(f),{programMethod:b,MedicalOrderId:x,ReportId:I}=h(),{messageType:_,content:C}=e.messageItem,k=a([]),w=a([]),T=s((()=>{var e,i;return(null==(i=null==(e=y.value)?void 0:e.info)?void 0:i.vac01)||"1878974046080958465"})),j=s((()=>{var e;return null==(e=null==C?void 0:C.diagnosis)?void 0:e[0]})),N=s((()=>{var e;return"diagnosis_added"===_&&(null==(e=j.value)?void 0:e.name)})),S=s((()=>N.value)),O=s((()=>"diagnosis"===_||"diagnosis_added"===_||"treatment_plan"===_));var q,E;"diagnosis_added"===_&&(k.value=null==(E=null==(q=C.recommendedExaminations)?void 0:q.map)?void 0:E.call(q,(e=>e.name)));const P=(e,i="name")=>{w.value.includes(e[i])?w.value=w.value.filter((a=>a!==e[i])):w.value.push(e[i])};function A(i,a){var s,n;null==(s=null==i?void 0:i.preventDefault)||s.call(i),null==(n=null==i?void 0:i.stopPropagation)||n.call(i);let t=a?[a]:[];arguments.length||(t=C.possibleConditions.filter((e=>w.value.includes(e.code)))),t.length&&(g.params={...e.item,opType:"diagnosis",contents:[{role:"user",content:"",contentType:"text"}],possibleConditions:[{condition:"睡眠呼吸暂停待查",code:"I88.104",probability:"60%",link:"https://icd.who.int/browse10/2019/en#/G47.3",description:"患者晚上有时打呼噜,不确定是否有呼吸暂停,存在相关症状,需要进一步做睡眠呼吸监测以明确诊断。"},{condition:"原发性淋巴水肿",code:"I89.001",probability:"60%",link:"https://icd.who.int/browse10/2019/en#/G47.3",description:"患者晚上有时打呼噜,不确定是否有呼吸暂停,存在相关症状,需要进一步做睡眠呼吸监测以明确诊断。"}]},g.sending=!0)}async function D(i,a){var s,n;null==(s=null==i?void 0:i.preventDefault)||s.call(i),null==(n=null==i?void 0:i.stopPropagation)||n.call(i);const t=a?k.value.includes(a.name)?[a.name]:[]:[...k.value];await b(x,{bbx05List:JSON.stringify(t),vac01:T.value,type:3});let l=a?[a]:[];arguments.length||(l=C.recommendedExaminations.filter((e=>w.value.includes(e.name)))),g.params={...e.item,opType:"medical_order",contents:[{role:"user",content:"",contentType:"text"}],recommendedExaminations:l},g.sending=!0,g.loading=!0}const J=async()=>{var e;const i=(null==(e=C.reports)?void 0:e[0])||{};await b(I,{vaa07:T.value,reportType:i.reportType,reportId:i.reportId})},G=async(e,i)=>{var a,s;null==(a=null==e?void 0:e.preventDefault)||a.call(e),null==(s=null==e?void 0:e.stopPropagation)||s.call(e);const n=i?[i.name]:w.value;await b(x,{drugNameList:JSON.stringify(n),vac01:T.value,type:3})},L=()=>{if(!("diagnosis_added"===_?!k.value.length:!w.value.length))return"diagnosis"===_?A():"diagnosis_added"===_?D():"treatment_plan"===_?G():void 0};async function M(){g.showRight=!0,"medical"===_?(async()=>{await b(x,{vac01:T.value,type:1})})():g.consultationContent=e.item}const R=()=>n("div",{class:"diagnosis-added-box"},[n("div",{class:"recommended-wrap"},[n("div",{class:"title"},[l("影像学检查")]),C.recommendedExaminations.map((e=>n("div",{class:"recommended-item"},[n("div",{class:"top"},[n("div",{class:"left-tag"},[n("span",{class:["recommended-tag",{active:k.value.includes(e.name)}],onClick:()=>(e=>{k.value.includes(e.name)?k.value=k.value.filter((i=>i!==e.name)):k.value.push(e.name)})(e)},[e.name,n(t("select-icon"),{class:"select-icon",width:16},null)])]),n("img",{class:"right-icon",src:v,onClick:i=>D(i,e)},null)]),n("div",{class:"desc"},[e.description])])))])]),H=()=>{var e,i;return S.value?n("div",{class:"card-header"},[n("span",{class:"left-title"},[n(t("n-icon"),{component:p},null),l("已添加诊断:"),null==(e=j.value)?void 0:e.name]),n("span",{class:"right-desc"},[l("创建时间: "),null==(i=j.value)?void 0:i.createdTime])]):null},z=()=>{if(!O.value)return null;const e="diagnosis_added"===_?!k.value.length:!w.value.length;return n("div",{class:"card-footer"},[n("span",{class:"left-desc"},[l("请注意,辅助诊断由AI推荐,结果仅供临床")]),n("span",{class:["right-btn",{disabled:e}],onClick:L},[l("引用所选")])])},B=()=>"inquiry"==_||"medical"==_?(()=>{var e,i;const a="inquiry"===_;return n("div",{class:"inquiry_medical-box",onClick:()=>M()},[n("div",{class:"left-img"},[n("img",{src:a?u:m},null)]),n("div",{class:"right-text"},[n("p",{class:"top-info"},[a?null==(e=C.summary)?void 0:e.inquiryStr:C.info]),n("p",{class:"sum-time"},[l("创建时间:"),(null==(i=C.summary)?void 0:i.creationTime)||C.creationTime])])])})():"diagnosis"==_?n("div",{class:"diagnosis-box"},[n("div",{class:"title"},[l("诊断辅助")]),n("div",{class:"desc"},[C.patientHistory]),C.possibleConditions.map((e=>n("div",{class:["con-item",{active:w.value.includes(e.code)}],onClick:()=>P(e,"code")},[n("div",{class:"top-content"},[n("div",{class:"left_wrap"},[n("a",{href:e.link,target:"_blank"},[l("【"),e.condition,l("】")]),e.code,l("("),e.probability,l(")")]),n("img",{class:"right-icon",src:v,onClick:i=>A(i,e)},null)]),n("div",{class:"btm-desc"},[e.description])])))]):"diagnosis_added"==_?R():"treatment_plan"==_?n("div",{class:"treatment-plan-box"},[n("div",{class:"top-div"},[n("div",{class:"title"},[C.title])]),n("div",{class:"desc"},[C.description]),n("div",{class:"medication-wrap"},[n("div",{class:"title"},[l("药物")]),C.medications.map((e=>n("div",{class:["medication-item",{active:w.value.includes(e.name)}],onClick:()=>P(e)},[n("div",{class:"top"},[n("div",{class:"name"},[e.name]),n("img",{class:"right-icon",src:v,onClick:i=>G(i,e)},null)]),n("ul",null,[n("li",null,[l("用量: "),e.dosage,e.purpose]),n("li",null,[l("用法: "),e.usageInstructions])])])))]),n("div",{class:"precaution-wrap"},[n("div",{class:"title"},[l("注意事项")]),n("div",{class:"precaution-div"},[C.precautions.map(((e,i)=>n("div",{class:"treatment-item"},[i+1,l(". "),e])))])])]):"report_message"==_?(()=>{var e,i;const a=(null==(e=C.reports)?void 0:e[0])||{},s=(null==(i=a.reportInterpretation)?void 0:i.replace(/\\n|\n|\r/g,"<br>").split("<br>"))||[""],o=s.map(((e,i)=>[e,i===s.length-1?null:n("br",null,null)]));return n("div",{class:"report-message-box"},[n("div",{class:"top-title"},[n("div",{class:"left-title"},[n(t("n-icon"),{component:p},null),a.reportName]),n("div",{class:"right-detail"},[n(r,{text:!0,onClick:J},{default:()=>[l("报告详情")]}),n(r,{text:!0},{default:()=>[l("推荐方案")]})])]),n("div",{class:"center-img"},[a.images.map((e=>"pdf"===e.imageType?n("embed",{class:"pdf-embed",src:e.image,type:"application/pdf"},null):n(t("n-image"),{src:e.image},null)))]),n("div",{class:"bottom-interpretation"},[o,n("div",{class:"desc-tip"},[l("请注意,辅助诊断由AI推荐,结果仅供临床参考。")])])])})():"默认json内容";return()=>n("section",{class:"json-card_section"},[H(),n("div",{class:"card-content"},[B()]),z()])}});export{y as default};
@@ -1 +1 @@
1
- import{isValidJSON as o}from"../utils/index.js";function e(e,n){if(!e.orgId||!e.userId)return;let t=!1;const r=new WebSocket("/flow/ai/opd/1");r.onopen=()=>{t=!0,console.log("0 websocket连接成功 ==>")},r.onerror=()=>console.log("WebSocket连接失败"),r.onmessage=e=>{if(n.reportContent)return;const{data:t}=e||{};if(console.log("张铁柱 ==>",e),!o(t))return;const r=JSON.parse(t);n.reportContent=r||null},async function o(e=0){return e>5?console.log("websocket连接失败 ==>"):t?console.log("websocket连接成功 ==>"):void setTimeout((()=>{o(++e)}),100)}()}export{e as useWebsocket};
1
+ import{onBeforeUnmount as o}from"vue";import{isValidJSON as e}from"../utils/index.js";function n(n,t){if(!n.orgId||!n.userId)return;let r=!1;const s=new WebSocket(`/flow/ai/opd/{${n.orgId}_${n.userId}}`);s.onopen=()=>{r=!0,console.log("0 websocket连接成功 ==>")},s.onerror=()=>console.log("WebSocket连接失败"),s.onmessage=o=>{const{data:n}=o||{};if(console.log("张铁柱 ==>",o),!e(n))return;const r=JSON.parse(n);t.reportContent=r||null},async function o(e=0){return e>5?console.log("websocket连接失败 ==>"):r?console.log("websocket连接成功 ==>"):void setTimeout((()=>{o(++e)}),100)}(),o((()=>{s.close()}))}export{n as useWebsocket};
@@ -1 +1,2 @@
1
+ export declare const $message: import("naive-ui").MessageApi;
1
2
  export declare function isValidJSON(str: string): boolean;
@@ -1 +1 @@
1
- function r(r){try{return JSON.parse(r),!0}catch(r){return!1}}export{r as isValidJSON};
1
+ import{createDiscreteApi as e}from"naive-ui";const{message:r}=e(["message"]);function t(e){try{return JSON.parse(e),!0}catch(e){return!1}}export{r as $message,t as isValidJSON};
@@ -1 +1 @@
1
- var e="@cnhis-design-vue/shared",i="3.2.18-beta.8",s="index.ts",n={"naive-ui":"^2.30.0",vue:"^3.2.0"},a={"@vicons/ionicons5":"^0.12.0","lodash-es":"^4.17.21",moment:"^2.29.1","video.js":"^7.19.2","videojs-contrib-hls":"^5.15.0",viewerjs:"^1.10.5","xe-utils":"^3.5.4"},d={name:e,version:"3.2.18-beta.8",private:!0,main:"index.ts",peerDependencies:n,dependencies:a};export{d as default,a as dependencies,s as main,e as name,n as peerDependencies,i as version};
1
+ var e="@cnhis-design-vue/shared",i="3.2.18-beta.9",s="index.ts",n={"naive-ui":"^2.30.0",vue:"^3.2.0"},a={"@vicons/ionicons5":"^0.12.0","lodash-es":"^4.17.21",moment:"^2.29.1","video.js":"^7.19.2","videojs-contrib-hls":"^5.15.0",viewerjs:"^1.10.5","xe-utils":"^3.5.4"},d={name:e,version:"3.2.18-beta.9",private:!0,main:"index.ts",peerDependencies:n,dependencies:a};export{d as default,a as dependencies,s as main,e as name,n as peerDependencies,i as version};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cnhis-design-vue",
3
- "version": "3.2.18-beta.8",
3
+ "version": "3.2.18-beta.9",
4
4
  "license": "ISC",
5
5
  "module": "./es/components/index.js",
6
6
  "main": "./es/components/index.js",
@@ -72,5 +72,5 @@
72
72
  "iOS 7",
73
73
  "last 3 iOS versions"
74
74
  ],
75
- "gitHead": "1c04593b1d2363678b7852fbe67fccc5dfe2db3d"
75
+ "gitHead": "c09339912952cb9f492268cd235ffa038e02e2ae"
76
76
  }