mirror of
https://github.com/beak-insights/felicity-lims.git
synced 2025-02-25 01:13:01 +08:00
1 line
11 KiB
JavaScript
1 line
11 KiB
JavaScript
import{d as ce,a8 as de,P as fe,s as pe,ad as me,u as ve,A as R,U as B,r as A,b6 as o,b7 as M,a9 as k,bv as ye,o as he,g as be,h as i,i as u,C as c,l as N,E as T,G as ke,j as C,w as m,ap as Ce,F as Se,_ as xe}from"./index-cd9e6ac8.js";import{u as _e}from"./samples-84482611.js";import{h as d,o as f,a as p}from"./constants-99d18042.js";const ge={class:"mb-4 flex justify-start"},Re=i("hr",null,null,-1),Ae=ce({__name:"SampleListing",setup(Le){const v=de(),L=fe(),{samplePageInfo:w,fetchingSamples:D}=pe(v);let E=me(),P=ve();const s=R({can_cancel:!1,can_receive:!1,can_reinstate:!1,can_reject:!1,can_copy_to:!1,can_download:!1,can_print:!1,can_publish:!1,can_store:!1,can_recover:!1}),b=B(()=>v.getSamples),q=A([{name:"All",value:""},{name:"expected",value:"expected"},{name:"received",value:"received"},{name:"awaiting",value:"awaiting"},{name:"approved",value:"approved"},{name:"published",value:"published"},{name:"invalidated",value:"invalidated"},{name:"cancelled",value:"cancelled"},{name:"rejected",value:"rejected"},{name:"stored",value:"stored"}]),I=A([{name:"UID",value:"uid",sortable:!0,sortBy:"asc",defaultSort:!0,showInToggler:!1,hidden:!0},{name:"",value:"",sortable:!1,showInToggler:!1,hidden:!1,customRender:function(e,t){return o("div",[e.priority>1?o("span",{class:[{"text-orange-600":e.priority>1}]},o("i",{class:"fa fa-star"})):"",e.status==="stored"?o("span",o("i",{class:"fa-briefcase"})):""])}},{name:"Sampe ID",value:"sampleId",sortable:!0,sortBy:"asc",hidden:!1,customRender:function(e,t){return o(M,{to:{name:"sample-detail",params:{patientUid:e?.analysisRequest?.patient?.uid,sampleUid:e?.uid}},innerHTML:e?.sampleId})}},{name:"Sample Type",value:"sampleType.name",sortable:!1,sortBy:"asc",hidden:!0},{name:"Test(s)",value:"",sortable:!1,sortBy:"asc",hidden:!1,customRender:function(e,t){return o("span",{innerHTML:$(e.profiles,e.analyses)},[])}},{name:"Patient",value:"",sortable:!1,sortBy:"asc",hidden:!1,customRender:function(e,t){const a="analysisRequest.patient.firstName".split(".").reduce((r,g)=>r?.[g],e),n="analysisRequest.patient.lastName".split(".").reduce((r,g)=>r?.[g],e);return o("span",{innerHTML:`${a} ${n}`},[])}},{name:"Gender",value:"analysisRequest.patient.gender",sortable:!1,sortBy:"asc",hidden:!0},{name:"Age",value:"analysisRequest.patient.age",sortable:!1,sortBy:"asc",hidden:!0},{name:"Client Patient ID",value:"analysisRequest.patient.clientPatientId",sortable:!1,sortBy:"asc",hidden:!1},{name:"Client",value:"analysisRequest.client.name",sortable:!1,sortBy:"asc",hidden:!1},{name:"Client Code",value:"analysisRequest.client.code",sortable:!1,sortBy:"asc",hidden:!0},{name:"Province",value:"analysisRequest.client.district.province.name",sortable:!1,sortBy:"asc",hidden:!0},{name:"District",value:"analysisRequest.client.district.name",sortable:!1,sortBy:"asc",hidden:!0},{name:"Client Request Id",value:"analysisRequest.clientRequestId",sortable:!1,sortBy:"asc",hidden:!1},{name:"Date Collected",value:"dateCollected",sortable:!1,sortBy:"asc",hidden:!0,customRender:function(e,t){const a=t.value.split(".").reduce((n,r)=>n?.[r],e);return o("span",{innerHTML:k(a)},[])}},{name:"Date Created",value:"createdAt",sortable:!1,sortBy:"asc",hidden:!0,customRender:function(e,t){const a=t.value.split(".").reduce((n,r)=>n?.[r],e);return o("span",{innerHTML:k(a)},[])}},{name:"Creator",value:"createdBy.firstName",sortable:!1,sortBy:"asc",hidden:!1},{name:"Date Received",value:"dateReceived",sortable:!1,sortBy:"asc",hidden:!0,customRender:function(e,t){const a=t.value.split(".").reduce((n,r)=>n?.[r],e);return o("span",{innerHTML:k(a)},[])}},{name:"Date Submitted",value:"dateSubmitted",sortable:!1,sortBy:"asc",hidden:!0,customRender:function(e,t){const a=t.value.split(".").reduce((n,r)=>n?.[r],e);return o("span",{innerHTML:k(a)},[])}},{name:"Date Verified",value:"dateVerified",sortable:!1,sortBy:"asc",hidden:!0,customRender:function(e,t){const a=t.value.split(".").reduce((n,r)=>n?.[r],e);return o("span",{innerHTML:k(a)},[])}},{name:"Date Published",value:"datePublished",sortable:!1,sortBy:"asc",hidden:!0,customRender:function(e,t){const a=t.value.split(".").reduce((n,r)=>n?.[r],e);return o("span",{innerHTML:k(a)},[])}},{name:"Date Printed",value:"datePrinted",sortable:!1,sortBy:"asc",hidden:!0,customRender:function(e,t){const a=t.value.split(".").reduce((n,r)=>n?.[r],e);return o("span",{innerHTML:k(a)},[])}},{name:"Printed",value:"printed",sortable:!1,sortBy:"asc",hidden:!0},{name:"Status",value:"status",sortable:!1,sortBy:"asc",hidden:!1,customRender:function(e,t){const a=t.value.split(".").reduce((n,r)=>n?.[r],e);return o("button",{type:"button",class:"bg-sky-800 text-white py-1 px-2 rounded-sm leading-none",innerHTML:a},[])}}]);E?.query?.clientUid&&v.resetSamples(),v.fetchSampleTypes();let j=R({first:void 0,after:"",text:"",sortBy:["name"]});L.fetchAnalysesServices(j),L.fetchAnalysesProfiles();function $(e,t){let a=[];return e.forEach(n=>a.push(n.name)),t.forEach(n=>a.push(n.name)),a.join(", ")}let l=R({first:50,before:"",status:"received",text:"",sortBy:["-uid"],clientUid:ye(E?.query?.clientUid),filterAction:!1});v.fetchSamples(l);function H(e){l.first=e.fetchCount,l.before=w?.value?.endCursor??"",l.text=e.filterText,l.status=e.filterStatus,l.filterAction=!1,v.fetchSamples(l)}function U(e){l.first=50,l.before="",l.text=e.filterText,l.status=e.filterStatus,l.filterAction=!0,v.fetchSamples(l)}const S=A(!1);function O(e){b.value?.forEach(t=>t.checked=e.checked),S.value=e.checked,_()}function V(e){const t=b.value.findIndex(a=>a.uid===e.uid);b.value[t].checked=e.checked,F()?S.value=!0:S.value=!1,_()}async function y(){b.value?.forEach(e=>e.checked=!1),S.value=!1,_()}function F(){return b.value?.every(e=>e.checked===!0)}function x(){let e=[];return b.value?.forEach(t=>{t.checked&&e.push(t)}),e}function _(){s.can_cancel=!1,s.can_receive=!1,s.can_reinstate=!1,s.can_download=!1,s.can_publish=!1,s.can_print=!1,s.can_reject=!1,s.can_store=!1,s.can_recover=!1,s.can_copy_to=!1;const e=x();e.length!==0&&(e.every(t=>t.status==="expected")&&(s.can_receive=!0),e.every(t=>["received","expected"].includes(t.status))&&(s.can_cancel=!0,s.can_reject=!0),e.every(t=>["received"].includes(t.status))&&(s.can_store=!0,s.can_copy_to=!0),e.every(t=>["stored"].includes(t.status))&&(s.can_recover=!0),e.every(t=>t.status==="cancelled")&&(s.can_reinstate=!0),e.every(t=>["approved","published"].includes(t.status))&&(s.can_copy_to=!0),e.every(t=>t.status==="approved")&&(s.can_publish=!0),e.every(t=>t.status==="published")&&(s.can_print=!0,s.can_download=!0))}function h(){const e=x();let t=[];return e?.forEach(a=>t.push(a.uid)),t}const{cancelSamples:G,reInstateSamples:J,receiveSamples:Z,printSamples:z,downloadSamplesImpress:K,publishSamples:Q,recoverSamples:W,cloneSamples:X}=_e(),Y=B(()=>v.getSamples?.length+" of "+v.getSampleCount+" samples"),ee=async()=>X(h()).finally(()=>y()),te=async()=>G(h()).finally(()=>y()),ae=async()=>J(h()).finally(()=>y()),se=async()=>Z(h()).finally(()=>y()),ne=async()=>{const e=h().map(t=>({uid:t,action:"publish"}));await Q(e).finally(()=>y())},re=async()=>await z(h()).finally(()=>y()),oe=async()=>await K(h()).finally(()=>y()),le=async()=>{const e=x();P.push({name:"reject-samples",state:{samples:JSON.stringify(e)}})},ie=async()=>{const e=x();P.push({name:"store-samples",state:{samples:JSON.stringify(e)}})},ue=async()=>W(h()).finally(()=>y());return(e,t)=>(he(),be(Se,null,[i("div",ge,[u(N(C(M),{to:"/patients/search",class:"px-2 py-1 border-sky-800 border text-sky-800rounded-smtransition duration-300 hover:bg-sky-800 hover:text-white focus:outline-none"},{default:T(()=>[ke("Add Laboratory Request")]),_:1},512),[[c,d(p.CREATE,f.SAMPLE)]])]),Re,N(Ce,{columns:I.value,data:C(b),toggleColumns:!0,loading:C(D),paginable:!0,pageMeta:{fetchCount:C(l).first,hasNextPage:C(w)?.hasNextPage,countNone:C(Y)},searchable:!0,filterable:!0,filterMeta:{defaultFilter:C(l).status,filters:q.value},selectable:!0,allChecked:S.value,onOnSearch:U,onOnPaginate:H,onOnCheck:V,onOnCheckAll:O},{footer:T(()=>[i("div",null,[u(i("button",{onClick:t[0]||(t[0]=m(a=>te(),["prevent"])),class:"px-2 py-1 mr-2 border-sky-800 border text-sky-800rounded-smtransition duration-300 hover:bg-sky-800 hover:text-white focus:outline-none"}," Cancel ",512),[[c,d(p.CANCEL,f.SAMPLE)&&s.can_cancel]]),u(i("button",{onClick:t[1]||(t[1]=m(a=>ae(),["prevent"])),class:"px-2 py-1 mr-2 border-sky-800 border text-sky-800rounded-smtransition duration-300 hover:bg-sky-800 hover:text-white focus:outline-none"}," ReInstate ",512),[[c,d(p.CANCEL,f.SAMPLE)&&s.can_reinstate]]),u(i("button",{onClick:t[2]||(t[2]=m(a=>se(),["prevent"])),class:"px-2 py-1 mr-2 border-sky-800 border text-sky-800rounded-smtransition duration-300 hover:bg-sky-800 hover:text-white focus:outline-none"}," Reveive ",512),[[c,d(p.CANCEL,f.SAMPLE)&&s.can_receive]]),u(i("button",{onClick:t[3]||(t[3]=m(a=>ie(),["prevent"])),class:"px-2 py-1 mr-2 border-sky-800 border text-sky-800rounded-smtransition duration-300 hover:bg-sky-800 hover:text-white focus:outline-none"}," Store ",512),[[c,d(p.CANCEL,f.SAMPLE)&&s.can_store]]),u(i("button",{onClick:t[4]||(t[4]=m(a=>ue(),["prevent"])),class:"px-2 py-1 mr-2 border-sky-800 border text-sky-800rounded-smtransition duration-300 hover:bg-sky-800 hover:text-white focus:outline-none"}," Recover ",512),[[c,d(p.CANCEL,f.SAMPLE)&&s.can_recover]]),u(i("button",{onClick:t[5]||(t[5]=m(a=>le(),["prevent"])),class:"px-2 py-1 mr-2 border-sky-800 border text-sky-800rounded-smtransition duration-300 hover:bg-sky-800 hover:text-white focus:outline-none"}," Reject ",512),[[c,d(p.CANCEL,f.SAMPLE)&&s.can_reject]]),u(i("button",{onClick:t[6]||(t[6]=m(a=>ee(),["prevent"])),class:"px-2 py-1 mr-2 border-sky-800 border text-sky-800rounded-smtransition duration-300 hover:bg-sky-800 hover:text-white focus:outline-none"}," Copy to New ",512),[[c,d(p.CANCEL,f.SAMPLE)&&s.can_copy_to]]),u(i("button",{onClick:t[7]||(t[7]=m(a=>oe(),["prevent"])),class:"px-2 py-1 mr-2 border-sky-800 border text-sky-800rounded-smtransition duration-300 hover:bg-sky-800 hover:text-white focus:outline-none"}," Download ",512),[[c,d(p.CANCEL,f.SAMPLE)&&s.can_download]]),u(i("button",{onClick:t[8]||(t[8]=m(a=>ne(),["prevent"])),class:"px-2 py-1 mr-2 border-sky-800 border text-sky-800rounded-smtransition duration-300 hover:bg-sky-800 hover:text-white focus:outline-none"}," Publish ",512),[[c,d(p.CANCEL,f.SAMPLE)&&s.can_publish]]),u(i("button",{onClick:t[9]||(t[9]=m(a=>re(),["prevent"])),class:"px-2 py-1 mr-2 border-sky-800 border text-sky-800rounded-smtransition duration-300 hover:bg-sky-800 hover:text-white focus:outline-none"}," Print ",512),[[c,d(p.CANCEL,f.SAMPLE)&&s.can_print]])])]),_:1},8,["columns","data","loading","pageMeta","filterMeta","allChecked"])],64))}}),Be=xe(Ae,[["__file","/home/aurthur/Development/Python/felicity/felicity-lims/webapp/views/components/SampleListing.vue"]]);export{Be as t};
|