@sasindi/addresults 1.0.11 → 1.0.13

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.
package/dist/277.js CHANGED
@@ -1 +1 @@
1
- "use strict";(globalThis.webpackChunk_sasindi_addresults=globalThis.webpackChunk_sasindi_addresults||[]).push([["277"],{300(e,t,r){r.r(t),r.d(t,{default:()=>f});var n=r(9551),a=r.n(n),o=r(7817),s=r(4878);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function l(e,t,r,n,a,o,s){try{var c=e[o](s),l=c.value}catch(e){r(e);return}c.done?t(l):Promise.resolve(l).then(n,a)}function i(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function s(e){l(o,n,a,s,c,"next",e)}function c(e){l(o,n,a,s,c,"throw",e)}s(void 0)})}}function u(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var o=[],s=!0,c=!1;try{for(a=a.call(e);!(s=(r=a.next()).done)&&(o.push(r.value),!t||o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{s||null==a.return||a.return()}finally{if(c)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return c(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},s=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(s,"next",{value:l(0)}),c(s,"throw",{value:l(1)}),c(s,"return",{value:l(2)}),"function"==typeof Symbol&&c(s,Symbol.iterator,{value:function(){return this}}),s;function l(c){return function(l){var i=[c,l];if(r)throw TypeError("Generator is already executing.");for(;s&&(s=0,i[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&i[0]?n.return:i[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,i[1])).done)return a;switch(n=0,a&&(i=[2&i[0],a.value]),i[0]){case 0:case 1:a=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,n=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===i[0]||2===i[0])){o=0;continue}if(3===i[0]&&(!a||i[1]>a[0]&&i[1]<a[3])){o.label=i[1];break}if(6===i[0]&&o.label<a[1]){o.label=a[1],a=i;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(i);break}a[2]&&o.ops.pop(),o.trys.pop();continue}i=t.call(e,o)}catch(e){i=[6,e],n=0}finally{r=a=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}}}var p=function(e){window.history.pushState({},"",e),window.dispatchEvent(new PopStateEvent("popstate"))};let f=function(){(0,o.useTranslation)().t;var e=localStorage.getItem("phnNo")||"",t=localStorage.getItem("section")||"",r=localStorage.getItem("barcode")||"",c=localStorage.getItem("id")||"",l=d((0,n.useState)(""),2),f=l[0],h=l[1],v=d((0,n.useState)(""),2),y=v[0],g=v[1],b=d((0,n.useState)(""),2),E=b[0],w=b[1],S=d((0,n.useState)(""),2),A=S[0],N=S[1],O=d((0,n.useState)(""),2),C=O[0],x=O[1],j=d((0,n.useState)(""),2),k=j[0],P=j[1],T=d((0,n.useState)(""),2),R=T[0],F=T[1],D=d((0,n.useState)(""),2),J=D[0],I=D[1],W=d((0,n.useState)(""),2),L=W[0],M=W[1],U=d((0,n.useState)(""),2),B=U[0],G=U[1],_=d((0,n.useState)([]),2),H=_[0],Y=_[1],z=d((0,n.useState)(!0),2),X=z[0],V=z[1],$=d((0,n.useState)(!1),2),q=$[0],K=$[1],Q=d((0,n.useState)("Processing report..."),2),Z=Q[0],ee=Q[1],et=d((0,n.useState)(!1),2),er=et[0],en=et[1],ea=d((0,n.useState)(!1),2),eo=ea[0],es=ea[1],ec=d((0,n.useState)(null),2);ec[0],ec[1];var el=d((0,n.useState)(null),2),ei=el[0],eu=el[1],ed=function(e,t){eu({type:e,text:t}),setTimeout(function(){return eu(null)},3e3)},em=function(){var e=new Date,t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return"".concat(t,"-").concat(r,"-").concat(n)},ep=function(){var e=new Date,t=String(e.getHours()).padStart(2,"0"),r=String(e.getMinutes()).padStart(2,"0");return"".concat(t,":").concat(r)},ef=function(e){if(!e)return"";var t=new Date,r=new Date(e),n=t.getFullYear()-r.getFullYear(),a=t.getMonth()-r.getMonth();return(a<0||0===a&&t.getDate()<r.getDate())&&n--,String(n)},eh=function(e){if(!e)return"";var t=e.trim().toUpperCase();return"M"===t||"MALE"===t?"Male":"F"===t||"FEMALE"===t?"Female":e};(0,n.useEffect)(function(){i(function(){var t,n,a,o,s,c,l,i,u,p,f,v,y,b,E;return m(this,function(m){switch(m.label){case 0:return m.trys.push([0,18,19,20]),V(!0),[4,fetch("/openmrs/ws/rest/v1/session")];case 1:if(!(t=m.sent()).ok)throw Error("Failed to load session");return[4,t.json()];case 2:return a=(n=m.sent()).user.person.uuid,G(n.user.uuid),[4,fetch("/openmrs/ws/rest/v1/person/".concat(a))];case 3:if(!(o=m.sent()).ok)throw Error("Failed to load person");return[4,o.json()];case 4:if(s=m.sent(),c="",s.attributes&&s.attributes.forEach(function(e){if(e.display){var t=d(e.display.split("="),2),r=t[0],n=t[1];r&&n&&("Institute Id"===r.trim()||"Institute"===r.trim())&&(c=n.trim())}}),!c&&n.sessionLocation&&n.sessionLocation.uuid&&(c=n.sessionLocation.uuid),I(c),!c)return[3,7];return[4,fetch("/openmrs/ws/rest/v1/location/".concat(c))];case 5:if(!(l=m.sent()).ok)return[3,7];return[4,l.json()];case 6:M(m.sent().display||""),m.label=7;case 7:return[4,fetch("/openmrs/ws/rest/v1/opd/phn/".concat(e))];case 8:if(!(i=m.sent()).ok)throw Error("PHN not found!");return[4,i.json()];case 9:if(!(u=m.sent()).patientuuid)return[3,14];return[4,fetch("/openmrs/ws/rest/v1/patient/".concat(u.patientuuid))];case 10:if(!(p=m.sent()).ok)return[3,12];return[4,p.json()];case 11:return h((f=m.sent().person||{}).display||u.fullName||""),g(eh(f.gender||"")),f.birthdate&&w(ef(f.birthdate)),[3,13];case 12:h(u.fullName||""),w(ef(u.dateOfBirth)),m.label=13;case 13:return[3,15];case 14:h(u.fullName||""),w(ef(u.dateOfBirth)),m.label=15;case 15:return[4,fetch("/openmrs/ws/rest/v1/addresult/loadview/".concat(r))];case 16:if(!(v=m.sent()).ok)throw Error("Barcode details not found!");return[4,v.json()];case 17:return(y=m.sent())&&y.length>0&&(N((b=y[0])[2]||""),x(b[9]||"")),P(em()),F(ep()),[3,20];case 18:return console.error(E=m.sent()),ed("error",E.message||"Error initializing page data"),[3,20];case 19:return V(!1),[7];case 20:return[2]}})})()},[e,r]),(0,n.useEffect)(function(){A&&J&&i(function(){var e,r,n,a;return m(this,function(o){switch(o.label){case 0:return o.trys.push([0,11,,12]),[4,fetch("/openmrs/ws/rest/v1/addresult/loadparameter/".concat(A,"/").concat(J))];case 1:if(!(e=o.sent()).ok)throw Error("Failed to load parameters");return[4,e.json()];case 2:if(r=o.sent(),"OPD"!==t)return[3,4];return[4,fetch("/openmrs/ws/rest/v1/addresult/getvalueopd/".concat(c,"/").concat(A))];case 3:case 5:return n=o.sent(),[3,8];case 4:if("Clinic"!==t)return[3,6];return[4,fetch("/openmrs/ws/rest/v1/addresult/getvalueclinic/".concat(c,"/").concat(A))];case 6:if("Ward"!==t)return[3,8];return[4,fetch("/openmrs/ws/rest/v1/addresult/getvalueward/".concat(c,"/").concat(A))];case 7:n=o.sent(),o.label=8;case 8:if(a=[],!(n&&n.ok))return[3,10];return[4,n.json()];case 9:a=o.sent(),o.label=10;case 10:return Y((r||[]).map(function(e){var t=e[3],r=e[2],n=e[4],o=[];try{n&&"string"==typeof n&&(o=JSON.parse(n))}catch(e){o=[]}var s=a.find(function(e){return e[2]===t}),c=s&&null!==s[0]?s[0]:o.length>0?o[0]:"";return{id:t,name:r,options:o,value:c,units:s&&s[5]?s[5]:"",flag:s&&s[6]?s[6]:"",ranges:s&&s[7]?s[7]:"",savedId:s?s[3]:0}})),[3,12];case 11:return console.error(o.sent()),ed("error","Error loading test parameters"),[3,12];case 12:return[2]}})})()},[A,J,t,c]);var ev=function(e,t,r){Y(function(n){return n.map(function(n){var a,o;return n.id===e?(a=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){u(e,t,r[t])})}return e}({},n),o=null!=(o=u({},t,r))?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(o)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(o,e))}),a):n})})};return a().createElement("div",{className:s.A.bodyWrapper},ei&&a().createElement("div",{className:"".concat(s.A.toast," ").concat("success"===ei.type?s.A.toastSuccess:s.A.toastError)},ei.text),q&&a().createElement("div",{className:s.A.overlay},a().createElement("div",{className:s.A.spinner}),a().createElement("p",null,Z)),X?a().createElement("div",{className:s.A.card},a().createElement("div",{className:s.A.textCenter,style:{padding:"2rem"}},a().createElement("div",{className:s.A.spinner,style:{margin:"0 auto"}}),a().createElement("p",{style:{marginTop:"1rem",color:"var(--text-light)"}},"Loading profile data..."))):a().createElement("div",{className:s.A.card},a().createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"2rem",flexWrap:"wrap",gap:"10px"}},a().createElement("h2",{className:s.A.navTitle,style:{margin:0}},"Enter Test Results"),a().createElement("div",{className:s.A.instituteSelector,style:{margin:0}},a().createElement("span",null,"Hospital:"),a().createElement("span",{style:{fontWeight:600,color:"var(--primary-color)",marginLeft:"0.5rem"}},L))),a().createElement("div",{className:s.A.row},a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1)},a().createElement("label",null,"Full Name"),a().createElement("input",{type:"text",className:s.A.formControl,value:f,readOnly:!0})),a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1)},a().createElement("label",null,"Section"),a().createElement("input",{type:"text",className:s.A.formControl,value:t,readOnly:!0})),a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1)},a().createElement("label",null,"PHN No"),a().createElement("input",{type:"text",className:s.A.formControl,value:e,readOnly:!0})),a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1)},a().createElement("label",null,"Age"),a().createElement("input",{type:"text",className:s.A.formControl,value:E,readOnly:!0})),a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1)},a().createElement("label",null,"Gender"),a().createElement("input",{type:"text",className:s.A.formControl,value:y,readOnly:!0}))),a().createElement("hr",{style:{margin:"1.5rem 0",borderTop:"1px solid var(--border-color)"}}),a().createElement("div",{className:s.A.row},a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1),style:{flexGrow:2}},a().createElement("label",null,"Test Name"),a().createElement("input",{type:"text",className:s.A.formControl,value:A,readOnly:!0})),a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1),style:{flexGrow:3}},a().createElement("label",null,"Remark"),a().createElement("textarea",{className:s.A.formControl,rows:2,value:C,readOnly:!0})),a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1)},a().createElement("label",null,"Date"),a().createElement("input",{type:"date",className:s.A.formControl,value:k,onChange:function(e){return P(e.target.value)}})),a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1)},a().createElement("label",null,"Time"),a().createElement("input",{type:"time",className:s.A.formControl,value:R,onChange:function(e){return F(e.target.value)}}))),a().createElement("hr",{style:{margin:"2rem 0",borderTop:"1px solid var(--border-color)"}}),a().createElement("h3",{style:{fontSize:"1.1rem",fontWeight:600,marginBottom:"1rem",color:"var(--primary-color)"}},"Test Parameters"),a().createElement("div",{className:s.A.showHideTableParameter},a().createElement("table",{className:"".concat(s.A.table," ").concat(s.A.tableBordered," ").concat(s.A.tableStriped)},a().createElement("thead",null,a().createElement("tr",null,a().createElement("th",null,"No"),a().createElement("th",null,"Parameter Name"),a().createElement("th",{style:{width:"220px"}},"Value"),a().createElement("th",null,"Units"),a().createElement("th",null,"Flag"),a().createElement("th",null,"Ranges"))),a().createElement("tbody",null,H.length>0?H.map(function(e,t){return a().createElement("tr",{key:e.id},a().createElement("td",null,t+1),a().createElement("td",{style:{fontWeight:500}},e.name),a().createElement("td",null,e.options.length>0?a().createElement("select",{className:s.A.formControl,value:e.value,onChange:function(t){return ev(e.id,"value",t.target.value)},style:{width:"100%"}},e.options.map(function(e){return a().createElement("option",{key:e,value:e},e)})):a().createElement("input",{type:"text",className:s.A.formControl,value:e.value,onChange:function(t){return ev(e.id,"value",t.target.value)},style:{width:"100%"}})),a().createElement("td",null,a().createElement("input",{type:"text",className:s.A.formControl,value:e.units,onChange:function(t){return ev(e.id,"units",t.target.value)}})),a().createElement("td",null,a().createElement("input",{type:"text",className:s.A.formControl,value:e.flag,onChange:function(t){return ev(e.id,"flag",t.target.value)}})),a().createElement("td",null,a().createElement("input",{type:"text",className:s.A.formControl,value:e.ranges,onChange:function(t){return ev(e.id,"ranges",t.target.value)}})))}):a().createElement("tr",null,a().createElement("td",{colSpan:6,className:s.A.textCenter,style:{color:"var(--text-light)"}},"No parameters defined for this test."))))),a().createElement("div",{className:s.A.row,style:{marginTop:"2rem",alignItems:"center"}},a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1),style:{flexGrow:2}},a().createElement("div",{className:s.A.checkboxContainer,onClick:function(){return en(function(e){return!e})}},a().createElement("input",{type:"checkbox",checked:er,onChange:function(){}}),a().createElement("span",null,"Send to Approval"))),a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1),style:{flexGrow:3,alignItems:"flex-end"}},a().createElement("button",{type:"button",className:"".concat(s.A.btn," ").concat(s.A.btnWarning),onClick:function(){return i(function(){var r,n,a,o,s,l,u,d,p,h,v,y,g,b,w,S,N,O,C,x,j,P,T,F,D,J,I,W,M,U;return m(this,function(G){switch(G.label){case 0:if(H.some(function(e){return""===String(e.value).trim()}))return ed("error","Please fill all parameter values before generating report."),[2];G.label=1;case 1:return G.trys.push([1,31,32,33]),K(!0),ee("Uploading file template..."),ee("Reading report template..."),r="".concat(A,".docx"),[4,fetch("/openmrs/ws/rest/v1/addresult/downloadtemplate/".concat(encodeURIComponent(r)))];case 2:if(!(n=G.sent()).ok)throw Error('Template not found: "'.concat(r,'". Please place the DOCX template in the LabReportTemplateFileUploaded folder on the server.'));return[4,n.blob()];case 3:return a=G.sent(),[4,new Promise(function(e,t){var r=new FileReader;r.onloadend=function(){e(r.result.replace(/^data:.+;base64,/,""))},r.onerror=t,r.readAsDataURL(a)})];case 4:o=G.sent(),ee("Connecting to JSReport server..."),s="",G.label=5;case 5:var _;return G.trys.push([5,7,,8]),[4,(_="JSReportURLManual",i(function(){var e,t,r;return m(this,function(n){switch(n.label){case 0:return[4,fetch("/openmrs/ws/rest/v1/conceptreferenceterm?codeOrName=".concat(_,"&v=custom:(name,code)"))];case 1:if(!(e=n.sent()).ok)throw Error("Reference concept ".concat(_," not found"));return[4,e.json()];case 2:if((t=n.sent()).results&&t.results.length>0){if((r=t.results[0]).code&&r.code.startsWith("http"))return[2,r.code];if(r.name&&r.name.startsWith("http"))return[2,r.name];return[2,r.code===_?r.name||"":r.code||""]}return[2,""]}})})())];case 6:return s=G.sent(),[3,8];case 7:return console.warn("Failed to fetch JSReportURLManual from database, using fallback",G.sent()),[3,8];case 8:return s||(s="http://localhost:5488/"),[4,fetch("".concat(s,"odata/folders"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:"".concat(A," folder")})})];case 9:if(!(l=G.sent()).ok)throw Error("Failed to create folder on JSReport server");return[4,l.json()];case 10:return d=(u=G.sent()).shortid,p=u._id,[4,fetch("".concat(s,"odata/assets"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:o,folder:{shortid:d},name:A})})];case 11:if(!(h=G.sent()).ok)throw Error("Failed to upload asset to JSReport");return[4,h.json()];case 12:return v=G.sent().shortid,y={},H.forEach(function(e){y[e.name]={value:e.value,units:e.units,ranges:e.ranges,flag:e.flag}}),g={hospital:L,patientname:f,phn:e,docname:"",testName:A,age:E,collectdate:"".concat(k," ").concat(R),printdate:"".concat(em()," ").concat(ep()),parameters:y},[4,fetch("".concat(s,"odata/data"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dataJson:JSON.stringify(g),folder:{shortid:d},name:"".concat(A," data")})})];case 13:if(!(b=G.sent()).ok)throw Error("Failed to register report data on JSReport");return[4,b.json()];case 14:return w=G.sent().shortid,[4,fetch("".concat(s,"odata/templates"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:{shortid:w},docx:{templateAssetShortid:v},engine:"handlebars",folder:{shortid:d},name:"".concat(A," template"),recipe:"docx"})})];case 15:if(!(S=G.sent()).ok)throw Error("Failed to construct template configuration on JSReport");return[4,S.json()];case 16:return N=G.sent().shortid,ee("Rendering report..."),[4,fetch("".concat(s,"api/report"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({template:{shortid:N},recipe:"docx"})})];case 17:if(!(O=G.sent()).ok)throw Error("Failed to compile report document on JSReport");return[4,O.blob()];case 18:if(C=G.sent(),x=window.URL.createObjectURL(C),(j=document.createElement("a")).href=x,j.download="".concat(A,"_Report.docx"),document.body.appendChild(j),j.click(),document.body.removeChild(j),ee("Saving document attachment..."),P="","OPD"!==t)return[3,20];return[4,fetch("/openmrs/ws/rest/v1/addresult/labdetailsopd/".concat(c))];case 19:case 21:return T=G.sent(),[3,24];case 20:if("Clinic"!==t)return[3,22];return[4,fetch("/openmrs/ws/rest/v1/addresult/labdetailsclinic/".concat(c))];case 22:if("Ward"!==t)return[3,24];return[4,fetch("/openmrs/ws/rest/v1/addresult/labdetailsward/".concat(c))];case 23:T=G.sent(),G.label=24;case 24:if(!(T&&T.ok))return[3,26];return[4,T.json()];case 25:P=G.sent().encounteruuid||"",G.label=26;case 26:return F="".concat(e,"@@@").concat(A,"@@@").concat(P),(D=new FormData).append("file",C,"".concat(F,".docx")),[4,fetch("/openmrs/ws/rest/v1/addresult/upload",{method:"POST",body:D})];case 27:if(!(J=G.sent()).ok)throw Error("Failed to upload DOCX attachment to OpenMRS OWA");return[4,J.json()];case 28:return I=G.sent(),W={labreportingid:"OPD"===t?c:null,labreportingclinicid:"Clinic"===t?c:null,labreportingwardid:"Ward"===t?c:null,reportname:"".concat(F,".docx"),file:I.data,status:"Approved",cby:B},M="/openmrs/ws/rest/v1/addresult/savedocument","Clinic"===t&&(M="/openmrs/ws/rest/v1/addresult/savedocumentclinic"),"Ward"===t&&(M="/openmrs/ws/rest/v1/addresult/savedocumentward"),[4,fetch(M,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(W)})];case 29:if(!G.sent().ok)throw Error("Failed to save document meta record to database");return ee("Cleaning up..."),[4,fetch("".concat(s,"odata/folders('").concat(p,"')"),{method:"DELETE"})];case 30:return G.sent(),es(!0),ed("success","Report generated and converted successfully!"),[3,33];case 31:return console.error(U=G.sent()),ed("error",U.message||"Error occurred during report generation"),[3,33];case 32:return K(!1),[7];case 33:return[2]}})})()}},"Generate Report"))),a().createElement("hr",{style:{margin:"1.5rem 0",borderTop:"1px solid var(--border-color)"}}),a().createElement("div",{className:s.A.textRight},a().createElement("button",{type:"button",className:"".concat(s.A.btn," ").concat(s.A.btnSuccess," ").concat(s.A.mx2),onClick:function(){return i(function(){var e,r,n,a,o,s,l,i,u,d,f;return m(this,function(m){switch(m.label){case 0:if(!eo)return ed("error","Please generate Report first before saving."),[2];if(!k||!R)return ed("error","Please fill all the date and time fields."),[2];m.label=1;case 1:m.trys.push([1,11,12,13]),K(!0),ee("Saving parameter values..."),e=!0,r=!1,n=void 0,m.label=2;case 2:m.trys.push([2,7,8,9]),a=H[Symbol.iterator](),m.label=3;case 3:if(e=(o=a.next()).done)return[3,6];return l={id:(s=o.value).savedId,parameterid:s.id,value:s.value,cby:B,units:s.units,flag:s.flag,ranges:s.ranges},i="/openmrs/ws/rest/v1/addresult/saveparametervalue","OPD"===t?l.labreportingid=c:"Clinic"===t?(l.labreportingclinicid=c,i="/openmrs/ws/rest/v1/addresult/saveparametervalueclinic"):"Ward"===t&&(l.labreportingwardid=c,i="/openmrs/ws/rest/v1/addresult/saveparametervalueward"),[4,fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)})];case 4:if(!m.sent().ok)throw Error("Failed to save parameter ".concat(s.name));m.label=5;case 5:return e=!0,[3,3];case 6:return[3,9];case 7:return u=m.sent(),r=!0,n=u,[3,9];case 8:try{e||null==a.return||a.return()}finally{if(r)throw n}return[7];case 9:return ee("Updating laboratory status..."),d="/openmrs/ws/rest/v1/samplecollection/labtestsstatus","Clinic"===t?d="/openmrs/ws/rest/v1/samplecollection/labtestsstatusclinic":"Ward"===t&&(d="/openmrs/ws/rest/v1/samplecollection/labtestsstatusward"),[4,fetch(d,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:c,status:er?"Send Approved":"Approved"})})];case 10:if(!m.sent().ok)throw Error("Failed to update lab test status");return ed("success","Data Saved Successfully!"),setTimeout(function(){p(window.getOpenmrsSpaBase()+"addresults")},1500),[3,13];case 11:return console.error(f=m.sent()),ed("error",f.message||"Error saving results details"),[3,13];case 12:return K(!1),[7];case 13:return[2]}})})()},style:{width:"120px",height:"40px"}},"Save"),a().createElement("button",{type:"button",className:"".concat(s.A.btn," ").concat(s.A.btnDanger),onClick:function(){return p(window.getOpenmrsSpaBase()+"addresults")},style:{width:"120px",height:"40px"}},"Back"))))}}}]);
1
+ "use strict";(globalThis.webpackChunk_sasindi_addresults=globalThis.webpackChunk_sasindi_addresults||[]).push([["277"],{300(e,t,r){r.r(t),r.d(t,{default:()=>f});var n=r(9551),a=r.n(n),o=r(7817),s=r(4878);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function l(e,t,r,n,a,o,s){try{var c=e[o](s),l=c.value}catch(e){r(e);return}c.done?t(l):Promise.resolve(l).then(n,a)}function i(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function s(e){l(o,n,a,s,c,"next",e)}function c(e){l(o,n,a,s,c,"throw",e)}s(void 0)})}}function u(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var o=[],s=!0,c=!1;try{for(a=a.call(e);!(s=(r=a.next()).done)&&(o.push(r.value),!t||o.length!==t);s=!0);}catch(e){c=!0,n=e}finally{try{s||null==a.return||a.return()}finally{if(c)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return c(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){var r,n,a,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},s=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(s,"next",{value:l(0)}),c(s,"throw",{value:l(1)}),c(s,"return",{value:l(2)}),"function"==typeof Symbol&&c(s,Symbol.iterator,{value:function(){return this}}),s;function l(c){return function(l){var i=[c,l];if(r)throw TypeError("Generator is already executing.");for(;s&&(s=0,i[0]&&(o=0)),o;)try{if(r=1,n&&(a=2&i[0]?n.return:i[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,i[1])).done)return a;switch(n=0,a&&(i=[2&i[0],a.value]),i[0]){case 0:case 1:a=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,n=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===i[0]||2===i[0])){o=0;continue}if(3===i[0]&&(!a||i[1]>a[0]&&i[1]<a[3])){o.label=i[1];break}if(6===i[0]&&o.label<a[1]){o.label=a[1],a=i;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(i);break}a[2]&&o.ops.pop(),o.trys.pop();continue}i=t.call(e,o)}catch(e){i=[6,e],n=0}finally{r=a=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}}}var p=function(e){window.history.pushState({},"",e),window.dispatchEvent(new PopStateEvent("popstate"))};let f=function(){(0,o.useTranslation)().t;var e=localStorage.getItem("phnNo")||"",t=localStorage.getItem("section")||"",r=localStorage.getItem("barcode")||"",c=localStorage.getItem("id")||"",l=d((0,n.useState)(""),2),f=l[0],h=l[1],v=d((0,n.useState)(""),2),g=v[0],y=v[1],b=d((0,n.useState)(""),2),w=b[0],E=b[1],S=d((0,n.useState)(""),2),A=S[0],N=S[1],O=d((0,n.useState)(""),2),C=O[0],x=O[1],k=d((0,n.useState)(""),2),j=k[0],P=k[1],T=d((0,n.useState)(""),2),R=T[0],D=T[1],F=d((0,n.useState)(!1),2),I=F[0],U=F[1],J=d((0,n.useState)([]),2),L=J[0],W=J[1],M=d((0,n.useState)(""),2),B=M[0],G=M[1],_=d((0,n.useState)(""),2),H=_[0],X=_[1],Y=d((0,n.useState)(""),2),z=Y[0],V=Y[1],$=d((0,n.useState)([]),2),q=$[0],K=$[1],Q=d((0,n.useState)(!0),2),Z=Q[0],ee=Q[1],et=d((0,n.useState)(!1),2),er=et[0],en=et[1],ea=d((0,n.useState)("Processing report..."),2),eo=ea[0],es=ea[1],ec=d((0,n.useState)(!1),2),el=ec[0],ei=ec[1],eu=d((0,n.useState)(!1),2),ed=eu[0],em=eu[1],ep=d((0,n.useState)(null),2);ep[0],ep[1];var ef=d((0,n.useState)(null),2),eh=ef[0],ev=ef[1],eg=function(e,t){ev({type:e,text:t}),setTimeout(function(){return ev(null)},3e3)},ey=function(){var e=new Date,t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return"".concat(t,"-").concat(r,"-").concat(n)},eb=function(){var e=new Date,t=String(e.getHours()).padStart(2,"0"),r=String(e.getMinutes()).padStart(2,"0");return"".concat(t,":").concat(r)},ew=function(e){if(!e)return"";var t=new Date,r=new Date(e),n=t.getFullYear()-r.getFullYear(),a=t.getMonth()-r.getMonth();return(a<0||0===a&&t.getDate()<r.getDate())&&n--,String(n)},eE=function(e){if(!e)return"";var t=e.trim().toUpperCase();return"M"===t||"MALE"===t?"Male":"F"===t||"FEMALE"===t?"Female":e};(0,n.useEffect)(function(){i(function(){var t,n,a,o,s,l,i,u,p,f,v,g,b,w,S;return m(this,function(m){switch(m.label){case 0:return m.trys.push([0,18,19,20]),ee(!0),[4,fetch("/openmrs/ws/rest/v1/session")];case 1:if(!(t=m.sent()).ok)throw Error("Failed to load session");return[4,t.json()];case 2:return a=(n=m.sent()).user.person.uuid,V(n.user.uuid),[4,fetch("/openmrs/ws/rest/v1/person/".concat(a))];case 3:if(!(o=m.sent()).ok)throw Error("Failed to load person");return[4,o.json()];case 4:if(s=m.sent(),l="",s.attributes&&s.attributes.forEach(function(e){if(e.display){var t=d(e.display.split("="),2),r=t[0],n=t[1];r&&n&&("Institute Id"===r.trim()||"Institute"===r.trim())&&(l=n.trim())}}),!l&&n.sessionLocation&&n.sessionLocation.uuid&&(l=n.sessionLocation.uuid),G(l),!l)return[3,7];return[4,fetch("/openmrs/ws/rest/v1/location/".concat(l))];case 5:if(!(i=m.sent()).ok)return[3,7];return[4,i.json()];case 6:X(m.sent().display||""),m.label=7;case 7:return[4,fetch("/openmrs/ws/rest/v1/opd/phn/".concat(e))];case 8:if(!(u=m.sent()).ok)throw Error("PHN not found!");return[4,u.json()];case 9:if(!(p=m.sent()).patientuuid)return[3,14];return[4,fetch("/openmrs/ws/rest/v1/patient/".concat(p.patientuuid))];case 10:if(!(f=m.sent()).ok)return[3,12];return[4,f.json()];case 11:return h((v=m.sent().person||{}).display||p.fullName||""),y(eE(v.gender||"")),v.birthdate&&E(ew(v.birthdate)),[3,13];case 12:h(p.fullName||""),E(ew(p.dateOfBirth)),m.label=13;case 13:return[3,15];case 14:h(p.fullName||""),E(ew(p.dateOfBirth)),m.label=15;case 15:return[4,fetch("/openmrs/ws/rest/v1/addresult/loadview/".concat(r))];case 16:if(!(g=m.sent()).ok)throw Error("Barcode details not found!");return[4,g.json()];case 17:return b=m.sent(),w=[],b&&b.length>0&&(b.forEach(function(e){var t=(e[2]||"").trim(),r=e[8]||c,n=e[9]||"";t.includes("/")||t.includes(",")?t.split(/[\/,]+/).map(function(e){return e.trim()}).filter(Boolean).forEach(function(e,t){w.push({id:"".concat(r,"_").concat(t),name:e,remark:n})}):t&&w.push({id:r,name:t,remark:n})}),N(w.map(function(e){return e.name}).join(", ")),x(b[0][9]||""),W(w),U(w.length>1)),P(ey()),D(eb()),[3,20];case 18:return console.error(S=m.sent()),eg("error",S.message||"Error initializing page data"),[3,20];case 19:return ee(!1),[7];case 20:return[2]}})})()},[e,r]),(0,n.useEffect)(function(){A&&B&&i(function(){var e,r,n,a,o,s;return m(this,function(l){switch(l.label){case 0:if(l.trys.push([0,13,,14]),U(e=L.length>1),n=L.length>0?L[0].name:A,"OPD"!==t)return[3,2];return[4,fetch("/openmrs/ws/rest/v1/addresult/getvalueopd/".concat(c,"/").concat(encodeURIComponent(n)))];case 1:case 3:return r=l.sent(),[3,6];case 2:if("Clinic"!==t)return[3,4];return[4,fetch("/openmrs/ws/rest/v1/addresult/getvalueclinic/".concat(c,"/").concat(encodeURIComponent(n)))];case 4:if("Ward"!==t)return[3,6];return[4,fetch("/openmrs/ws/rest/v1/addresult/getvalueward/".concat(c,"/").concat(encodeURIComponent(n)))];case 5:r=l.sent(),l.label=6;case 6:if(a=[],!(r&&r.ok))return[3,8];return[4,r.json()];case 7:a=l.sent(),l.label=8;case 8:if(!e)return[3,9];return K(L.map(function(e){var t=a.find(function(t){return t[1]===e.name||t[2]===e.id}),r=t&&null!==t[0]?t[0]:"",n=t&&t[5]?t[5]:"",o=t&&t[6]?t[6]:"",s=t&&t[7]?t[7]:"",c=t?t[3]:0;return{id:e.id,name:e.name,options:[],value:r,units:n,flag:o,ranges:s,savedId:c,isTestRow:!0}})),[3,12];case 9:return o=L[0]?L[0].name:A,[4,fetch("/openmrs/ws/rest/v1/addresult/loadparameter/".concat(encodeURIComponent(o),"/").concat(B))];case 10:if(!(s=l.sent()).ok)throw Error("Failed to load parameters");return[4,s.json()];case 11:K((l.sent()||[]).map(function(e){var t=e[3],r=e[2],n=e[4],o=e[5]||"",s=e[6]||"",c=[];try{n&&"string"==typeof n&&(c=JSON.parse(n))}catch(e){c=[]}var l=a.find(function(e){return e[2]===t||e[1]===r}),i=l&&null!==l[0]?l[0]:c.length>0?c[0]:"";return{id:t,name:r,options:c,value:i,units:l&&l[5]?l[5]:o,flag:l&&l[6]?l[6]:"",ranges:l&&l[7]?l[7]:s,savedId:l?l[3]:0,isTestRow:!1}})),l.label=12;case 12:return[3,14];case 13:return console.error(l.sent()),eg("error","Error loading test details"),[3,14];case 14:return[2]}})})()},[A,B,t,c,L]);var eS=function(e){return i(function(){var t,r,n;return m(this,function(a){switch(a.label){case 0:return[4,fetch("/openmrs/ws/rest/v1/conceptreferenceterm?codeOrName=".concat(e,"&v=custom:(name,code)"))];case 1:if(!(t=a.sent()).ok)throw Error("Reference concept ".concat(e," not found"));return[4,t.json()];case 2:if((r=a.sent()).results&&r.results.length>0){if((n=r.results[0]).code&&n.code.startsWith("http"))return[2,n.code];if(n.name&&n.name.startsWith("http"))return[2,n.name];return[2,n.code===e?n.name||"":n.code||""]}return[2,""]}})})()},eA=function(e,t,r){K(function(n){return n.map(function(n){var a,o;return n.id===e?(a=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){u(e,t,r[t])})}return e}({},n),o=null!=(o=u({},t,r))?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(o)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(a,e,Object.getOwnPropertyDescriptor(o,e))}),a):n})})};return a().createElement("div",{className:s.A.bodyWrapper},eh&&a().createElement("div",{className:"".concat(s.A.toast," ").concat("success"===eh.type?s.A.toastSuccess:s.A.toastError)},eh.text),er&&a().createElement("div",{className:s.A.overlay},a().createElement("div",{className:s.A.spinner}),a().createElement("p",null,eo)),Z?a().createElement("div",{className:s.A.card},a().createElement("div",{className:s.A.textCenter,style:{padding:"2rem"}},a().createElement("div",{className:s.A.spinner,style:{margin:"0 auto"}}),a().createElement("p",{style:{marginTop:"1rem",color:"var(--text-light)"}},"Loading profile data..."))):a().createElement("div",{className:s.A.card},a().createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"2rem",flexWrap:"wrap",gap:"10px"}},a().createElement("h2",{className:s.A.navTitle,style:{margin:0}},"Enter Test Results"),a().createElement("div",{className:s.A.instituteSelector,style:{margin:0}},a().createElement("span",null,"Hospital:"),a().createElement("span",{style:{fontWeight:600,color:"var(--primary-color)",marginLeft:"0.5rem"}},H))),a().createElement("div",{className:s.A.row},a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1)},a().createElement("label",null,"Full Name"),a().createElement("input",{type:"text",className:s.A.formControl,value:f,readOnly:!0})),a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1)},a().createElement("label",null,"Section"),a().createElement("input",{type:"text",className:s.A.formControl,value:t,readOnly:!0})),a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1)},a().createElement("label",null,"PHN No"),a().createElement("input",{type:"text",className:s.A.formControl,value:e,readOnly:!0})),a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1)},a().createElement("label",null,"Age"),a().createElement("input",{type:"text",className:s.A.formControl,value:w,readOnly:!0})),a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1)},a().createElement("label",null,"Gender"),a().createElement("input",{type:"text",className:s.A.formControl,value:g,readOnly:!0}))),a().createElement("hr",{style:{margin:"1.5rem 0",borderTop:"1px solid var(--border-color)"}}),a().createElement("div",{className:s.A.row},a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1),style:{flexGrow:2}},a().createElement("label",null,"Test Name"),a().createElement("input",{type:"text",className:s.A.formControl,value:A,readOnly:!0})),a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1),style:{flexGrow:3}},a().createElement("label",null,"Remark"),a().createElement("textarea",{className:s.A.formControl,rows:2,value:C,readOnly:!0})),a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1)},a().createElement("label",null,"Date"),a().createElement("input",{type:"date",className:s.A.formControl,value:j,onChange:function(e){return P(e.target.value)}})),a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1)},a().createElement("label",null,"Time"),a().createElement("input",{type:"time",className:s.A.formControl,value:R,onChange:function(e){return D(e.target.value)}}))),a().createElement("hr",{style:{margin:"2rem 0",borderTop:"1px solid var(--border-color)"}}),a().createElement("h3",{style:{fontSize:"1.1rem",fontWeight:600,marginBottom:"1rem",color:"var(--primary-color)"}},I?"Ordered Tests":"Test Parameters"),a().createElement("div",{className:s.A.showHideTableParameter},a().createElement("table",{className:"".concat(s.A.table," ").concat(s.A.tableBordered," ").concat(s.A.tableStriped)},a().createElement("thead",null,a().createElement("tr",null,a().createElement("th",null,"No"),a().createElement("th",null,I?"Test Name":"Parameter Name"),a().createElement("th",{style:{width:"220px"}},"Value"),a().createElement("th",null,"Units"),a().createElement("th",null,"Flag"),a().createElement("th",null,"Ranges"))),a().createElement("tbody",null,q.length>0?q.map(function(e,t){return a().createElement("tr",{key:e.id},a().createElement("td",null,t+1),a().createElement("td",{style:{fontWeight:500}},e.name),a().createElement("td",null,e.options.length>0?a().createElement("select",{className:s.A.formControl,value:e.value,onChange:function(t){return eA(e.id,"value",t.target.value)},style:{width:"100%"}},e.options.map(function(e){return a().createElement("option",{key:e,value:e},e)})):a().createElement("input",{type:"text",className:s.A.formControl,value:e.value,onChange:function(t){return eA(e.id,"value",t.target.value)},style:{width:"100%"}})),a().createElement("td",null,a().createElement("input",{type:"text",className:s.A.formControl,value:e.units,onChange:function(t){return eA(e.id,"units",t.target.value)}})),a().createElement("td",null,a().createElement("input",{type:"text",className:s.A.formControl,value:e.flag,onChange:function(t){return eA(e.id,"flag",t.target.value)}})),a().createElement("td",null,a().createElement("input",{type:"text",className:s.A.formControl,value:e.ranges,onChange:function(t){return eA(e.id,"ranges",t.target.value)}})))}):a().createElement("tr",null,a().createElement("td",{colSpan:6,className:s.A.textCenter,style:{color:"var(--text-light)"}},"No parameters defined for this test."))))),a().createElement("div",{className:s.A.row,style:{marginTop:"2rem",alignItems:"center"}},a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1),style:{flexGrow:2}},a().createElement("div",{className:s.A.checkboxContainer,onClick:function(){return ei(function(e){return!e})}},a().createElement("input",{type:"checkbox",checked:el,onChange:function(){}}),a().createElement("span",null,"Send to Approval"))),a().createElement("div",{className:"".concat(s.A.col," ").concat(s.A.my1),style:{flexGrow:3,alignItems:"flex-end"}},a().createElement("button",{type:"button",className:"".concat(s.A.btn," ").concat(s.A.btnWarning),onClick:function(){return i(function(){var r,n,a,o,s,l,i,u,d,p,h,v,g,y,b,E,S,N,O,C,x,k,P,T,D,F,I,U,J,L,W,M,B,G,_,X,Y,V,$;return m(this,function(m){switch(m.label){case 0:if(q.some(function(e){return""===String(e.value).trim()}))return eg("error","Please fill all parameter values before generating report."),[2];m.label=1;case 1:return m.trys.push([1,42,43,44]),en(!0),es("Uploading file template..."),es("Reading report template..."),r="".concat(A,".docx"),[4,fetch("/openmrs/ws/rest/v1/addresult/downloadtemplate/".concat(encodeURIComponent(r)))];case 2:if(!(n=m.sent()).ok)throw Error('Template not found: "'.concat(r,'". Please place the DOCX template in the LabReportTemplateFileUploaded folder on the server.'));return[4,n.blob()];case 3:return a=m.sent(),[4,new Promise(function(e,t){var r=new FileReader;r.onloadend=function(){e(r.result.replace(/^data:.+;base64,/,""))},r.onerror=t,r.readAsDataURL(a)})];case 4:o=m.sent(),es("Connecting to JSReport server..."),s="",m.label=5;case 5:return m.trys.push([5,7,,8]),[4,eS("JSReportURLManual")];case 6:return s=m.sent(),[3,8];case 7:return console.warn("Failed to fetch JSReportURLManual from database, using fallback",m.sent()),[3,8];case 8:return s||(s="http://localhost:5488/"),[4,fetch("".concat(s,"odata/folders"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:"".concat(A," folder")})})];case 9:if(!(l=m.sent()).ok)throw Error("Failed to create folder on JSReport server");return[4,l.json()];case 10:return u=(i=m.sent()).shortid,d=i._id,[4,fetch("".concat(s,"odata/assets"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:o,folder:{shortid:u},name:A})})];case 11:if(!(p=m.sent()).ok)throw Error("Failed to upload asset to JSReport");return[4,p.json()];case 12:return h=m.sent().shortid,v={},g=[],q.forEach(function(e,t){var r=e.name,n="";if(e.name.includes("/")){var a=e.name.split("/");n=a[0].trim(),r=a[1].trim()}var o={value:e.value,units:e.units,ranges:e.ranges,flag:e.flag,item:r,itemName:n,itemCode:r};v[e.name]=o,v[r]=o,n&&(v[n]=o),g.push({index:t+1,item:r,itemName:n,value:e.value,units:e.units,ranges:e.ranges,flag:e.flag})}),y={hospital:H,patientname:f,phn:e,docname:"",testName:A,age:w,collectdate:"".concat(j," ").concat(R),printdate:"".concat(ey()," ").concat(eb()),parameters:v,parametersList:g},[4,fetch("".concat(s,"odata/data"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dataJson:JSON.stringify(y),folder:{shortid:u},name:"".concat(A," data")})})];case 13:if(!(b=m.sent()).ok)throw Error("Failed to register report data on JSReport");return[4,b.json()];case 14:return E=m.sent().shortid,[4,fetch("".concat(s,"odata/templates"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:{shortid:E},docx:{templateAssetShortid:h},engine:"handlebars",folder:{shortid:u},name:"".concat(A," template"),recipe:"docx"})})];case 15:if(!(S=m.sent()).ok)throw Error("Failed to construct template configuration on JSReport");return[4,S.json()];case 16:return N=m.sent().shortid,es("Rendering report..."),[4,fetch("".concat(s,"api/report"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({template:{shortid:N},recipe:"docx"})})];case 17:if(!(O=m.sent()).ok)throw Error("Failed to compile report document on JSReport");return[4,O.blob()];case 18:if(C=m.sent(),es("Saving document attachment..."),x="","OPD"!==t)return[3,20];return[4,fetch("/openmrs/ws/rest/v1/addresult/labdetailsopd/".concat(c))];case 19:case 21:return k=m.sent(),[3,24];case 20:if("Clinic"!==t)return[3,22];return[4,fetch("/openmrs/ws/rest/v1/addresult/labdetailsclinic/".concat(c))];case 22:if("Ward"!==t)return[3,24];return[4,fetch("/openmrs/ws/rest/v1/addresult/labdetailsward/".concat(c))];case 23:k=m.sent(),m.label=24;case 24:if(!(k&&k.ok))return[3,26];return[4,k.json()];case 25:x=m.sent().encounteruuid||"",m.label=26;case 26:P="".concat(e,"@@@").concat(A,"@@@").concat(x),T="",m.label=27;case 27:return m.trys.push([27,29,,30]),[4,eS("DocToPdfConverterURLManual")];case 28:return T=m.sent(),[3,30];case 29:return console.warn("Failed to fetch DocToPdfConverterURLManual from database, using fallback",m.sent()),[3,30];case 30:T||(T="http://localhost:5000/"),D=C,F="".concat(P,".docx"),I=!1,m.label=31;case 31:return m.trys.push([31,36,,37]),es("Converting report to PDF..."),(U=new FormData).append("file",C,"document.docx"),[4,fetch("".concat(T,"convert-to-pdf"),{method:"POST",body:U})];case 32:if(!(J=m.sent()).ok)return[3,34];return[4,J.blob()];case 33:return D=L=m.sent(),F="".concat(P,".pdf"),I=!0,W=window.URL.createObjectURL(L),window.open(W),[3,35];case 34:console.warn("PDF conversion response was not ok, falling back to DOCX."),m.label=35;case 35:return[3,37];case 36:return console.warn("PDF conversion service failed or not reachable, falling back to DOCX.",m.sent()),[3,37];case 37:return I||(M=window.URL.createObjectURL(C),(B=document.createElement("a")).href=M,B.download="".concat(A,"_Report.docx"),document.body.appendChild(B),B.click(),document.body.removeChild(B),eg("error","PDF converter not available. Defaulted to DOCX download.")),(G=new FormData).append("file",D,F),[4,fetch("/openmrs/ws/rest/v1/addresult/upload",{method:"POST",body:G})];case 38:if(!(_=m.sent()).ok)throw Error("Failed to upload attachment to OpenMRS OWA");return[4,_.json()];case 39:return X=m.sent(),Y={labreportingid:"OPD"===t?c:null,labreportingclinicid:"Clinic"===t?c:null,labreportingwardid:"Ward"===t?c:null,reportname:F,file:X.data,status:"Approved",cby:z},V="/openmrs/ws/rest/v1/addresult/savedocument","Clinic"===t&&(V="/openmrs/ws/rest/v1/addresult/savedocumentclinic"),"Ward"===t&&(V="/openmrs/ws/rest/v1/addresult/savedocumentward"),[4,fetch(V,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Y)})];case 40:if(!m.sent().ok)throw Error("Failed to save document meta record to database");return es("Cleaning up..."),[4,fetch("".concat(s,"odata/folders('").concat(d,"')"),{method:"DELETE"})];case 41:return m.sent(),em(!0),eg("success","Report generated and converted successfully!"),[3,44];case 42:return console.error($=m.sent()),eg("error",$.message||"Error occurred during report generation"),[3,44];case 43:return en(!1),[7];case 44:return[2]}})})()}},"Generate Report"))),a().createElement("hr",{style:{margin:"1.5rem 0",borderTop:"1px solid var(--border-color)"}}),a().createElement("div",{className:s.A.textRight},a().createElement("button",{type:"button",className:"".concat(s.A.btn," ").concat(s.A.btnSuccess," ").concat(s.A.mx2),onClick:function(){return i(function(){var e,r,n,a,o,s,l,i,u,d,f;return m(this,function(m){switch(m.label){case 0:if(!ed)return eg("error","Please generate Report first before saving."),[2];if(!j||!R)return eg("error","Please fill all the date and time fields."),[2];m.label=1;case 1:m.trys.push([1,11,12,13]),en(!0),es("Saving parameter values..."),e=!0,r=!1,n=void 0,m.label=2;case 2:m.trys.push([2,7,8,9]),a=q[Symbol.iterator](),m.label=3;case 3:if(e=(o=a.next()).done)return[3,6];return l={id:(s=o.value).savedId,parameterid:s.id,value:s.value,cby:z,units:s.units,flag:s.flag,ranges:s.ranges},i="/openmrs/ws/rest/v1/addresult/saveparametervalue","OPD"===t?l.labreportingid=c:"Clinic"===t?(l.labreportingclinicid=c,i="/openmrs/ws/rest/v1/addresult/saveparametervalueclinic"):"Ward"===t&&(l.labreportingwardid=c,i="/openmrs/ws/rest/v1/addresult/saveparametervalueward"),[4,fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)})];case 4:if(!m.sent().ok)throw Error("Failed to save parameter ".concat(s.name));m.label=5;case 5:return e=!0,[3,3];case 6:return[3,9];case 7:return u=m.sent(),r=!0,n=u,[3,9];case 8:try{e||null==a.return||a.return()}finally{if(r)throw n}return[7];case 9:return es("Updating laboratory status..."),d="/openmrs/ws/rest/v1/samplecollection/labtestsstatus","Clinic"===t?d="/openmrs/ws/rest/v1/samplecollection/labtestsstatusclinic":"Ward"===t&&(d="/openmrs/ws/rest/v1/samplecollection/labtestsstatusward"),[4,fetch(d,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:c,status:el?"Send Approved":"Approved"})})];case 10:if(!m.sent().ok)throw Error("Failed to update lab test status");return eg("success","Data Saved Successfully!"),setTimeout(function(){p(window.getOpenmrsSpaBase()+"addresults")},1500),[3,13];case 11:return console.error(f=m.sent()),eg("error",f.message||"Error saving results details"),[3,13];case 12:return en(!1),[7];case 13:return[2]}})})()},style:{width:"120px",height:"40px"}},"Save"),a().createElement("button",{type:"button",className:"".concat(s.A.btn," ").concat(s.A.btnDanger),onClick:function(){return p(window.getOpenmrsSpaBase()+"addresults")},style:{width:"120px",height:"40px"}},"Back"))))}}}]);
package/dist/277.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"277.js","sources":["webpack://@sasindi/addresults/./src/add-results-form.component.tsx"],"names":["navigateTo","url","window","PopStateEvent","useTranslation","t","phn","localStorage","section","barcode","serial","_useState","patientName","setPatientName","_useState1","patientGender","setPatientGender","_useState2","patientAge","setPatientAge","_useState3","testName","setTestName","_useState4","testRemark","setTestRemark","_useState5","testDate","setTestDate","_useState6","testTime","setTestTime","_useState7","locationUuid","setLocationUuid","_useState8","instituteName","setInstituteName","_useState9","currentUserUuid","setCurrentUserUuid","_useState10","parameters","setParameters","_useState11","loading","setLoading","_useState12","showSpinner","setShowSpinner","_useState13","spinnerText","setSpinnerText","_useState14","sendToApproval","setSendToApproval","_useState15","flagGenerate","setFlagGenerate","_useState16","_useState17","toast","setToast","showToast","type","text","setTimeout","getCurrentDateFormatted","now","Date","year","month","String","day","getCurrentTimeFormatted","hours","minutes","getAge","dateString","today","birthDate","age","m","formatGender","gender","upper","useEffect","sessionRes","sessionData","personUuid","personRes","personData","initialLocUuid","locRes","phnRes","phnData","patientRes","person","testRes","testDataArray","mainTestData","err","fetch","Error","attr","_attr_display_split","key","value","locData","patientData","console","paramsRes","paramsData","valuesRes","savedValues","p","paramId","paramName","paramOptionsStr","options","JSON","e","matchedSaved","sv","initialValue","savedId","handleParameterChange","field","prev","styles","onChange","idx","opt","onClick","finalTemplateFileName","templateRes","templateBlob","base64String","jsReportUrl","folderRes","folderData","folderShortId","folderId","assetRes","assetShortId","paramMap","reportJsonData","jsreportDataRes","dataShortId","jsreportTemplateRes","templateShortId","renderRes","renderedDocxBlob","docxUrl","downloadLink","labEncounterUuid","labDetailsRes","docName","uploadDocxFormData","serverUploadRes","serverUploadResult","rawDocRecord","saveDocUrl","encodeURIComponent","Promise","resolve","reject","reader","FileReader","res","codeName","data","term","assetData","jsreportDataResult","jsreportTemplateResult","document","labDetails","FormData","saveDocRecordRes","_iteratorError","paramRecord","saveParamUrl","saveParamRes","saveStatusUrl","err1","saveStatusRes"],"mappings":"suFAIA,IAAMA,EAAa,SAACC,CAAG,EACrBC,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAG,GAAID,GACjCC,OAAO,aAAa,CAAC,IAAIC,cAAc,YACzC,EAmxBA,MAjxBiC,WACjBC,AAAAA,GAAAA,EAAAA,cAAAA,AAAAA,IAANC,CAAC,CAGT,IAAMC,EAAMC,aAAa,OAAO,CAAC,UAAY,GACvCC,EAAUD,aAAa,OAAO,CAAC,YAAc,GAC7CE,EAAUF,aAAa,OAAO,CAAC,YAAc,GAC7CG,EAASH,aAAa,OAAO,CAAC,OAAS,GAGPI,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAAhDC,EAA+BD,CAAAA,CAAAA,EAAAA,CAAlBE,EAAkBF,CAAAA,CAAAA,EAAAA,CACIG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAApDC,EAAmCD,CAAAA,CAAAA,EAAAA,CAApBE,EAAoBF,CAAAA,CAAAA,EAAAA,CACNG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA9CC,EAA6BD,CAAAA,CAAAA,EAAAA,CAAjBE,EAAiBF,CAAAA,CAAAA,EAAAA,CACJG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA1CC,EAAyBD,CAAAA,CAAAA,EAAAA,CAAfE,EAAeF,CAAAA,CAAAA,EAAAA,CACIG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA9CC,EAA6BD,CAAAA,CAAAA,EAAAA,CAAjBE,EAAiBF,CAAAA,CAAAA,EAAAA,CACJG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA1CC,EAAyBD,CAAAA,CAAAA,EAAAA,CAAfE,EAAeF,CAAAA,CAAAA,EAAAA,CACAG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA1CC,EAAyBD,CAAAA,CAAAA,EAAAA,CAAfE,EAAeF,CAAAA,CAAAA,EAAAA,CAGQG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAAlDC,EAAiCD,CAAAA,CAAAA,EAAAA,CAAnBE,EAAmBF,CAAAA,CAAAA,EAAAA,CACEG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAApDC,EAAmCD,CAAAA,CAAAA,EAAAA,CAApBE,EAAoBF,CAAAA,CAAAA,EAAAA,CACIG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAAxDC,EAAuCD,CAAAA,CAAAA,EAAAA,CAAtBE,EAAsBF,CAAAA,CAAAA,EAAAA,CAGVG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAgB,EAAE,KAA/CC,EAA6BD,CAAAA,CAAAA,EAAAA,CAAjBE,EAAiBF,CAAAA,CAAAA,EAAAA,CACNG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAkB,OAAzCC,EAAuBD,CAAAA,CAAAA,EAAAA,CAAdE,EAAcF,CAAAA,CAAAA,EAAAA,CACQG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAkB,OAAjDC,EAA+BD,CAAAA,CAAAA,EAAAA,CAAlBE,EAAkBF,CAAAA,CAAAA,EAAAA,CACAG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,2BAAhDC,EAA+BD,CAAAA,CAAAA,EAAAA,CAAlBE,GAAkBF,CAAAA,CAAAA,EAAAA,CAGMG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAkB,OAAvDC,GAAqCD,EAAAA,CAAAA,EAAAA,CAArBE,GAAqBF,EAAAA,CAAAA,EAAAA,CACJG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAkB,OAAnDC,GAAiCD,EAAAA,CAAAA,EAAAA,CAAnBE,GAAmBF,EAAAA,CAAAA,EAAAA,CACAG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAsB,QAAtBA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAGxC,IAA0BC,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAA6D,SAAhFC,GAAmBD,EAAAA,CAAAA,EAAAA,CAAZE,GAAYF,EAAAA,CAAAA,EAAAA,CAGpBG,GAAY,SAACC,CAAI,CAAuBC,CAAI,EAChDH,GAAS,CAAEE,KAAAA,EAAMC,KAAAA,CAAK,GACtBC,WAAW,W,OAAMJ,GAAS,K,EAAO,IACnC,EAGMK,GAA0B,WAC9B,IAAMC,EAAM,IAAIC,KACVC,EAAOF,EAAI,WAAW,GACtBG,EAAQC,OAAOJ,EAAI,QAAQ,GAAK,GAAG,QAAQ,CAAC,EAAG,KAC/CK,EAAMD,OAAOJ,EAAI,OAAO,IAAI,QAAQ,CAAC,EAAG,KAC9C,MAAQ,GAAUG,MAAAA,CAARD,EAAK,KAAYG,MAAAA,CAATF,EAAM,KAAO,OAAJE,EAC7B,EAEMC,GAA0B,WAC9B,IAAMN,EAAM,IAAIC,KACVM,EAAQH,OAAOJ,EAAI,QAAQ,IAAI,QAAQ,CAAC,EAAG,KAC3CQ,EAAUJ,OAAOJ,EAAI,UAAU,IAAI,QAAQ,CAAC,EAAG,KACrD,MAAQ,GAAWQ,MAAAA,CAATD,EAAM,KAAW,OAARC,EACrB,EAGMC,GAAS,SAACC,CAAU,EACxB,GAAI,CAACA,EAAY,MAAO,GACxB,IAAMC,EAAQ,IAAIV,KACZW,EAAY,IAAIX,KAAKS,GACvBG,EAAMF,EAAM,WAAW,GAAKC,EAAU,WAAW,GAC/CE,EAAIH,EAAM,QAAQ,GAAKC,EAAU,QAAQ,GAI/C,MAHIE,CAAAA,EAAI,GAAMA,AAAM,IAANA,GAAWH,EAAM,OAAO,GAAKC,EAAU,OAAO,EAAC,GAC3DC,IAEKT,OAAOS,EAChB,EAGME,GAAe,SAACC,CAAM,EAC1B,GAAI,CAACA,EAAQ,MAAO,GACpB,IAAMC,EAAQD,EAAO,IAAI,GAAG,WAAW,SACvC,AAAIC,AAAU,MAAVA,GAAiBA,AAAU,SAAVA,EAAyB,OAC1CA,AAAU,MAAVA,GAAiBA,AAAU,WAAVA,EAA2B,SACzCD,CACT,EAGAE,AAAAA,GAAAA,EAAAA,SAAAA,AAAAA,EAAU,W,iBAMEC,EAEAC,EACAC,EAIAC,EAEAC,EAEFC,EAoBIC,EAQFC,EAEAC,EAGEC,EAGEC,EAgBJC,EAEAC,EAEEC,EASDC,E,iDA5EY,O,0BAHnBvD,EAAW,IAGQ,C,EAAMwD,MAAM,+B,QAC/B,GAAI,CAACf,AADCA,CAAAA,EAAa,UACH,EAAE,CAAE,MAAM,AAAIgB,MAAM,0BAChB,O,EAAMhB,EAAW,IAAI,G,QAKvB,OAJZE,EAAaD,AADbA,CAAAA,EAAc,UACW,IAAI,CAAC,MAAM,CAAC,IAAI,CAC/ChD,EAAmBgD,EAAY,IAAI,CAAC,IAAI,EAGtB,C,EAAMc,MAAO,8BAAwC,OAAXb,I,QAC5D,GAAI,CAACC,AADCA,CAAAA,EAAY,UACH,EAAE,CAAE,MAAM,AAAIa,MAAM,yBAChB,O,EAAMb,EAAU,IAAI,G,WAAjCC,EAAa,SAEfC,EAAiB,GACjBD,EAAW,UAAU,EACvBA,EAAW,UAAU,CAAC,OAAO,CAAC,SAACa,CAAI,EACjC,GAAIA,EAAK,OAAO,CAAE,CAChB,IAAqBC,EAAAA,EAAAA,EAAK,OAAO,CAAC,KAAK,CAAC,QAAjCC,EAAcD,CAAAA,CAAAA,EAAAA,CAATE,EAASF,CAAAA,CAAAA,EAAAA,AACjBC,CAAAA,GAAOC,GAAUD,CAAAA,AAAe,iBAAfA,EAAI,IAAI,IAAyBA,AAAe,cAAfA,EAAI,IAAI,EAAiB,GAC7Ed,CAAAA,EAAiBe,EAAM,IAAI,EAAC,CAEhC,CACF,GAGE,CAACf,GAAkBJ,EAAY,eAAe,EAAIA,EAAY,eAAe,CAAC,IAAI,EACpFI,CAAAA,EAAiBJ,EAAY,eAAe,CAAC,IAAI,AAAD,EAGlDtD,EAAgB0D,G,CAGZA,EAAAA,MAAAA,C,KACa,O,EAAMU,MAAO,gCAA8C,OAAfV,I,YACvDC,AADEA,CAAAA,EAAS,UACJ,EAAE,CAATA,MAAAA,C,KACc,O,EAAMA,EAAO,IAAI,G,QACjCxD,EAAiBuE,AADD,SACS,OAAO,EAAI,I,iBAKzB,O,EAAMN,MAAO,+BAAkC,OAAJhG,I,QAC1D,GAAI,CAACwF,AADCA,CAAAA,EAAS,UACH,EAAE,CAAE,MAAM,AAAIS,MAAM,kBAChB,O,EAAMT,EAAO,IAAI,G,YAE7BC,AAFEA,CAAAA,EAAU,UAEJ,WAAW,CAAnBA,MAAAA,C,MACiB,O,EAAMO,MAAO,+BAAkD,OAApBP,EAAQ,WAAW,G,aAC7EC,AADEA,CAAAA,EAAa,UACJ,EAAE,CAAbA,MAAAA,C,MACkB,O,EAAMA,EAAW,IAAI,G,gBAEzCnF,EAAeoF,AADTA,CAAAA,EAASY,AADK,SACO,MAAM,EAAI,CAAC,GAChB,OAAO,EAAId,EAAQ,QAAQ,EAAI,IACrD/E,EAAiBmE,GAAac,EAAO,MAAM,EAAI,KAC3CA,EAAO,SAAS,EAClB9E,EAAc0D,GAAOoB,EAAO,SAAS,G,eAGvCpF,EAAekF,EAAQ,QAAQ,EAAI,IACnC5E,EAAc0D,GAAOkB,EAAQ,WAAW,G,wCAG1ClF,EAAekF,EAAQ,QAAQ,EAAI,IACnC5E,EAAc0D,GAAOkB,EAAQ,WAAW,G,mBAI1B,O,EAAMO,MAAO,0CAAiD,OAAR7F,I,SACtE,GAAI,CAACyF,AADCA,CAAAA,EAAU,UACH,EAAE,CAAE,MAAM,AAAIK,MAAM,8BACX,O,EAAML,EAAQ,IAAI,G,eAAlCC,CAAAA,EAAgB,WACDA,EAAc,MAAM,CAAG,IAE1C7E,EAAY8E,AADNA,CAAAA,EAAeD,CAAa,CAAC,EAAE,AAAD,CACZ,CAAC,EAAE,EAAI,IAC/B1E,EAAc2E,CAAY,CAAC,EAAE,EAAI,KAInCxE,EAAYuC,MACZpC,EAAY2C,M,sBAGZoC,QAAQ,KAAK,CADNT,EAAAA,EAAAA,IAAAA,IAEPtC,GAAU,QAASsC,EAAI,OAAO,EAAI,gC,sBAElCvD,EAAW,I,wBAEf,IAGF,EAAG,CAACxC,EAAKG,EAAQ,EAGjB6E,AAAAA,GAAAA,EAAAA,SAAAA,AAAAA,EAAU,WACHjE,GAAaY,G,iBAKR8E,EAEAC,EAGFC,EASAC,E,iDAdc,O,wBAAA,C,EAAMZ,MAAO,+CAA0DrE,MAAAA,CAAZZ,EAAS,KAAgB,OAAbY,I,QACzF,GAAI,CAAC8E,AADCA,CAAAA,EAAY,UACH,EAAE,CAAE,MAAM,AAAIR,MAAM,6BAChB,O,EAAMQ,EAAU,IAAI,G,WAAjCC,EAAa,SAIfxG,AAAY,QAAZA,EAAAA,MAAAA,C,KACU,O,EAAM8F,MAAO,6CAAsDjF,MAAAA,CAAVX,EAAO,KAAY,OAATW,I,sBAA/E4F,EAAY,S,gBACHzG,AAAY,WAAZA,EAAAA,MAAAA,C,KACG,O,EAAM8F,MAAO,gDAAyDjF,MAAAA,CAAVX,EAAO,KAAY,OAATW,I,WACzEb,AAAY,SAAZA,EAAAA,MAAAA,C,KACG,O,EAAM8F,MAAO,8CAAuDjF,MAAAA,CAAVX,EAAO,KAAY,OAATW,I,QAAhF4F,EAAY,S,oBAGVC,EAAAA,EAAAA,C,CACAD,CAAAA,GAAaA,EAAU,EAAC,EAAxBA,MAAAA,C,MACY,O,EAAMA,EAAU,IAAI,G,QAAlCC,EAAc,S,0BAsChBvE,EAlCsBqE,AAAAA,CAAAA,GAAc,EAAC,EAAG,GAAG,CAAC,SAACG,CAAC,EAC5C,IAAMC,EAAUD,CAAC,CAAC,EAAE,CACdE,EAAYF,CAAC,CAAC,EAAE,CAChBG,EAAkBH,CAAC,CAAC,EAAE,CAExBI,EAAoB,EAAE,CAC1B,GAAI,CACED,GAAmB,AAA2B,UAA3B,OAAOA,GAC5BC,CAAAA,EAAUC,KAAK,KAAK,CAACF,EAAe,CAExC,CAAE,MAAOG,EAAG,CACVF,EAAU,EAAE,AACd,CAGA,IAAMG,EAAeR,EAAY,IAAI,CAAC,SAACS,CAAE,E,OAAUA,CAAE,CAAC,EAAE,GAAKP,C,GACvDQ,EAAeF,GAAgBA,AAAoB,OAApBA,CAAY,CAAC,EAAE,CAAYA,CAAY,CAAC,EAAE,CAAIH,EAAQ,MAAM,CAAG,EAAIA,CAAO,CAAC,EAAE,CAAG,GAMrH,MAAO,CACL,GAAIH,EACJ,KAAMC,EACNE,QAAAA,EACA,MAAOK,EACP,MAVmBF,GAAgBA,CAAY,CAAC,EAAE,CAAGA,CAAY,CAAC,EAAE,CAAG,GAWvE,KAVkBA,GAAgBA,CAAY,CAAC,EAAE,CAAGA,CAAY,CAAC,EAAE,CAAG,GAWtE,OAVoBA,GAAgBA,CAAY,CAAC,EAAE,CAAGA,CAAY,CAAC,EAAE,CAAG,GAWxEG,QAVcH,EAAeA,CAAY,CAAC,EAAE,CAAG,CAWjD,CACF,I,sBAKAZ,QAAQ,KAAK,CADNT,EAAAA,IAAAA,IAEPtC,GAAU,QAAS,iC,2BAEvB,IAGF,EAAG,CAAC1C,EAAUY,EAAczB,EAASE,EAAO,EAoB5C,IAAMoH,GAAwB,SAACV,CAAO,CAAUW,CAAK,CAAUpB,CAAK,EAClEhE,EAAcqF,SAAAA,CAAI,E,OAChBA,EAAK,GAAG,CAACb,SAAAA,CAAC,M,WAAKA,EAAE,EAAE,GAAKC,G,EAAU,A,mUAAA,GAAKD,G,WAAG,KAACY,EAAQpB,I,+UAAUQ,C,IAEjE,EA6SA,OACE,kBAAC,OAAI,UAAWc,EAAAA,CAAAA,CAAAA,WAAkB,A,EAC/BpE,IACC,kBAAC,OAAI,UAAY,GAAkBA,MAAAA,CAAhBoE,EAAAA,CAAAA,CAAAA,KAAY,CAAC,KAAsE,OAAnEpE,AAAe,YAAfA,GAAM,IAAI,CAAiBoE,EAAAA,CAAAA,CAAAA,YAAmB,CAAGA,EAAAA,CAAAA,CAAAA,UAAiB,C,EAClGpE,GAAM,IAAI,EAIdb,GACC,kBAAC,OAAI,UAAWiF,EAAAA,CAAAA,CAAAA,OAAc,A,EAC5B,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,OAAc,A,GAC9B,kBAAC,SAAG9E,IAIPN,EACC,kBAAC,OAAI,UAAWoF,EAAAA,CAAAA,CAAAA,IAAW,A,EACzB,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,UAAiB,CAAE,MAAO,CAAE,QAAS,MAAO,C,EAC1D,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,OAAc,CAAE,MAAO,CAAE,OAAQ,QAAS,C,GAC1D,kBAAC,KAAE,MAAO,CAAE,UAAW,OAAQ,MAAO,mBAAoB,C,EAAG,6BAIjE,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,IAAW,A,EACzB,kBAAC,OAAI,MAAO,CAAE,QAAS,OAAQ,eAAgB,gBAAiB,WAAY,SAAU,aAAc,OAAQ,SAAU,OAAQ,IAAK,MAAO,C,EACxI,kBAAC,MAAG,UAAWA,EAAAA,CAAAA,CAAAA,QAAe,CAAE,MAAO,CAAE,OAAQ,CAAE,C,EAAG,sBACtD,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,iBAAwB,CAAE,MAAO,CAAE,OAAQ,CAAE,C,EAC3D,kBAAC,YAAK,aACN,kBAAC,QAAK,MAAO,CAAE,WAAY,IAAK,MAAO,uBAAwB,WAAY,QAAS,C,EAAI7F,KAG1F,kBAAC,OAAI,UAAW6F,EAAAA,CAAAA,CAAAA,GAAU,A,EACxB,kBAAC,OAAI,UAAY,GAAgBA,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,C,EACzC,kBAAC,aAAM,aACP,kBAAC,SAAM,KAAK,OAAO,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAAE,MAAOrH,EAAa,W,IAExE,kBAAC,OAAI,UAAY,GAAgBqH,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,C,EACzC,kBAAC,aAAM,WACP,kBAAC,SAAM,KAAK,OAAO,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAAE,MAAOzH,EAAS,W,IAEpE,kBAAC,OAAI,UAAY,GAAgByH,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,C,EACzC,kBAAC,aAAM,UACP,kBAAC,SAAM,KAAK,OAAO,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAAE,MAAO3H,EAAK,W,IAEhE,kBAAC,OAAI,UAAY,GAAgB2H,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,C,EACzC,kBAAC,aAAM,OACP,kBAAC,SAAM,KAAK,OAAO,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAAE,MAAO/G,EAAY,W,IAEvE,kBAAC,OAAI,UAAY,GAAgB+G,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,C,EACzC,kBAAC,aAAM,UACP,kBAAC,SAAM,KAAK,OAAO,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAAE,MAAOlH,EAAe,W,KAI5E,kBAAC,MAAG,MAAO,CAAE,OAAQ,WAAY,UAAW,+BAAgC,C,GAE5E,kBAAC,OAAI,UAAWkH,EAAAA,CAAAA,CAAAA,GAAU,A,EACxB,kBAAC,OAAI,UAAY,GAAgBA,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,EAAI,MAAO,CAAE,SAAU,CAAE,C,EAClE,kBAAC,aAAM,aACP,kBAAC,SAAM,KAAK,OAAO,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAAE,MAAO5G,EAAU,W,IAErE,kBAAC,OAAI,UAAY,GAAgB4G,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,EAAI,MAAO,CAAE,SAAU,CAAE,C,EAClE,kBAAC,aAAM,UACP,kBAAC,YAAS,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAAE,KAAM,EAAG,MAAOzG,EAAY,W,IAEvE,kBAAC,OAAI,UAAY,GAAgByG,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,C,EACzC,kBAAC,aAAM,QACP,kBAAC,SACC,KAAK,OACL,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAC7B,MAAOtG,EACPuG,SAAU,SAACT,CAAC,E,OAAK7F,EAAY6F,EAAE,MAAM,CAAC,KAAK,C,KAG/C,kBAAC,OAAI,UAAY,GAAgBQ,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,C,EACzC,kBAAC,aAAM,QACP,kBAAC,SACC,KAAK,OACL,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAC7B,MAAOnG,EACPoG,SAAU,SAACT,CAAC,E,OAAK1F,EAAY0F,EAAE,MAAM,CAAC,KAAK,C,MAIjD,kBAAC,MAAG,MAAO,CAAE,OAAQ,SAAU,UAAW,+BAAgC,C,GAC1E,kBAAC,MAAG,MAAO,CAAE,SAAU,SAAU,WAAY,IAAK,aAAc,OAAQ,MAAO,sBAAuB,C,EAAG,mBAGzG,kBAAC,OAAI,UAAWQ,EAAAA,CAAAA,CAAAA,sBAA6B,A,EAC3C,kBAAC,SAAM,UAAY,GAAkBA,MAAAA,CAAhBA,EAAAA,CAAAA,CAAAA,KAAY,CAAC,KAA2BA,MAAAA,CAAxBA,EAAAA,CAAAA,CAAAA,aAAoB,CAAC,KAAuB,OAApBA,EAAAA,CAAAA,CAAAA,YAAmB,C,EAC9E,kBAAC,aACC,kBAAC,UACC,kBAAC,UAAG,MACJ,kBAAC,UAAG,kBACJ,kBAAC,MAAG,MAAO,CAAE,MAAO,OAAQ,C,EAAG,SAC/B,kBAAC,UAAG,SACJ,kBAAC,UAAG,QACJ,kBAAC,UAAG,YAGR,kBAAC,aACEvF,EAAW,MAAM,CAAG,EACnBA,EAAW,GAAG,CAAC,SAACyE,CAAC,CAAEgB,CAAG,E,OACpB,kBAAC,MAAG,IAAKhB,EAAE,EAAE,A,EACX,kBAAC,UAAIgB,EAAM,GACX,kBAAC,MAAG,MAAO,CAAE,WAAY,GAAI,C,EAAIhB,EAAE,IAAI,EACvC,kBAAC,UACEA,EAAE,OAAO,CAAC,MAAM,CAAG,EAClB,kBAAC,UACC,UAAWc,EAAAA,CAAAA,CAAAA,WAAkB,CAC7B,MAAOd,EAAE,KAAK,CACde,SAAU,SAACT,CAAC,E,OAAKK,GAAsBX,EAAE,EAAE,CAAE,QAASM,EAAE,MAAM,CAAC,KAAK,C,EACpE,MAAO,CAAE,MAAO,MAAO,C,EAEtBN,EAAE,OAAO,CAAC,GAAG,CAAC,SAACiB,CAAG,E,OACjB,kBAAC,UAAO,IAAKA,EAAK,MAAOA,C,EACtBA,E,IAKP,kBAAC,SACC,KAAK,OACL,UAAWH,EAAAA,CAAAA,CAAAA,WAAkB,CAC7B,MAAOd,EAAE,KAAK,CACde,SAAU,SAACT,CAAC,E,OAAKK,GAAsBX,EAAE,EAAE,CAAE,QAASM,EAAE,MAAM,CAAC,KAAK,C,EACpE,MAAO,CAAE,MAAO,MAAO,C,IAI7B,kBAAC,UACC,kBAAC,SACC,KAAK,OACL,UAAWQ,EAAAA,CAAAA,CAAAA,WAAkB,CAC7B,MAAOd,EAAE,KAAK,CACde,SAAU,SAACT,CAAC,E,OAAKK,GAAsBX,EAAE,EAAE,CAAE,QAASM,EAAE,MAAM,CAAC,KAAK,C,KAGxE,kBAAC,UACC,kBAAC,SACC,KAAK,OACL,UAAWQ,EAAAA,CAAAA,CAAAA,WAAkB,CAC7B,MAAOd,EAAE,IAAI,CACbe,SAAU,SAACT,CAAC,E,OAAKK,GAAsBX,EAAE,EAAE,CAAE,OAAQM,EAAE,MAAM,CAAC,KAAK,C,KAGvE,kBAAC,UACC,kBAAC,SACC,KAAK,OACL,UAAWQ,EAAAA,CAAAA,CAAAA,WAAkB,CAC7B,MAAOd,EAAE,MAAM,CACfe,SAAU,SAACT,CAAC,E,OAAKK,GAAsBX,EAAE,EAAE,CAAE,SAAUM,EAAE,MAAM,CAAC,KAAK,C,QAM7E,kBAAC,UACC,kBAAC,MAAG,QAAS,EAAG,UAAWQ,EAAAA,CAAAA,CAAAA,UAAiB,CAAE,MAAO,CAAE,MAAO,mBAAoB,C,EAAG,4CAS/F,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,GAAU,CAAE,MAAO,CAAE,UAAW,OAAQ,WAAY,QAAS,C,EAC3E,kBAAC,OAAI,UAAY,GAAgBA,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,EAAI,MAAO,CAAE,SAAU,CAAE,C,EAClE,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,iBAAwB,CAAEI,QAAS,W,OAAM9E,GAAkByE,SAAAA,CAAI,E,MAAI,CAACA,C,KAClF,kBAAC,SACC,KAAK,WACL,QAAS1E,GACT4E,SAAU,WAAO,C,GAEnB,kBAAC,YAAK,sBAGV,kBAAC,OAAI,UAAY,GAAgBD,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,EAAI,MAAO,CAAE,SAAU,EAAG,WAAY,UAAW,C,EAC1F,kBAAC,UACC,KAAK,SACL,UAAY,GAAgBA,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAqB,OAAlBA,EAAAA,CAAAA,CAAAA,UAAiB,EAC7C,QAhea,W,wBAgBnBK,EAIAC,EAEAC,EAGAC,EAYFC,EAWEC,EAMAC,EACAC,EACAC,EAGAC,EAWAC,EAGAC,EAUAC,EAaAC,EAWAC,EAGAC,EAcAC,EAIAC,EASAC,EAGAC,EACAC,EASFC,EACAC,EAeEC,EACAC,EAGAC,EAKAC,EAGAC,EAUFC,EAoBG7D,E,iDA7MT,GADiB3D,EAAW,IAAI,CAACyE,SAAAA,CAAC,E,MAAI3C,AAA2B,KAA3BA,OAAO2C,EAAE,KAAK,EAAE,IAAI,E,GAGxD,OADApD,GAAU,QAAS,8DACnB,C,oBAeoB,O,0BAXpBd,EAAe,IACfG,GAAe,8BAKfA,GAAe,8BACTkF,EAAyB,GAAW,OAATjH,EAAS,SAItB,C,EAAMiF,MADT,kDAA2F,OAA1C6D,mBAAmB7B,K,QAErF,GAAI,CAACC,AADCA,CAAAA,EAAc,UACH,EAAE,CAAE,MAAM,AAAIhC,MAAO,wBAA6C,OAAtB+B,EAAsB,iGAC9D,O,EAAMC,EAAY,IAAI,G,QAGd,OAHvBC,EAAe,SAGQ,C,EAAM,IAAI4B,QAAQ,SAACC,CAAO,CAAEC,CAAM,EAC7D,IAAMC,EAAS,IAAIC,UACnBD,CAAAA,EAAO,SAAS,CAAG,WAEjBF,EAAQI,AADIF,EAAO,MAAM,CACb,OAAO,CAAC,mBAAoB,IAC1C,EACAA,EAAO,OAAO,CAAGD,EACjBC,EAAO,aAAa,CAAC/B,EACvB,G,QARMC,EAAuB,SAW7BrF,GAAe,oCACXsF,EAAc,G,qBA7DiBgC,EA+DnB,O,sBAAA,C,GA/DmBA,EA+DW,oB,iBA9D1CD,EAEAE,EAEEC,E,iDAJI,O,EAAMtE,MAAO,uDAA+D,OAAToE,EAAS,0B,QACxF,GAAI,CAACD,AADCA,CAAAA,EAAM,UACH,EAAE,CAAE,MAAM,AAAIlE,MAAO,qBAA6B,OAATmE,EAAS,eAC9C,O,EAAMD,EAAI,IAAI,G,QAC3B,GAAIE,AADEA,CAAAA,EAAO,UACJ,OAAO,EAAIA,EAAK,OAAO,CAAC,MAAM,CAAG,EAAG,CAE3C,GAAIC,AADEA,CAAAA,EAAOD,EAAK,OAAO,CAAC,EAAE,AAAD,EAClB,IAAI,EAAIC,EAAK,IAAI,CAAC,UAAU,CAAC,QACpC,MAAO,C,EAAAA,EAAK,IAAI,C,CAElB,GAAIA,EAAK,IAAI,EAAIA,EAAK,IAAI,CAAC,UAAU,CAAC,QACpC,MAAO,C,EAAAA,EAAK,IAAI,C,CAElB,MAAO,C,EAAAA,EAAK,IAAI,GAAKF,EAAYE,EAAK,IAAI,EAAI,GAAOA,EAAK,IAAI,EAAI,G,AACpE,CACA,MAAO,C,EAAA,G,GACT,M,eAgDMlC,EAAc,S,oBAEd5B,QAAQ,IAAI,CAAC,kEADNW,EAAAA,IAAAA,I,aAQS,OALd,AAACiB,GACHA,CAAAA,EAAc,wBAAuB,EAIrB,C,EAAMpC,MAAO,GAAc,OAAZoC,EAAY,iBAAgB,CAC3D,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAMlB,KAAK,SAAS,CAAC,CAAE,KAAO,GAAW,OAATnG,EAAS,UAAS,EACpD,G,QACA,GAAI,CAACsH,AALCA,CAAAA,EAAY,UAKH,EAAE,CAAE,MAAM,AAAIpC,MAAM,8CAChB,O,EAAMoC,EAAU,IAAI,G,SAKtB,OAJXE,EAAgBD,AADhBA,CAAAA,EAAa,UACc,OAAO,CAClCE,EAAWF,EAAW,GAAG,CAGd,C,EAAMtC,MAAO,GAAc,OAAZoC,EAAY,gBAAe,CACzD,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAMlB,KAAK,SAAS,CAAC,CACnB,QAASiB,EACT,OAAQ,CAAE,QAASI,CAAc,EACjC,KAAMxH,CACR,EACF,G,SACA,GAAI,CAAC0H,AATCA,CAAAA,EAAW,UASH,EAAE,CAAE,MAAM,AAAIxC,MAAM,sCAChB,O,EAAMwC,EAAS,IAAI,G,SA2Bb,OA1BlBC,EAAe6B,AADH,SACa,OAAO,CAGhC5B,EAAmC,CAAC,EAC1CvG,EAAW,OAAO,CAACyE,SAAAA,CAAC,EAClB8B,CAAQ,CAAC9B,EAAE,IAAI,CAAC,CAAG,CACjB,MAAOA,EAAE,KAAK,CACd,MAAOA,EAAE,KAAK,CACd,OAAQA,EAAE,MAAM,CAChB,KAAMA,EAAE,IAAI,AACd,CACF,GAEM+B,EAAiB,CACrB,SAAU9G,EACV,YAAaxB,EACb,IAAKN,EACL,QAAS,GACT,SAAUe,EACV,IAAKH,EACL,YAAc,GAAcY,MAAAA,CAAZH,EAAS,KAAY,OAATG,GAC5B,UAAY,GAA+B4C,MAAAA,CAA7BP,KAA0B,KAA6B,OAA1BO,MAC3C,WAAYuE,CACd,EAGwB,C,EAAM3C,MAAO,GAAc,OAAZoC,EAAY,cAAa,CAC9D,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAMlB,KAAK,SAAS,CAAC,CACnB,SAAUA,KAAK,SAAS,CAAC0B,GACzB,OAAQ,CAAE,QAASL,CAAc,EACjC,KAAO,GAAW,OAATxH,EAAS,QACpB,EACF,G,SACA,GAAI,CAAC8H,AATCA,CAAAA,EAAkB,UASH,EAAE,CAAE,MAAM,AAAI5C,MAAM,8CACd,O,EAAM4C,EAAgB,IAAI,G,SAIzB,OAHtBC,EAAc0B,AADO,SACY,OAAO,CAGlB,C,EAAMxE,MAAO,GAAc,OAAZoC,EAAY,mBAAkB,CACvE,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAMlB,KAAK,SAAS,CAAC,CACnB,KAAM,CAAE,QAAS4B,CAAY,EAC7B,KAAM,CAAE,qBAAsBJ,CAAa,EAC3C,OAAQ,aACR,OAAQ,CAAE,QAASH,CAAc,EACjC,KAAO,GAAW,OAATxH,EAAS,aAClB,OAAQ,MACV,EACF,G,SACA,GAAI,CAACgI,AAZCA,CAAAA,EAAsB,UAYH,EAAE,CAAE,MAAM,AAAI9C,MAAM,0DACd,O,EAAM8C,EAAoB,IAAI,G,SAK3C,OAJZC,EAAkByB,AADO,SACgB,OAAO,CAGtD3H,GAAe,uBACG,C,EAAMkD,MAAO,GAAc,OAAZoC,EAAY,cAAa,CACxD,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAMlB,KAAK,SAAS,CAAC,CACnB,SAAU,CAAE,QAAS8B,CAAgB,EACrC,OAAQ,MACV,EACF,G,SACA,GAAI,CAACC,AARCA,CAAAA,EAAY,UAQH,EAAE,CAAE,MAAM,AAAIhD,MAAM,iDACV,O,EAAMgD,EAAU,IAAI,G,YAAvCC,EAAmB,SAGnBC,EAAUvJ,OAAO,GAAG,CAAC,eAAe,CAACsJ,GAE3CE,AADMA,CAAAA,EAAesB,SAAS,aAAa,CAAC,IAAG,EAClC,IAAI,CAAGvB,EACpBC,EAAa,QAAQ,CAAI,GAAW,OAATrI,EAAS,gBACpC2J,SAAS,IAAI,CAAC,WAAW,CAACtB,GAC1BA,EAAa,KAAK,GAClBsB,SAAS,IAAI,CAAC,WAAW,CAACtB,GAG1BtG,GAAe,iCACXuG,EAAmB,GAEnBnJ,AAAY,QAAZA,EAAAA,MAAAA,C,MACc,O,EAAM8F,MAAO,+CAAqD,OAAP5F,I,wBAA3EkJ,EAAgB,S,kBACPpJ,AAAY,WAAZA,EAAAA,MAAAA,C,MACO,O,EAAM8F,MAAO,kDAAwD,OAAP5F,I,YACrEF,AAAY,SAAZA,EAAAA,MAAAA,C,MACO,O,EAAM8F,MAAO,gDAAsD,OAAP5F,I,SAA5EkJ,EAAgB,S,uBAGdA,CAAAA,GAAiBA,EAAc,EAAC,EAAhCA,MAAAA,C,MACiB,O,EAAMA,EAAc,IAAI,G,SAC3CD,EAAmBsB,AADA,SACW,aAAa,EAAI,G,mBAQzB,OAJlBpB,EAAW,GAAWxI,MAAAA,CAATf,EAAI,OAAmBqJ,MAAAA,CAAdtI,EAAS,OAAsB,OAAjBsI,GAE1CG,AADMA,CAAAA,EAAqB,IAAIoB,QAAS,EACrB,MAAM,CAAC,OAAQ1B,EAAmB,GAAU,OAARK,EAAQ,UAEvC,C,EAAMvD,MAAM,uCAAwC,CAC1E,OAAQ,OACR,KAAMwD,CACR,G,SACA,GAAI,CAACC,AAJCA,CAAAA,EAAkB,UAIH,EAAE,CAAE,MAAM,AAAIxD,MAAM,mDACd,O,EAAMwD,EAAgB,IAAI,G,SAiB5B,OAjBnBC,EAAqB,SAGrBC,EAAe,CACnB,eAAgBzJ,AAAY,QAAZA,EAAoBE,EAAS,KAC7C,qBAAsBF,AAAY,WAAZA,EAAuBE,EAAS,KACtD,mBAAoBF,AAAY,SAAZA,EAAqBE,EAAS,KAClD,WAAa,GAAU,OAARmJ,EAAQ,SACvB,KAAMG,EAAmB,IAAI,CAC7B,OAAQ,WACR,IAAKzH,CACP,EAEI2H,EAAa,6CACb1J,AAAY,WAAZA,GAAsB0J,CAAAA,EAAa,kDAAiD,EACpF1J,AAAY,SAAZA,GAAoB0J,CAAAA,EAAa,gDAA+C,EAE3D,C,EAAM5D,MAAM4D,EAAY,CAC/C,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAM1C,KAAK,SAAS,CAACyC,EACvB,G,SACA,GAAI,CAACkB,AALoB,SAKH,EAAE,CAAE,MAAM,AAAI5E,MAAM,mDAI1C,OADAnD,GAAe,kBACf,C,EAAMkD,MAAO,GAA+BwC,MAAAA,CAA7BJ,EAAY,mBAA0B,OAATI,EAAS,MAAK,CACxD,OAAQ,QACV,G,gBAFA,SAIApF,GAAgB,IAChBK,GAAU,UAAW,gD,sBAGrB+C,QAAQ,KAAK,CADNT,EAAAA,EAAAA,IAAAA,IAEPtC,GAAU,QAASsC,EAAI,OAAO,EAAI,2C,sBAElCpD,EAAe,I,wBAEnB,I,GA2Qe,qBAML,kBAAC,MAAG,MAAO,CAAE,OAAQ,WAAY,UAAW,+BAAgC,C,GAE5E,kBAAC,OAAI,UAAWgF,EAAAA,CAAAA,CAAAA,SAAgB,A,EAC9B,kBAAC,UACC,KAAK,SACL,UAAY,GAAgBA,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAwBA,MAAAA,CAArBA,EAAAA,CAAAA,CAAAA,UAAiB,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,EAC3D,QApRK,W,wBAgBVmD,EAAAA,EAAAA,EAAAA,EAAAA,EAAMjE,EACHkE,EAUFC,EAWEC,EAgBJC,EAmBGC,E,iDAxET,GAAI,CAAChI,GAEH,OADAM,GAAU,QAAS,+CACnB,C,GAGF,GAAI,CAACpC,GAAY,CAACG,EAEhB,OADAiC,GAAU,QAAS,6CACnB,C,8CAIAd,EAAe,IACfG,GAAe,8BAGVgI,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,O,wCAAAA,EAAW1I,CAAU,CAAVA,OAAAA,QAAAA,CAAAA,G,oBAAX0I,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,CAAAA,MAAAA,C,KAsBkB,OArBfC,EAAmB,CACvB,GAAIlE,AAFGA,CAAAA,EAANiE,EAAAA,KAAAA,AAAAA,EAEK,OAAO,CACb,YAAajE,EAAE,EAAE,CACjB,MAAOA,EAAE,KAAK,CACd,IAAK5E,EACL,MAAO4E,EAAE,KAAK,CACd,KAAMA,EAAE,IAAI,CACZ,OAAQA,EAAE,MAAM,AAClB,EAEImE,EAAe,mDACf9K,AAAY,QAAZA,EACF6K,EAAY,cAAc,CAAG3K,EACpBF,AAAY,WAAZA,GACT6K,EAAY,oBAAoB,CAAG3K,EACnC4K,EAAe,0DACM,SAAZ9K,IACT6K,EAAY,kBAAkB,CAAG3K,EACjC4K,EAAe,wDAGI,C,EAAMhF,MAAMgF,EAAc,CAC7C,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAM9D,KAAK,SAAS,CAAC6D,EACvB,G,QACA,GAAI,CAACE,AALgB,SAKH,EAAE,CAAE,MAAM,AAAIhF,MAAO,4BAAkC,OAAPY,EAAE,IAAI,E,yBA3BrEiE,EAAAA,G,kDAAAA,EAAAA,GAAAA,EAAAA,E,iBAAAA,GAAAA,AAAAA,MAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,E,YAAAA,E,MAAAA,C,kBA6CiB,OAdtBhI,GAAe,iCAOXoI,EAAgB,sDAChBhL,AAAY,WAAZA,EACFgL,EAAgB,4DACPhL,AAAY,SAAZA,GACTgL,CAAAA,EAAgB,yDAAwD,EAGpD,C,EAAMlF,MAAMkF,EAAe,CAC/C,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAMhE,KAAK,SAAS,CAfA,CACpB,GAAI9G,EACJ,OAHkB4C,GAAiB,gBAAkB,UAIvD,EAaA,G,SACA,GAAI,CAACoI,AALiB,SAKH,EAAE,CAAE,MAAM,AAAInF,MAAM,oC,OAEvCxC,GAAU,UAAW,4BACrBG,WAAW,WACTlE,EAAWE,OAAO,iBAAiB,GAAK,aAC1C,EAAG,M,sBAGH4G,QAAQ,KAAK,CADN2E,EAAAA,EAAAA,IAAAA,IAEP1H,GAAU,QAAS0H,EAAI,OAAO,EAAI,gC,sBAElCxI,EAAe,I,wBAEnB,I,EAsMc,MAAO,CAAE,MAAO,QAAS,OAAQ,MAAO,C,EACzC,QAGD,kBAAC,UACC,KAAK,SACL,UAAY,GAAgBgF,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAoB,OAAjBA,EAAAA,CAAAA,CAAAA,SAAgB,EAC5CI,QAAS,W,OAAMrI,EAAWE,OAAO,iBAAiB,GAAK,a,EACvD,MAAO,CAAE,MAAO,QAAS,OAAQ,MAAO,C,EACzC,UAQf,C"}
1
+ {"version":3,"file":"277.js","sources":["webpack://@sasindi/addresults/./src/add-results-form.component.tsx"],"names":["navigateTo","url","window","PopStateEvent","useTranslation","t","phn","localStorage","section","barcode","serial","_useState","patientName","setPatientName","_useState1","patientGender","setPatientGender","_useState2","patientAge","setPatientAge","_useState3","testName","setTestName","_useState4","testRemark","setTestRemark","_useState5","testDate","setTestDate","_useState6","testTime","setTestTime","_useState7","isMultiTest","setIsMultiTest","_useState8","orderedTests","setOrderedTests","_useState9","locationUuid","setLocationUuid","_useState10","instituteName","setInstituteName","_useState11","currentUserUuid","setCurrentUserUuid","_useState12","parameters","setParameters","_useState13","loading","setLoading","_useState14","showSpinner","setShowSpinner","_useState15","spinnerText","setSpinnerText","_useState16","sendToApproval","setSendToApproval","_useState17","flagGenerate","setFlagGenerate","_useState18","_useState19","toast","setToast","showToast","type","text","setTimeout","getCurrentDateFormatted","now","Date","year","month","String","day","getCurrentTimeFormatted","hours","minutes","getAge","dateString","today","birthDate","age","m","formatGender","gender","upper","useEffect","sessionRes","sessionData","personUuid","personRes","personData","initialLocUuid","locRes","phnRes","phnData","patientRes","person","testRes","testDataArray","testItems","err","fetch","Error","attr","_attr_display_split","key","value","locData","patientData","item","rawTestName","rowId","remark","parts","s","Boolean","p","pIdx","console","isMultiple","valuesRes","mainTest","savedValues","singleTestName","paramsRes","encodeURIComponent","matchedSaved","sv","initialValue","initialUnits","initialFlag","initialRanges","savedId","paramsData","paramId","paramName","paramOptionsStr","defaultUnit","defaultRange","options","JSON","e","getConceptReferenceTerm","codeName","res","data","term","a","handleParameterChange","field","prev","styles","onChange","idx","opt","onClick","finalTemplateFileName","templateRes","templateBlob","base64String","jsReportUrl","folderRes","folderData","folderShortId","folderId","assetRes","assetShortId","paramMap","parametersList","reportJsonData","jsreportDataRes","dataShortId","jsreportTemplateRes","templateShortId","renderRes","renderedDocxBlob","labEncounterUuid","labDetailsRes","docName","docToPdfUrl","finalBlob","finalDocName","isPdf","convertFormData","pdfRes","pdfBlob","pdfUrl","docxUrl","downloadLink","uploadFormData","serverUploadRes","serverUploadResult","rawDocRecord","saveDocUrl","err1","Promise","resolve","reject","reader","FileReader","assetData","itemCode","itemName","paramObj","jsreportDataResult","jsreportTemplateResult","labDetails","e1","FormData","document","saveDocRecordRes","_iteratorError","paramRecord","saveParamUrl","saveParamRes","saveStatusUrl","saveStatusRes"],"mappings":"suFAIA,IAAMA,EAAa,SAACC,CAAG,EACrBC,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAG,GAAID,GACjCC,OAAO,aAAa,CAAC,IAAIC,cAAc,YACzC,EAg6BA,MA95BiC,WACjBC,AAAAA,GAAAA,EAAAA,cAAAA,AAAAA,IAANC,CAAC,CAGT,IAAMC,EAAMC,aAAa,OAAO,CAAC,UAAY,GACvCC,EAAUD,aAAa,OAAO,CAAC,YAAc,GAC7CE,EAAUF,aAAa,OAAO,CAAC,YAAc,GAC7CG,EAASH,aAAa,OAAO,CAAC,OAAS,GAGPI,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAAhDC,EAA+BD,CAAAA,CAAAA,EAAAA,CAAlBE,EAAkBF,CAAAA,CAAAA,EAAAA,CACIG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAApDC,EAAmCD,CAAAA,CAAAA,EAAAA,CAApBE,EAAoBF,CAAAA,CAAAA,EAAAA,CACNG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA9CC,EAA6BD,CAAAA,CAAAA,EAAAA,CAAjBE,EAAiBF,CAAAA,CAAAA,EAAAA,CACJG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA1CC,EAAyBD,CAAAA,CAAAA,EAAAA,CAAfE,EAAeF,CAAAA,CAAAA,EAAAA,CACIG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA9CC,EAA6BD,CAAAA,CAAAA,EAAAA,CAAjBE,EAAiBF,CAAAA,CAAAA,EAAAA,CACJG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA1CC,EAAyBD,CAAAA,CAAAA,EAAAA,CAAfE,EAAeF,CAAAA,CAAAA,EAAAA,CACAG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAA1CC,EAAyBD,CAAAA,CAAAA,EAAAA,CAAfE,EAAeF,CAAAA,CAAAA,EAAAA,CACMG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAkB,OAAjDC,EAA+BD,CAAAA,CAAAA,EAAAA,CAAlBE,EAAkBF,CAAAA,CAAAA,EAAAA,CACEG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAgB,EAAE,KAAnDC,EAAiCD,CAAAA,CAAAA,EAAAA,CAAnBE,EAAmBF,CAAAA,CAAAA,EAAAA,CAGAG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAAlDC,EAAiCD,CAAAA,CAAAA,EAAAA,CAAnBE,EAAmBF,CAAAA,CAAAA,EAAAA,CACEG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAApDC,EAAmCD,CAAAA,CAAAA,EAAAA,CAApBE,EAAoBF,CAAAA,CAAAA,EAAAA,CACIG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,OAAxDC,EAAuCD,CAAAA,CAAAA,EAAAA,CAAtBE,EAAsBF,CAAAA,CAAAA,EAAAA,CAGVG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAgB,EAAE,KAA/CC,EAA6BD,CAAAA,CAAAA,EAAAA,CAAjBE,EAAiBF,CAAAA,CAAAA,EAAAA,CACNG,EAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAkB,OAAzCC,EAAuBD,CAAAA,CAAAA,EAAAA,CAAdE,GAAcF,CAAAA,CAAAA,EAAAA,CACQG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAkB,OAAjDC,GAA+BD,EAAAA,CAAAA,EAAAA,CAAlBE,GAAkBF,EAAAA,CAAAA,EAAAA,CACAG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAiB,2BAAhDC,GAA+BD,EAAAA,CAAAA,EAAAA,CAAlBE,GAAkBF,EAAAA,CAAAA,EAAAA,CAGMG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAkB,OAAvDC,GAAqCD,EAAAA,CAAAA,EAAAA,CAArBE,GAAqBF,EAAAA,CAAAA,EAAAA,CACJG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAkB,OAAnDC,GAAiCD,EAAAA,CAAAA,EAAAA,CAAnBE,GAAmBF,EAAAA,CAAAA,EAAAA,CACAG,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAAsB,QAAtBA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAGxC,IAA0BC,GAAAA,EAAAA,AAAAA,GAAAA,EAAAA,QAAAA,AAAAA,EAA6D,SAAhFC,GAAmBD,EAAAA,CAAAA,EAAAA,CAAZE,GAAYF,EAAAA,CAAAA,EAAAA,CAGpBG,GAAY,SAACC,CAAI,CAAuBC,CAAI,EAChDH,GAAS,CAAEE,KAAAA,EAAMC,KAAAA,CAAK,GACtBC,WAAW,W,OAAMJ,GAAS,K,EAAO,IACnC,EAGMK,GAA0B,WAC9B,IAAMC,EAAM,IAAIC,KACVC,EAAOF,EAAI,WAAW,GACtBG,EAAQC,OAAOJ,EAAI,QAAQ,GAAK,GAAG,QAAQ,CAAC,EAAG,KAC/CK,EAAMD,OAAOJ,EAAI,OAAO,IAAI,QAAQ,CAAC,EAAG,KAC9C,MAAQ,GAAUG,MAAAA,CAARD,EAAK,KAAYG,MAAAA,CAATF,EAAM,KAAO,OAAJE,EAC7B,EAEMC,GAA0B,WAC9B,IAAMN,EAAM,IAAIC,KACVM,EAAQH,OAAOJ,EAAI,QAAQ,IAAI,QAAQ,CAAC,EAAG,KAC3CQ,EAAUJ,OAAOJ,EAAI,UAAU,IAAI,QAAQ,CAAC,EAAG,KACrD,MAAQ,GAAWQ,MAAAA,CAATD,EAAM,KAAW,OAARC,EACrB,EAGMC,GAAS,SAACC,CAAU,EACxB,GAAI,CAACA,EAAY,MAAO,GACxB,IAAMC,EAAQ,IAAIV,KACZW,EAAY,IAAIX,KAAKS,GACvBG,EAAMF,EAAM,WAAW,GAAKC,EAAU,WAAW,GAC/CE,EAAIH,EAAM,QAAQ,GAAKC,EAAU,QAAQ,GAI/C,MAHIE,CAAAA,EAAI,GAAMA,AAAM,IAANA,GAAWH,EAAM,OAAO,GAAKC,EAAU,OAAO,EAAC,GAC3DC,IAEKT,OAAOS,EAChB,EAGME,GAAe,SAACC,CAAM,EAC1B,GAAI,CAACA,EAAQ,MAAO,GACpB,IAAMC,EAAQD,EAAO,IAAI,GAAG,WAAW,SACvC,AAAIC,AAAU,MAAVA,GAAiBA,AAAU,SAAVA,EAAyB,OAC1CA,AAAU,MAAVA,GAAiBA,AAAU,WAAVA,EAA2B,SACzCD,CACT,EAGAE,AAAAA,GAAAA,EAAAA,SAAAA,AAAAA,EAAU,W,iBAMEC,EAEAC,EACAC,EAIAC,EAEAC,EAEFC,EAoBIC,EAQFC,EAEAC,EAGEC,EAGEC,EAgBJC,EAEAC,EAEAC,EAoCCC,E,iDAvGY,O,0BAHnBvD,GAAW,IAGQ,C,EAAMwD,MAAM,+B,QAC/B,GAAI,CAACf,AADCA,CAAAA,EAAa,UACH,EAAE,CAAE,MAAM,AAAIgB,MAAM,0BAChB,O,EAAMhB,EAAW,IAAI,G,QAKvB,OAJZE,EAAaD,AADbA,CAAAA,EAAc,UACW,IAAI,CAAC,MAAM,CAAC,IAAI,CAC/ChD,EAAmBgD,EAAY,IAAI,CAAC,IAAI,EAGtB,C,EAAMc,MAAO,8BAAwC,OAAXb,I,QAC5D,GAAI,CAACC,AADCA,CAAAA,EAAY,UACH,EAAE,CAAE,MAAM,AAAIa,MAAM,yBAChB,O,EAAMb,EAAU,IAAI,G,WAAjCC,EAAa,SAEfC,EAAiB,GACjBD,EAAW,UAAU,EACvBA,EAAW,UAAU,CAAC,OAAO,CAAC,SAACa,CAAI,EACjC,GAAIA,EAAK,OAAO,CAAE,CAChB,IAAqBC,EAAAA,EAAAA,EAAK,OAAO,CAAC,KAAK,CAAC,QAAjCC,EAAcD,CAAAA,CAAAA,EAAAA,CAATE,EAASF,CAAAA,CAAAA,EAAAA,AACjBC,CAAAA,GAAOC,GAAUD,CAAAA,AAAe,iBAAfA,EAAI,IAAI,IAAyBA,AAAe,cAAfA,EAAI,IAAI,EAAiB,GAC7Ed,CAAAA,EAAiBe,EAAM,IAAI,EAAC,CAEhC,CACF,GAGE,CAACf,GAAkBJ,EAAY,eAAe,EAAIA,EAAY,eAAe,CAAC,IAAI,EACpFI,CAAAA,EAAiBJ,EAAY,eAAe,CAAC,IAAI,AAAD,EAGlDtD,EAAgB0D,G,CAGZA,EAAAA,MAAAA,C,KACa,O,EAAMU,MAAO,gCAA8C,OAAfV,I,YACvDC,AADEA,CAAAA,EAAS,UACJ,EAAE,CAATA,MAAAA,C,KACc,O,EAAMA,EAAO,IAAI,G,QACjCxD,EAAiBuE,AADD,SACS,OAAO,EAAI,I,iBAKzB,O,EAAMN,MAAO,+BAAkC,OAAJtG,I,QAC1D,GAAI,CAAC8F,AADCA,CAAAA,EAAS,UACH,EAAE,CAAE,MAAM,AAAIS,MAAM,kBAChB,O,EAAMT,EAAO,IAAI,G,YAE7BC,AAFEA,CAAAA,EAAU,UAEJ,WAAW,CAAnBA,MAAAA,C,MACiB,O,EAAMO,MAAO,+BAAkD,OAApBP,EAAQ,WAAW,G,aAC7EC,AADEA,CAAAA,EAAa,UACJ,EAAE,CAAbA,MAAAA,C,MACkB,O,EAAMA,EAAW,IAAI,G,gBAEzCzF,EAAe0F,AADTA,CAAAA,EAASY,AADK,SACO,MAAM,EAAI,CAAC,GAChB,OAAO,EAAId,EAAQ,QAAQ,EAAI,IACrDrF,EAAiByE,GAAac,EAAO,MAAM,EAAI,KAC3CA,EAAO,SAAS,EAClBpF,EAAcgE,GAAOoB,EAAO,SAAS,G,eAGvC1F,EAAewF,EAAQ,QAAQ,EAAI,IACnClF,EAAcgE,GAAOkB,EAAQ,WAAW,G,wCAG1CxF,EAAewF,EAAQ,QAAQ,EAAI,IACnClF,EAAcgE,GAAOkB,EAAQ,WAAW,G,mBAI1B,O,EAAMO,MAAO,0CAAiD,OAARnG,I,SACtE,GAAI,CAAC+F,AADCA,CAAAA,EAAU,UACH,EAAE,CAAE,MAAM,AAAIK,MAAM,8BACX,O,EAAML,EAAQ,IAAI,G,gBAAlCC,EAAgB,SAEhBC,EAAAA,EAAAA,CACFD,GAAiBA,EAAc,MAAM,CAAG,IAC1CA,EAAc,OAAO,CAAC,SAACW,CAAI,EACzB,IAAMC,EAAeD,AAAAA,CAAAA,CAAI,CAAC,EAAE,EAAI,EAAC,EAAG,IAAI,GAClCE,EAAQF,CAAI,CAAC,EAAE,EAAI1G,EACnB6G,EAASH,CAAI,CAAC,EAAE,EAAI,EAEtBC,CAAAA,EAAY,QAAQ,CAAC,MAAQA,EAAY,QAAQ,CAAC,KAEpDG,AADcH,EAAY,KAAK,CAAC,UAAU,GAAG,CAAC,SAACI,CAAC,E,OAAaA,EAAE,IAAI,E,GAAI,MAAM,CAACC,SACxE,OAAO,CAAC,SAACC,CAAC,CAAUC,CAAI,EAC5BlB,EAAU,IAAI,CAAC,CACb,GAAK,GAAWkB,MAAAA,CAATN,EAAM,KAAQ,OAALM,GAChB,KAAMD,EACN,OAAQJ,CACV,EACF,GACSF,GACTX,EAAU,IAAI,CAAC,CACb,GAAIY,EACJ,KAAMD,EACN,OAAQE,CACV,EAEJ,GAGAjG,EADqBoF,EAAU,GAAG,CAACrG,SAAAA,CAAC,E,OAAIA,EAAE,IAAI,A,GAAE,IAAI,CAAC,OAErDoB,EAAcgF,CAAa,CAAC,EAAE,CAAC,EAAE,EAAI,IACrCpE,EAAgBqE,GAChBxE,EAAewE,EAAU,MAAM,CAAG,IAIpC9E,EAAY6C,MACZ1C,EAAYiD,M,sBAGZ6C,QAAQ,KAAK,CADNlB,EAAAA,EAAAA,IAAAA,IAEPtC,GAAU,QAASsC,EAAI,OAAO,EAAI,gC,sBAElCvD,GAAW,I,wBAEf,IAGF,EAAG,CAAC9C,EAAKG,EAAQ,EAGjBmF,AAAAA,GAAAA,EAAAA,SAAAA,AAAAA,EAAU,WACHvE,GAAakB,G,iBAIRuF,EAIFC,EACEC,EASFC,EA+BIC,EACAC,E,4EA7CRjG,EADM4F,EAAa1F,EAAa,MAAM,CAAG,GAKnC4F,EAAW5F,EAAa,MAAM,CAAG,EAAIA,CAAY,CAAC,EAAE,CAAC,IAAI,CAAGf,EAC9Db,AAAY,QAAZA,EAAAA,MAAAA,C,KACU,O,EAAMoG,MAAO,6CAAsDwB,MAAAA,CAAV1H,EAAO,KAAgC,OAA7B0H,mBAAmBJ,K,sBAAlGD,EAAY,S,gBACHvH,AAAY,WAAZA,EAAAA,MAAAA,C,KACG,O,EAAMoG,MAAO,gDAAyDwB,MAAAA,CAAV1H,EAAO,KAAgC,OAA7B0H,mBAAmBJ,K,WAC5FxH,AAAY,SAAZA,EAAAA,MAAAA,C,KACG,O,EAAMoG,MAAO,8CAAuDwB,MAAAA,CAAV1H,EAAO,KAAgC,OAA7B0H,mBAAmBJ,K,QAAnGD,EAAY,S,oBAGVE,EAAAA,EAAAA,C,CACAF,CAAAA,GAAaA,EAAU,EAAC,EAAxBA,MAAAA,C,KACY,O,EAAMA,EAAU,IAAI,G,QAAlCE,EAAc,S,qBAGZH,EAAAA,MAAAA,C,YAuBF7E,EArBoBb,EAAa,GAAG,CAAC,SAAC/B,CAAC,EACrC,IAAMgI,EAAeJ,EAAY,IAAI,CAAC,SAACK,CAAE,E,OAAUA,CAAE,CAAC,EAAE,GAAKjI,EAAE,IAAI,EAAIiI,CAAE,CAAC,EAAE,GAAKjI,EAAE,EAAE,A,GAC/EkI,EAAeF,GAAgBA,AAAoB,OAApBA,CAAY,CAAC,EAAE,CAAYA,CAAY,CAAC,EAAE,CAAG,GAC5EG,EAAeH,GAAgBA,CAAY,CAAC,EAAE,CAAGA,CAAY,CAAC,EAAE,CAAG,GACnEI,EAAcJ,GAAgBA,CAAY,CAAC,EAAE,CAAGA,CAAY,CAAC,EAAE,CAAG,GAClEK,EAAgBL,GAAgBA,CAAY,CAAC,EAAE,CAAGA,CAAY,CAAC,EAAE,CAAG,GACpEM,EAAUN,EAAeA,CAAY,CAAC,EAAE,CAAG,EAEjD,MAAO,CACL,GAAIhI,EAAE,EAAE,CACR,KAAMA,EAAE,IAAI,CACZ,QAAS,EAAE,CACX,MAAOkI,EACP,MAAOC,EACP,KAAMC,EACN,OAAQC,EACRC,QAAAA,EACA,UAAW,EACb,CACF,I,cAMkB,OADZT,EAAiB9F,CAAY,CAAC,EAAE,CAAGA,CAAY,CAAC,EAAE,CAAC,IAAI,CAAGf,EAC9C,C,EAAMuF,MAAO,+CAAoFrE,MAAAA,CAAtC6F,mBAAmBF,GAAgB,KAAgB,OAAb3F,I,SACnH,GAAI,CAAC4F,AADCA,CAAAA,EAAY,UACH,EAAE,CAAE,MAAM,AAAItB,MAAM,6BAChB,O,EAAMsB,EAAU,IAAI,G,SAsCvClF,EApCsB2F,AAAAA,CAFH,UAEiB,EAAC,EAAG,GAAG,CAAC,SAACjB,CAAC,EAC5C,IAAMkB,EAAUlB,CAAC,CAAC,EAAE,CACdmB,EAAYnB,CAAC,CAAC,EAAE,CAChBoB,EAAkBpB,CAAC,CAAC,EAAE,CACtBqB,EAAcrB,CAAC,CAAC,EAAE,EAAI,GACtBsB,EAAetB,CAAC,CAAC,EAAE,EAAI,GAEzBuB,EAAoB,EAAE,CAC1B,GAAI,CACEH,GAAmB,AAA2B,UAA3B,OAAOA,GAC5BG,CAAAA,EAAUC,KAAK,KAAK,CAACJ,EAAe,CAExC,CAAE,MAAOK,EAAG,CACVF,EAAU,EAAE,AACd,CAEA,IAAMb,EAAeJ,EAAY,IAAI,CAAC,SAACK,CAAE,E,OAAUA,CAAE,CAAC,EAAE,GAAKO,GAAWP,CAAE,CAAC,EAAE,GAAKQ,C,GAC5EP,EAAeF,GAAgBA,AAAoB,OAApBA,CAAY,CAAC,EAAE,CAAYA,CAAY,CAAC,EAAE,CAAIa,EAAQ,MAAM,CAAG,EAAIA,CAAO,CAAC,EAAE,CAAG,GAMrH,MAAO,CACL,GAAIL,EACJ,KAAMC,EACNI,QAAAA,EACA,MAAOX,EACP,MAVmBF,GAAgBA,CAAY,CAAC,EAAE,CAAGA,CAAY,CAAC,EAAE,CAAGW,EAWvE,KAVkBX,GAAgBA,CAAY,CAAC,EAAE,CAAGA,CAAY,CAAC,EAAE,CAAG,GAWtE,OAVoBA,GAAgBA,CAAY,CAAC,EAAE,CAAGA,CAAY,CAAC,EAAE,CAAGY,EAWxEN,QAVcN,EAAeA,CAAY,CAAC,EAAE,CAAG,EAW/C,UAAW,EACb,CACF,I,+CAMFR,QAAQ,KAAK,CADNlB,EAAAA,IAAAA,IAEPtC,GAAU,QAAS,8B,2BAEvB,IAGF,EAAG,CAAChD,EAAUkB,EAAc/B,EAASE,EAAQ0B,EAAa,EAG1D,IAAMiH,GAA0B,SAAOC,CAAQ,E,wBACvCC,EAEAC,EAEEC,E,iDAJI,O,EAAM7C,MAAO,uDAA+D,OAAT0C,EAAS,0B,QACxF,GAAI,CAACC,AADCA,CAAAA,EAAMG,EAAA,QACH,EAAE,CAAE,MAAM,AAAI7C,MAAO,qBAA6B,OAATyC,EAAS,eAC9C,O,EAAMC,EAAI,IAAI,G,QAC3B,GAAIC,AADEA,CAAAA,EAAOE,EAAA,QACJ,OAAO,EAAIF,EAAK,OAAO,CAAC,MAAM,CAAG,EAAG,CAE3C,GAAIC,AADEA,CAAAA,EAAOD,EAAK,OAAO,CAAC,EAAE,AAAD,EAClB,IAAI,EAAIC,EAAK,IAAI,CAAC,UAAU,CAAC,QACpC,MAAO,C,EAAAA,EAAK,IAAI,C,CAElB,GAAIA,EAAK,IAAI,EAAIA,EAAK,IAAI,CAAC,UAAU,CAAC,QACpC,MAAO,C,EAAAA,EAAK,IAAI,C,CAElB,MAAO,C,EAAAA,EAAK,IAAI,GAAKH,EAAYG,EAAK,IAAI,EAAI,GAAOA,EAAK,IAAI,EAAI,G,AACpE,CACA,MAAO,C,EAAA,G,GACT,I,EAEME,GAAwB,SAACd,CAAO,CAAUe,CAAK,CAAU3C,CAAK,EAClEhE,EAAc4G,SAAAA,CAAI,E,OAChBA,EAAK,GAAG,CAAClC,SAAAA,CAAC,M,WAAKA,EAAE,EAAE,GAAKkB,G,EAAU,A,mUAAA,GAAKlB,G,WAAG,KAACiC,EAAQ3C,I,+UAAUU,C,IAEjE,EA6XA,OACE,kBAAC,OAAI,UAAWmC,EAAAA,CAAAA,CAAAA,WAAkB,A,EAC/B3F,IACC,kBAAC,OAAI,UAAY,GAAkBA,MAAAA,CAAhB2F,EAAAA,CAAAA,CAAAA,KAAY,CAAC,KAAsE,OAAnE3F,AAAe,YAAfA,GAAM,IAAI,CAAiB2F,EAAAA,CAAAA,CAAAA,YAAmB,CAAGA,EAAAA,CAAAA,CAAAA,UAAiB,C,EAClG3F,GAAM,IAAI,EAIdb,IACC,kBAAC,OAAI,UAAWwG,EAAAA,CAAAA,CAAAA,OAAc,A,EAC5B,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,OAAc,A,GAC9B,kBAAC,SAAGrG,KAIPN,EACC,kBAAC,OAAI,UAAW2G,EAAAA,CAAAA,CAAAA,IAAW,A,EACzB,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,UAAiB,CAAE,MAAO,CAAE,QAAS,MAAO,C,EAC1D,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,OAAc,CAAE,MAAO,CAAE,OAAQ,QAAS,C,GAC1D,kBAAC,KAAE,MAAO,CAAE,UAAW,OAAQ,MAAO,mBAAoB,C,EAAG,6BAIjE,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,IAAW,A,EACzB,kBAAC,OAAI,MAAO,CAAE,QAAS,OAAQ,eAAgB,gBAAiB,WAAY,SAAU,aAAc,OAAQ,SAAU,OAAQ,IAAK,MAAO,C,EACxI,kBAAC,MAAG,UAAWA,EAAAA,CAAAA,CAAAA,QAAe,CAAE,MAAO,CAAE,OAAQ,CAAE,C,EAAG,sBACtD,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,iBAAwB,CAAE,MAAO,CAAE,OAAQ,CAAE,C,EAC3D,kBAAC,YAAK,aACN,kBAAC,QAAK,MAAO,CAAE,WAAY,IAAK,MAAO,uBAAwB,WAAY,QAAS,C,EAAIpH,KAG1F,kBAAC,OAAI,UAAWoH,EAAAA,CAAAA,CAAAA,GAAU,A,EACxB,kBAAC,OAAI,UAAY,GAAgBA,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,C,EACzC,kBAAC,aAAM,aACP,kBAAC,SAAM,KAAK,OAAO,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAAE,MAAOlJ,EAAa,W,IAExE,kBAAC,OAAI,UAAY,GAAgBkJ,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,C,EACzC,kBAAC,aAAM,WACP,kBAAC,SAAM,KAAK,OAAO,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAAE,MAAOtJ,EAAS,W,IAEpE,kBAAC,OAAI,UAAY,GAAgBsJ,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,C,EACzC,kBAAC,aAAM,UACP,kBAAC,SAAM,KAAK,OAAO,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAAE,MAAOxJ,EAAK,W,IAEhE,kBAAC,OAAI,UAAY,GAAgBwJ,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,C,EACzC,kBAAC,aAAM,OACP,kBAAC,SAAM,KAAK,OAAO,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAAE,MAAO5I,EAAY,W,IAEvE,kBAAC,OAAI,UAAY,GAAgB4I,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,C,EACzC,kBAAC,aAAM,UACP,kBAAC,SAAM,KAAK,OAAO,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAAE,MAAO/I,EAAe,W,KAI5E,kBAAC,MAAG,MAAO,CAAE,OAAQ,WAAY,UAAW,+BAAgC,C,GAE5E,kBAAC,OAAI,UAAW+I,EAAAA,CAAAA,CAAAA,GAAU,A,EACxB,kBAAC,OAAI,UAAY,GAAgBA,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,EAAI,MAAO,CAAE,SAAU,CAAE,C,EAClE,kBAAC,aAAM,aACP,kBAAC,SAAM,KAAK,OAAO,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAAE,MAAOzI,EAAU,W,IAErE,kBAAC,OAAI,UAAY,GAAgByI,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,EAAI,MAAO,CAAE,SAAU,CAAE,C,EAClE,kBAAC,aAAM,UACP,kBAAC,YAAS,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAAE,KAAM,EAAG,MAAOtI,EAAY,W,IAEvE,kBAAC,OAAI,UAAY,GAAgBsI,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,C,EACzC,kBAAC,aAAM,QACP,kBAAC,SACC,KAAK,OACL,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAC7B,MAAOnI,EACPoI,SAAU,SAACX,CAAC,E,OAAKxH,EAAYwH,EAAE,MAAM,CAAC,KAAK,C,KAG/C,kBAAC,OAAI,UAAY,GAAgBU,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,C,EACzC,kBAAC,aAAM,QACP,kBAAC,SACC,KAAK,OACL,UAAWA,EAAAA,CAAAA,CAAAA,WAAkB,CAC7B,MAAOhI,EACPiI,SAAU,SAACX,CAAC,E,OAAKrH,EAAYqH,EAAE,MAAM,CAAC,KAAK,C,MAIjD,kBAAC,MAAG,MAAO,CAAE,OAAQ,SAAU,UAAW,+BAAgC,C,GAC1E,kBAAC,MAAG,MAAO,CAAE,SAAU,SAAU,WAAY,IAAK,aAAc,OAAQ,MAAO,sBAAuB,C,EACnGnH,EAAc,gBAAkB,mBAEnC,kBAAC,OAAI,UAAW6H,EAAAA,CAAAA,CAAAA,sBAA6B,A,EAC3C,kBAAC,SAAM,UAAY,GAAkBA,MAAAA,CAAhBA,EAAAA,CAAAA,CAAAA,KAAY,CAAC,KAA2BA,MAAAA,CAAxBA,EAAAA,CAAAA,CAAAA,aAAoB,CAAC,KAAuB,OAApBA,EAAAA,CAAAA,CAAAA,YAAmB,C,EAC9E,kBAAC,aACC,kBAAC,UACC,kBAAC,UAAG,MACJ,kBAAC,UAAI7H,EAAc,YAAc,kBACjC,kBAAC,MAAG,MAAO,CAAE,MAAO,OAAQ,C,EAAG,SAC/B,kBAAC,UAAG,SACJ,kBAAC,UAAG,QACJ,kBAAC,UAAG,YAGR,kBAAC,aACEe,EAAW,MAAM,CAAG,EACnBA,EAAW,GAAG,CAAC,SAAC2E,CAAC,CAAEqC,CAAG,E,OACpB,kBAAC,MAAG,IAAKrC,EAAE,EAAE,A,EACX,kBAAC,UAAIqC,EAAM,GACX,kBAAC,MAAG,MAAO,CAAE,WAAY,GAAI,C,EAAIrC,EAAE,IAAI,EACvC,kBAAC,UACEA,EAAE,OAAO,CAAC,MAAM,CAAG,EAClB,kBAAC,UACC,UAAWmC,EAAAA,CAAAA,CAAAA,WAAkB,CAC7B,MAAOnC,EAAE,KAAK,CACdoC,SAAU,SAACX,CAAC,E,OAAKO,GAAsBhC,EAAE,EAAE,CAAE,QAASyB,EAAE,MAAM,CAAC,KAAK,C,EACpE,MAAO,CAAE,MAAO,MAAO,C,EAEtBzB,EAAE,OAAO,CAAC,GAAG,CAAC,SAACsC,CAAG,E,OACjB,kBAAC,UAAO,IAAKA,EAAK,MAAOA,C,EACtBA,E,IAKP,kBAAC,SACC,KAAK,OACL,UAAWH,EAAAA,CAAAA,CAAAA,WAAkB,CAC7B,MAAOnC,EAAE,KAAK,CACdoC,SAAU,SAACX,CAAC,E,OAAKO,GAAsBhC,EAAE,EAAE,CAAE,QAASyB,EAAE,MAAM,CAAC,KAAK,C,EACpE,MAAO,CAAE,MAAO,MAAO,C,IAI7B,kBAAC,UACC,kBAAC,SACC,KAAK,OACL,UAAWU,EAAAA,CAAAA,CAAAA,WAAkB,CAC7B,MAAOnC,EAAE,KAAK,CACdoC,SAAU,SAACX,CAAC,E,OAAKO,GAAsBhC,EAAE,EAAE,CAAE,QAASyB,EAAE,MAAM,CAAC,KAAK,C,KAGxE,kBAAC,UACC,kBAAC,SACC,KAAK,OACL,UAAWU,EAAAA,CAAAA,CAAAA,WAAkB,CAC7B,MAAOnC,EAAE,IAAI,CACboC,SAAU,SAACX,CAAC,E,OAAKO,GAAsBhC,EAAE,EAAE,CAAE,OAAQyB,EAAE,MAAM,CAAC,KAAK,C,KAGvE,kBAAC,UACC,kBAAC,SACC,KAAK,OACL,UAAWU,EAAAA,CAAAA,CAAAA,WAAkB,CAC7B,MAAOnC,EAAE,MAAM,CACfoC,SAAU,SAACX,CAAC,E,OAAKO,GAAsBhC,EAAE,EAAE,CAAE,SAAUyB,EAAE,MAAM,CAAC,KAAK,C,QAM7E,kBAAC,UACC,kBAAC,MAAG,QAAS,EAAG,UAAWU,EAAAA,CAAAA,CAAAA,UAAiB,CAAE,MAAO,CAAE,MAAO,mBAAoB,C,EAAG,4CAS/F,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,GAAU,CAAE,MAAO,CAAE,UAAW,OAAQ,WAAY,QAAS,C,EAC3E,kBAAC,OAAI,UAAY,GAAgBA,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,EAAI,MAAO,CAAE,SAAU,CAAE,C,EAClE,kBAAC,OAAI,UAAWA,EAAAA,CAAAA,CAAAA,iBAAwB,CAAEI,QAAS,W,OAAMrG,GAAkBgG,SAAAA,CAAI,E,MAAI,CAACA,C,KAClF,kBAAC,SACC,KAAK,WACL,QAASjG,GACTmG,SAAU,WAAO,C,GAEnB,kBAAC,YAAK,sBAGV,kBAAC,OAAI,UAAY,GAAgBD,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,EAAI,MAAO,CAAE,SAAU,EAAG,WAAY,UAAW,C,EAC1F,kBAAC,UACC,KAAK,SACL,UAAY,GAAgBA,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAqB,OAAlBA,EAAAA,CAAAA,CAAAA,UAAiB,EAC7C,QAhjBa,W,wBAgBnBK,EAIAC,EAEAC,EAGAC,EAYFC,EAWEC,EAMAC,EACAC,EACAC,EAGAC,EAWAC,EAGAC,EACAC,EA2CAC,EAcAC,EAWAC,EAGAC,EAcAC,EAIAC,EASAC,EAIFC,EACAC,EAcEC,EAGFC,EAWAC,EACAC,EACAC,EAIIC,EAEAC,EAMEC,EAMAC,EAWFC,EACAC,EAUFC,EAGAC,EAKAC,EAGAC,EAUFC,EAoBGC,E,iDA7RT,GADiBzJ,EAAW,IAAI,CAAC2E,SAAAA,CAAC,E,MAAI7C,AAA2B,KAA3BA,OAAO6C,EAAE,KAAK,EAAE,IAAI,E,GAGxD,OADAtD,GAAU,QAAS,8DACnB,C,oBAeoB,O,0BAXpBd,GAAe,IACfG,GAAe,8BAKfA,GAAe,8BACTyG,EAAyB,GAAW,OAAT9I,EAAS,SAItB,C,EAAMuF,MADT,kDAA2F,OAA1CwB,mBAAmB+B,K,QAErF,GAAI,CAACC,AADCA,CAAAA,EAAc,UACH,EAAE,CAAE,MAAM,AAAIvD,MAAO,wBAA6C,OAAtBsD,EAAsB,iGAC9D,O,EAAMC,EAAY,IAAI,G,QAGd,OAHvBC,EAAe,SAGQ,C,EAAM,IAAIqC,QAAQ,SAACC,CAAO,CAAEC,CAAM,EAC7D,IAAMC,EAAS,IAAIC,UACnBD,CAAAA,EAAO,SAAS,CAAG,WAEjBF,EAAQpD,AADIsD,EAAO,MAAM,CACb,OAAO,CAAC,mBAAoB,IAC1C,EACAA,EAAO,OAAO,CAAGD,EACjBC,EAAO,aAAa,CAACxC,EACvB,G,QARMC,EAAuB,SAW7B5G,GAAe,oCACX6G,EAAc,G,iBAEF,O,sBAAA,C,EAAMlB,GAAwB,qB,eAA5CkB,EAAc,S,oBAEd1C,QAAQ,IAAI,CAAC,kEADNuB,EAAAA,IAAAA,I,aAQS,OALd,AAACmB,GACHA,CAAAA,EAAc,wBAAuB,EAIrB,C,EAAM3D,MAAO,GAAc,OAAZ2D,EAAY,iBAAgB,CAC3D,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAMpB,KAAK,SAAS,CAAC,CAAE,KAAO,GAAW,OAAT9H,EAAS,UAAS,EACpD,G,QACA,GAAI,CAACmJ,AALCA,CAAAA,EAAY,UAKH,EAAE,CAAE,MAAM,AAAI3D,MAAM,8CAChB,O,EAAM2D,EAAU,IAAI,G,SAKtB,OAJXE,EAAgBD,AADhBA,CAAAA,EAAa,UACc,OAAO,CAClCE,EAAWF,EAAW,GAAG,CAGd,C,EAAM7D,MAAO,GAAc,OAAZ2D,EAAY,gBAAe,CACzD,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAMpB,KAAK,SAAS,CAAC,CACnB,QAASmB,EACT,OAAQ,CAAE,QAASI,CAAc,EACjC,KAAMrJ,CACR,EACF,G,SACA,GAAI,CAACuJ,AATCA,CAAAA,EAAW,UASH,EAAE,CAAE,MAAM,AAAI/D,MAAM,sCAChB,O,EAAM+D,EAAS,IAAI,G,SA8Db,OA7DlBC,EAAekC,AADH,SACa,OAAO,CAGhCjC,EAAmC,CAAC,EACpCC,EAAAA,EAAAA,CAEN/H,EAAW,OAAO,CAAC,SAAC2E,CAAC,CAAEqC,CAAG,EACxB,IAAIgD,EAAWrF,EAAE,IAAI,CACjBsF,EAAW,GACf,GAAItF,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAM,CACxB,IAAMH,EAAQG,EAAE,IAAI,CAAC,KAAK,CAAC,KAC3BsF,EAAWzF,CAAK,CAAC,EAAE,CAAC,IAAI,GACxBwF,EAAWxF,CAAK,CAAC,EAAE,CAAC,IAAI,EAC1B,CAEA,IAAM0F,EAAW,CACf,MAAOvF,EAAE,KAAK,CACd,MAAOA,EAAE,KAAK,CACd,OAAQA,EAAE,MAAM,CAChB,KAAMA,EAAE,IAAI,CACZ,KAAMqF,EACN,SAAUC,EACV,SAAUD,CACZ,CAGAlC,CAAAA,CAAQ,CAACnD,EAAE,IAAI,CAAC,CAAGuF,EAGnBpC,CAAQ,CAACkC,EAAS,CAAGE,EAGjBD,GACFnC,CAAAA,CAAQ,CAACmC,EAAS,CAAGC,CAAO,EAG9BnC,EAAe,IAAI,CAAC,CAClB,MAAOf,EAAM,EACb,KAAMgD,EACN,SAAUC,EACV,MAAOtF,EAAE,KAAK,CACd,MAAOA,EAAE,KAAK,CACd,OAAQA,EAAE,MAAM,CAChB,KAAMA,EAAE,IAAI,AACd,EACF,GAEMqD,EAAiB,CACrB,SAAUtI,EACV,YAAa9B,EACb,IAAKN,EACL,QAAS,GACT,SAAUe,EACV,IAAKH,EACL,YAAc,GAAcY,MAAAA,CAAZH,EAAS,KAAY,OAATG,GAC5B,UAAY,GAA+BkD,MAAAA,CAA7BP,KAA0B,KAA6B,OAA1BO,MAC3C,WAAY8F,EACZ,eAAgBC,CAClB,EAGwB,C,EAAMnE,MAAO,GAAc,OAAZ2D,EAAY,cAAa,CAC9D,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAMpB,KAAK,SAAS,CAAC,CACnB,SAAUA,KAAK,SAAS,CAAC6B,GACzB,OAAQ,CAAE,QAASN,CAAc,EACjC,KAAO,GAAW,OAATrJ,EAAS,QACpB,EACF,G,SACA,GAAI,CAAC4J,AATCA,CAAAA,EAAkB,UASH,EAAE,CAAE,MAAM,AAAIpE,MAAM,8CACd,O,EAAMoE,EAAgB,IAAI,G,SAIzB,OAHtBC,EAAciC,AADO,SACY,OAAO,CAGlB,C,EAAMvG,MAAO,GAAc,OAAZ2D,EAAY,mBAAkB,CACvE,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAMpB,KAAK,SAAS,CAAC,CACnB,KAAM,CAAE,QAAS+B,CAAY,EAC7B,KAAM,CAAE,qBAAsBL,CAAa,EAC3C,OAAQ,aACR,OAAQ,CAAE,QAASH,CAAc,EACjC,KAAO,GAAW,OAATrJ,EAAS,aAClB,OAAQ,MACV,EACF,G,SACA,GAAI,CAAC8J,AAZCA,CAAAA,EAAsB,UAYH,EAAE,CAAE,MAAM,AAAItE,MAAM,0DACd,O,EAAMsE,EAAoB,IAAI,G,SAK3C,OAJZC,EAAkBgC,AADO,SACgB,OAAO,CAGtD1J,GAAe,uBACG,C,EAAMkD,MAAO,GAAc,OAAZ2D,EAAY,cAAa,CACxD,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAMpB,KAAK,SAAS,CAAC,CACnB,SAAU,CAAE,QAASiC,CAAgB,EACrC,OAAQ,MACV,EACF,G,SACA,GAAI,CAACC,AARCA,CAAAA,EAAY,UAQH,EAAE,CAAE,MAAM,AAAIxE,MAAM,iDACV,O,EAAMwE,EAAU,IAAI,G,YAAvCC,EAAmB,SAGzB5H,GAAe,iCACX6H,EAAmB,GAEnB/K,AAAY,QAAZA,EAAAA,MAAAA,C,MACc,O,EAAMoG,MAAO,+CAAqD,OAAPlG,I,wBAA3E8K,EAAgB,S,kBACPhL,AAAY,WAAZA,EAAAA,MAAAA,C,MACO,O,EAAMoG,MAAO,kDAAwD,OAAPlG,I,YACrEF,AAAY,SAAZA,EAAAA,MAAAA,C,MACO,O,EAAMoG,MAAO,gDAAsD,OAAPlG,I,SAA5E8K,EAAgB,S,uBAGdA,CAAAA,GAAiBA,EAAc,EAAC,EAAhCA,MAAAA,C,MACiB,O,EAAMA,EAAc,IAAI,G,SAC3CD,EAAmB8B,AADA,SACW,aAAa,EAAI,G,mBAG3C5B,EAAW,GAAWpK,MAAAA,CAATf,EAAI,OAAmBiL,MAAAA,CAAdlK,EAAS,OAAsB,OAAjBkK,GAGtCG,EAAc,G,mBAEF,O,yBAAA,C,EAAMrC,GAAwB,8B,gBAA5CqC,EAAc,S,sBAEd7D,QAAQ,IAAI,CAAC,2EADNyF,EAAAA,IAAAA,I,eAGL,AAAC5B,GACHA,CAAAA,EAAc,wBAAuB,EAInCC,EAAYL,EACZM,EAAgB,GAAU,OAARH,EAAQ,SAC1BI,EAAQ,G,mBAMK,O,yBAHfnI,GAAe,+BAEfoI,AADMA,CAAAA,EAAkB,IAAIyB,QAAS,EACrB,MAAM,CAAC,OAAQjC,EAAkB,iBAClC,C,EAAM1E,MAAO,GAAc,OAAZ8E,EAAY,kBAAiB,CACzD,OAAQ,OACR,KAAMI,CACR,G,aAEIC,AALEA,CAAAA,EAAS,UAKJ,EAAE,CAATA,MAAAA,C,MACc,O,EAAMA,EAAO,IAAI,G,gBACjCJ,EADMK,EAAU,SAEhBJ,EAAgB,GAAU,OAARH,EAAQ,QAC1BI,EAAQ,GAGFI,EAAS/L,OAAO,GAAG,CAAC,eAAe,CAAC8L,GAC1C9L,OAAO,IAAI,CAAC+L,G,eAEZpE,QAAQ,IAAI,CAAC,6D,+CAGfA,QAAQ,IAAI,CAAC,wEADNlB,EAAAA,IAAAA,I,eAoBe,OAhBnBkF,IAEGK,EAAUhM,OAAO,GAAG,CAAC,eAAe,CAACoL,GAE3Ca,AADMA,CAAAA,EAAeqB,SAAS,aAAa,CAAC,IAAG,EAClC,IAAI,CAAGtB,EACpBC,EAAa,QAAQ,CAAI,GAAW,OAAT9K,EAAS,gBACpCmM,SAAS,IAAI,CAAC,WAAW,CAACrB,GAC1BA,EAAa,KAAK,GAClBqB,SAAS,IAAI,CAAC,WAAW,CAACrB,GAC1B9H,GAAU,QAAS,6DAKrB+H,AADMA,CAAAA,EAAiB,IAAImB,QAAS,EACrB,MAAM,CAAC,OAAQ5B,EAAWC,GAEjB,C,EAAMhF,MAAM,uCAAwC,CAC1E,OAAQ,OACR,KAAMwF,CACR,G,SACA,GAAI,CAACC,AAJCA,CAAAA,EAAkB,UAIH,EAAE,CAAE,MAAM,AAAIxF,MAAM,8CACd,O,EAAMwF,EAAgB,IAAI,G,SAiB5B,OAjBnBC,EAAqB,SAGrBC,EAAe,CACnB,eAAgB/L,AAAY,QAAZA,EAAoBE,EAAS,KAC7C,qBAAsBF,AAAY,WAAZA,EAAuBE,EAAS,KACtD,mBAAoBF,AAAY,SAAZA,EAAqBE,EAAS,KAClD,WAAYkL,EACZ,KAAMU,EAAmB,IAAI,CAC7B,OAAQ,WACR,IAAKzJ,CACP,EAEI2J,EAAa,6CACbhM,AAAY,WAAZA,GAAsBgM,CAAAA,EAAa,kDAAiD,EACpFhM,AAAY,SAAZA,GAAoBgM,CAAAA,EAAa,gDAA+C,EAE3D,C,EAAM5F,MAAM4F,EAAY,CAC/C,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAMrD,KAAK,SAAS,CAACoD,EACvB,G,SACA,GAAI,CAACkB,AALoB,SAKH,EAAE,CAAE,MAAM,AAAI5G,MAAM,mDAI1C,OADAnD,GAAe,kBACf,C,EAAMkD,MAAO,GAA+B+D,MAAAA,CAA7BJ,EAAY,mBAA0B,OAATI,EAAS,MAAK,CACxD,OAAQ,QACV,G,gBAFA,SAIA3G,GAAgB,IAChBK,GAAU,UAAW,gD,sBAGrBwD,QAAQ,KAAK,CADN4E,EAAAA,EAAAA,IAAAA,IAEPpI,GAAU,QAASoI,EAAI,OAAO,EAAI,2C,sBAElClJ,GAAe,I,wBAEnB,I,GA2Qe,qBAML,kBAAC,MAAG,MAAO,CAAE,OAAQ,WAAY,UAAW,+BAAgC,C,GAE5E,kBAAC,OAAI,UAAWuG,EAAAA,CAAAA,CAAAA,SAAgB,A,EAC9B,kBAAC,UACC,KAAK,SACL,UAAY,GAAgBA,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAwBA,MAAAA,CAArBA,EAAAA,CAAAA,CAAAA,UAAiB,CAAC,KAAc,OAAXA,EAAAA,CAAAA,CAAAA,GAAU,EAC3D,QApRK,W,wBAgBV4D,EAAAA,EAAAA,EAAAA,EAAAA,EAAM/F,EACHgG,EAUFC,EAWEC,EAgBJC,EAmBGrB,E,iDAxET,GAAI,CAAC1I,GAEH,OADAM,GAAU,QAAS,+CACnB,C,GAGF,GAAI,CAAC1C,GAAY,CAACG,EAEhB,OADAuC,GAAU,QAAS,6CACnB,C,8CAIAd,GAAe,IACfG,GAAe,8BAGVgK,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,O,wCAAAA,EAAW1K,CAAU,CAAVA,OAAAA,QAAAA,CAAAA,G,oBAAX0K,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,CAAAA,MAAAA,C,KAsBkB,OArBfC,EAAmB,CACvB,GAAIhG,AAFGA,CAAAA,EAAN+F,EAAAA,KAAAA,AAAAA,EAEK,OAAO,CACb,YAAa/F,EAAE,EAAE,CACjB,MAAOA,EAAE,KAAK,CACd,IAAK9E,EACL,MAAO8E,EAAE,KAAK,CACd,KAAMA,EAAE,IAAI,CACZ,OAAQA,EAAE,MAAM,AAClB,EAEIiG,EAAe,mDACfpN,AAAY,QAAZA,EACFmN,EAAY,cAAc,CAAGjN,EACpBF,AAAY,WAAZA,GACTmN,EAAY,oBAAoB,CAAGjN,EACnCkN,EAAe,0DACM,SAAZpN,IACTmN,EAAY,kBAAkB,CAAGjN,EACjCkN,EAAe,wDAGI,C,EAAMhH,MAAMgH,EAAc,CAC7C,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAMzE,KAAK,SAAS,CAACwE,EACvB,G,QACA,GAAI,CAACE,AALgB,SAKH,EAAE,CAAE,MAAM,AAAIhH,MAAO,4BAAkC,OAAPc,EAAE,IAAI,E,yBA3BrE+F,EAAAA,G,kDAAAA,EAAAA,GAAAA,EAAAA,E,iBAAAA,GAAAA,AAAAA,MAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,E,YAAAA,E,MAAAA,C,kBA6CiB,OAdtBhK,GAAe,iCAOXoK,EAAgB,sDAChBtN,AAAY,WAAZA,EACFsN,EAAgB,4DACPtN,AAAY,SAAZA,GACTsN,CAAAA,EAAgB,yDAAwD,EAGpD,C,EAAMlH,MAAMkH,EAAe,CAC/C,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAM3E,KAAK,SAAS,CAfA,CACpB,GAAIzI,EACJ,OAHkBkD,GAAiB,gBAAkB,UAIvD,EAaA,G,SACA,GAAI,CAACmK,AALiB,SAKH,EAAE,CAAE,MAAM,AAAIlH,MAAM,oC,OAEvCxC,GAAU,UAAW,4BACrBG,WAAW,WACTxE,EAAWE,OAAO,iBAAiB,GAAK,aAC1C,EAAG,M,sBAGH2H,QAAQ,KAAK,CADN4E,EAAAA,EAAAA,IAAAA,IAEPpI,GAAU,QAASoI,EAAI,OAAO,EAAI,gC,sBAElClJ,GAAe,I,wBAEnB,I,EAsMc,MAAO,CAAE,MAAO,QAAS,OAAQ,MAAO,C,EACzC,QAGD,kBAAC,UACC,KAAK,SACL,UAAY,GAAgBuG,MAAAA,CAAdA,EAAAA,CAAAA,CAAAA,GAAU,CAAC,KAAoB,OAAjBA,EAAAA,CAAAA,CAAAA,SAAgB,EAC5CI,QAAS,W,OAAMlK,EAAWE,OAAO,iBAAiB,GAAK,a,EACvD,MAAO,CAAE,MAAO,QAAS,OAAQ,MAAO,C,EACzC,UAQf,C"}
@@ -200,9 +200,9 @@
200
200
  "rendered": true,
201
201
  "initial": false,
202
202
  "entry": false,
203
- "size": 68701,
203
+ "size": 78878,
204
204
  "sizes": {
205
- "javascript": 68701
205
+ "javascript": 78878
206
206
  },
207
207
  "names": [],
208
208
  "idHints": [],
@@ -216,7 +216,7 @@
216
216
  "auxiliaryFiles": [
217
217
  "277.js.map"
218
218
  ],
219
- "hash": "caef65f0ece47d0d",
219
+ "hash": "89ab8a8dae7ac2d8",
220
220
  "childrenByOrder": {}
221
221
  },
222
222
  {
package/dist/routes.json CHANGED
@@ -1 +1 @@
1
- {"$schema":"https://json.openmrs.org/routes.schema.json","pages":[{"route":"addresults","component":"root","online":true,"offline":true},{"route":"addresults-form","component":"addresultsForm","online":true,"offline":true}],"extensions":[],"version":"1.0.11"}
1
+ {"$schema":"https://json.openmrs.org/routes.schema.json","pages":[{"route":"addresults","component":"root","online":true,"offline":true},{"route":"addresults-form","component":"addresultsForm","online":true,"offline":true}],"extensions":[],"version":"1.0.13"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sasindi/addresults",
3
- "version": "1.0.11",
3
+ "version": "1.0.13",
4
4
  "license": "MPL-2.0",
5
5
  "description": "addresults frontend module for O3",
6
6
  "generator": "@openmrs/create-o3-app@1.2.0",
@@ -24,6 +24,8 @@ const AddResultsForm: React.FC = () => {
24
24
  const [testRemark, setTestRemark] = useState<string>('');
25
25
  const [testDate, setTestDate] = useState<string>('');
26
26
  const [testTime, setTestTime] = useState<string>('');
27
+ const [isMultiTest, setIsMultiTest] = useState<boolean>(false);
28
+ const [orderedTests, setOrderedTests] = useState<any[]>([]);
27
29
 
28
30
  // Locations context
29
31
  const [locationUuid, setLocationUuid] = useState<string>('');
@@ -161,10 +163,37 @@ const AddResultsForm: React.FC = () => {
161
163
  const testRes = await fetch(`/openmrs/ws/rest/v1/addresult/loadview/${barcode}`);
162
164
  if (!testRes.ok) throw new Error('Barcode details not found!');
163
165
  const testDataArray = await testRes.json();
166
+
167
+ const testItems: { id: any; name: string; remark: string }[] = [];
164
168
  if (testDataArray && testDataArray.length > 0) {
165
- const mainTestData = testDataArray[0];
166
- setTestName(mainTestData[2] || '');
167
- setTestRemark(mainTestData[9] || '');
169
+ testDataArray.forEach((item: any) => {
170
+ const rawTestName = (item[2] || '').trim();
171
+ const rowId = item[8] || serial;
172
+ const remark = item[9] || '';
173
+
174
+ if (rawTestName.includes('/') || rawTestName.includes(',')) {
175
+ const parts = rawTestName.split(/[\/,]+/).map((s: string) => s.trim()).filter(Boolean);
176
+ parts.forEach((p: string, pIdx: number) => {
177
+ testItems.push({
178
+ id: `${rowId}_${pIdx}`,
179
+ name: p,
180
+ remark: remark
181
+ });
182
+ });
183
+ } else if (rawTestName) {
184
+ testItems.push({
185
+ id: rowId,
186
+ name: rawTestName,
187
+ remark: remark
188
+ });
189
+ }
190
+ });
191
+
192
+ const allTestNames = testItems.map(t => t.name).join(', ');
193
+ setTestName(allTestNames);
194
+ setTestRemark(testDataArray[0][9] || '');
195
+ setOrderedTests(testItems);
196
+ setIsMultiTest(testItems.length > 1);
168
197
  }
169
198
 
170
199
  // Set default date/time
@@ -182,25 +211,24 @@ const AddResultsForm: React.FC = () => {
182
211
  loadData();
183
212
  }, [phn, barcode]);
184
213
 
185
- // 2. Fetch Parameters once Test Name and Location are set
214
+ // 2. Fetch Parameters or Multi-Test rows
186
215
  useEffect(() => {
187
216
  if (!testName || !locationUuid) return;
188
217
 
189
218
  async function loadParamsAndValues() {
190
219
  try {
191
- // a. Load raw parameters for this test
192
- const paramsRes = await fetch(`/openmrs/ws/rest/v1/addresult/loadparameter/${testName}/${locationUuid}`);
193
- if (!paramsRes.ok) throw new Error('Failed to load parameters');
194
- const paramsData = await paramsRes.json();
220
+ const isMultiple = orderedTests.length > 1;
221
+ setIsMultiTest(isMultiple);
195
222
 
196
- // b. Load pre-saved parameter values depending on the patient's section
223
+ // Load pre-saved parameter values depending on the patient's section
197
224
  let valuesRes;
225
+ const mainTest = orderedTests.length > 0 ? orderedTests[0].name : testName;
198
226
  if (section === 'OPD') {
199
- valuesRes = await fetch(`/openmrs/ws/rest/v1/addresult/getvalueopd/${serial}/${testName}`);
227
+ valuesRes = await fetch(`/openmrs/ws/rest/v1/addresult/getvalueopd/${serial}/${encodeURIComponent(mainTest)}`);
200
228
  } else if (section === 'Clinic') {
201
- valuesRes = await fetch(`/openmrs/ws/rest/v1/addresult/getvalueclinic/${serial}/${testName}`);
229
+ valuesRes = await fetch(`/openmrs/ws/rest/v1/addresult/getvalueclinic/${serial}/${encodeURIComponent(mainTest)}`);
202
230
  } else if (section === 'Ward') {
203
- valuesRes = await fetch(`/openmrs/ws/rest/v1/addresult/getvalueward/${serial}/${testName}`);
231
+ valuesRes = await fetch(`/openmrs/ws/rest/v1/addresult/getvalueward/${serial}/${encodeURIComponent(mainTest)}`);
204
232
  }
205
233
 
206
234
  let savedValues: any[] = [];
@@ -208,51 +236,84 @@ const AddResultsForm: React.FC = () => {
208
236
  savedValues = await valuesRes.json();
209
237
  }
210
238
 
211
- // c. Map parameters and bind pre-saved values
212
- const mappedParams = (paramsData || []).map((p: any) => {
213
- const paramId = p[3]; // Parameter ID/Serial
214
- const paramName = p[2]; // Parameter Name (aa.parameters is at index 2)
215
- const paramOptionsStr = p[4]; // Parameters options JSON string (aa.parametervalues is at index 4)
239
+ if (isMultiple) {
240
+ // Multiple Tests: Load the test names as the table rows
241
+ const mappedTests = orderedTests.map((t) => {
242
+ const matchedSaved = savedValues.find((sv: any) => sv[1] === t.name || sv[2] === t.id);
243
+ const initialValue = matchedSaved && matchedSaved[0] !== null ? matchedSaved[0] : '';
244
+ const initialUnits = matchedSaved && matchedSaved[5] ? matchedSaved[5] : '';
245
+ const initialFlag = matchedSaved && matchedSaved[6] ? matchedSaved[6] : '';
246
+ const initialRanges = matchedSaved && matchedSaved[7] ? matchedSaved[7] : '';
247
+ const savedId = matchedSaved ? matchedSaved[3] : 0;
248
+
249
+ return {
250
+ id: t.id,
251
+ name: t.name,
252
+ options: [],
253
+ value: initialValue,
254
+ units: initialUnits,
255
+ flag: initialFlag,
256
+ ranges: initialRanges,
257
+ savedId,
258
+ isTestRow: true
259
+ };
260
+ });
216
261
 
217
- let options: string[] = [];
218
- try {
219
- if (paramOptionsStr && typeof paramOptionsStr === 'string') {
220
- options = JSON.parse(paramOptionsStr);
262
+ setParameters(mappedTests);
263
+ } else {
264
+ // Single Test: Load parameters configured for this specific test
265
+ const singleTestName = orderedTests[0] ? orderedTests[0].name : testName;
266
+ const paramsRes = await fetch(`/openmrs/ws/rest/v1/addresult/loadparameter/${encodeURIComponent(singleTestName)}/${locationUuid}`);
267
+ if (!paramsRes.ok) throw new Error('Failed to load parameters');
268
+ const paramsData = await paramsRes.json();
269
+
270
+ const mappedParams = (paramsData || []).map((p: any) => {
271
+ const paramId = p[3]; // Parameter ID (id from aatbl_labmasterdetails)
272
+ const paramName = p[2]; // Parameter Name (parametername from aatbl_labmasterdetails)
273
+ const paramOptionsStr = p[4]; // options (null)
274
+ const defaultUnit = p[5] || ''; // unit from aatbl_labmasterdetails
275
+ const defaultRange = p[6] || ''; // referencerange from aatbl_labmasterdetails
276
+
277
+ let options: string[] = [];
278
+ try {
279
+ if (paramOptionsStr && typeof paramOptionsStr === 'string') {
280
+ options = JSON.parse(paramOptionsStr);
281
+ }
282
+ } catch (e) {
283
+ options = [];
221
284
  }
222
- } catch (e) {
223
- options = [];
224
- }
225
285
 
226
- // Match saved value row
227
- const matchedSaved = savedValues.find((sv: any) => sv[2] === paramId);
228
- const initialValue = matchedSaved && matchedSaved[0] !== null ? matchedSaved[0] : (options.length > 0 ? options[0] : '');
229
- const initialUnits = matchedSaved && matchedSaved[5] ? matchedSaved[5] : '';
230
- const initialFlag = matchedSaved && matchedSaved[6] ? matchedSaved[6] : '';
231
- const initialRanges = matchedSaved && matchedSaved[7] ? matchedSaved[7] : '';
232
- const savedId = matchedSaved ? matchedSaved[3] : 0; // Existing record primary key (ID)
233
-
234
- return {
235
- id: paramId,
236
- name: paramName,
237
- options,
238
- value: initialValue,
239
- units: initialUnits,
240
- flag: initialFlag,
241
- ranges: initialRanges,
242
- savedId // tracks update vs insert
243
- };
244
- });
286
+ const matchedSaved = savedValues.find((sv: any) => sv[2] === paramId || sv[1] === paramName);
287
+ const initialValue = matchedSaved && matchedSaved[0] !== null ? matchedSaved[0] : (options.length > 0 ? options[0] : '');
288
+ const initialUnits = matchedSaved && matchedSaved[5] ? matchedSaved[5] : defaultUnit;
289
+ const initialFlag = matchedSaved && matchedSaved[6] ? matchedSaved[6] : '';
290
+ const initialRanges = matchedSaved && matchedSaved[7] ? matchedSaved[7] : defaultRange;
291
+ const savedId = matchedSaved ? matchedSaved[3] : 0;
292
+
293
+ return {
294
+ id: paramId,
295
+ name: paramName,
296
+ options,
297
+ value: initialValue,
298
+ units: initialUnits,
299
+ flag: initialFlag,
300
+ ranges: initialRanges,
301
+ savedId,
302
+ isTestRow: false
303
+ };
304
+ });
245
305
 
246
- setParameters(mappedParams);
306
+ setParameters(mappedParams);
307
+ }
247
308
 
248
309
  } catch (err: any) {
249
310
  console.error(err);
250
- showToast('error', 'Error loading test parameters');
311
+ showToast('error', 'Error loading test details');
251
312
  }
252
313
  }
253
314
 
254
315
  loadParamsAndValues();
255
- }, [testName, locationUuid, section, serial]);
316
+ }, [testName, locationUuid, section, serial, orderedTests]);
256
317
 
257
318
  // Concept Fetchers for external JSReport & DocToPdf conversion URLs
258
319
  const getConceptReferenceTerm = async (codeName: string): Promise<string> => {
@@ -353,13 +414,47 @@ const AddResultsForm: React.FC = () => {
353
414
 
354
415
  // Construct payload data
355
416
  const paramMap: { [key: string]: any } = {};
356
- parameters.forEach(p => {
357
- paramMap[p.name] = {
417
+ const parametersList: any[] = [];
418
+
419
+ parameters.forEach((p, idx) => {
420
+ let itemCode = p.name;
421
+ let itemName = '';
422
+ if (p.name.includes('/')) {
423
+ const parts = p.name.split('/');
424
+ itemName = parts[0].trim();
425
+ itemCode = parts[1].trim();
426
+ }
427
+
428
+ const paramObj = {
358
429
  value: p.value,
359
430
  units: p.units,
360
431
  ranges: p.ranges,
361
- flag: p.flag
432
+ flag: p.flag,
433
+ item: itemCode,
434
+ itemName: itemName,
435
+ itemCode: itemCode
362
436
  };
437
+
438
+ // 1. Map by full parameter name (e.g. "SGPT / ALT")
439
+ paramMap[p.name] = paramObj;
440
+
441
+ // 2. Map by split item code (e.g. "ALT")
442
+ paramMap[itemCode] = paramObj;
443
+
444
+ // 3. Map by split item name (e.g. "SGPT") if it exists
445
+ if (itemName) {
446
+ paramMap[itemName] = paramObj;
447
+ }
448
+
449
+ parametersList.push({
450
+ index: idx + 1,
451
+ item: itemCode,
452
+ itemName: itemName,
453
+ value: p.value,
454
+ units: p.units,
455
+ ranges: p.ranges,
456
+ flag: p.flag
457
+ });
363
458
  });
364
459
 
365
460
  const reportJsonData = {
@@ -371,7 +466,8 @@ const AddResultsForm: React.FC = () => {
371
466
  age: patientAge,
372
467
  collectdate: `${testDate} ${testTime}`,
373
468
  printdate: `${getCurrentDateFormatted()} ${getCurrentTimeFormatted()}`,
374
- parameters: paramMap
469
+ parameters: paramMap,
470
+ parametersList: parametersList
375
471
  };
376
472
 
377
473
  // Create JSReport Data element
@@ -418,16 +514,7 @@ const AddResultsForm: React.FC = () => {
418
514
  if (!renderRes.ok) throw new Error('Failed to compile report document on JSReport');
419
515
  const renderedDocxBlob = await renderRes.blob();
420
516
 
421
- // Trigger direct download of the generated DOCX report
422
- const docxUrl = window.URL.createObjectURL(renderedDocxBlob);
423
- const downloadLink = document.createElement('a');
424
- downloadLink.href = docxUrl;
425
- downloadLink.download = `${testName}_Report.docx`;
426
- document.body.appendChild(downloadLink);
427
- downloadLink.click();
428
- document.body.removeChild(downloadLink);
429
-
430
- // e. Fetch laboratory details to retrieve encounter UUID
517
+ // e. Fetch laboratory details to retrieve encounter UUID first
431
518
  setSpinnerText('Saving document attachment...');
432
519
  let labEncounterUuid = '';
433
520
  let labDetailsRes;
@@ -444,16 +531,70 @@ const AddResultsForm: React.FC = () => {
444
531
  labEncounterUuid = labDetails.encounteruuid || '';
445
532
  }
446
533
 
447
- // Upload DOCX attachment to OpenMRS OWA filesystem
448
534
  const docName = `${phn}@@@${testName}@@@${labEncounterUuid}`;
449
- const uploadDocxFormData = new FormData();
450
- uploadDocxFormData.append('file', renderedDocxBlob, `${docName}.docx`);
535
+
536
+ // Resolve DocToPdf Converter URL
537
+ let docToPdfUrl = '';
538
+ try {
539
+ docToPdfUrl = await getConceptReferenceTerm('DocToPdfConverterURLManual');
540
+ } catch (e) {
541
+ console.warn('Failed to fetch DocToPdfConverterURLManual from database, using fallback', e);
542
+ }
543
+ if (!docToPdfUrl) {
544
+ docToPdfUrl = 'http://localhost:5000/';
545
+ }
546
+
547
+ // Try PDF conversion
548
+ let finalBlob = renderedDocxBlob;
549
+ let finalDocName = `${docName}.docx`;
550
+ let isPdf = false;
551
+
552
+ try {
553
+ setSpinnerText('Converting report to PDF...');
554
+ const convertFormData = new FormData();
555
+ convertFormData.append('file', renderedDocxBlob, 'document.docx');
556
+ const pdfRes = await fetch(`${docToPdfUrl}convert-to-pdf`, {
557
+ method: 'POST',
558
+ body: convertFormData
559
+ });
560
+
561
+ if (pdfRes.ok) {
562
+ const pdfBlob = await pdfRes.blob();
563
+ finalBlob = pdfBlob;
564
+ finalDocName = `${docName}.pdf`;
565
+ isPdf = true;
566
+
567
+ // Open the PDF in a new window/tab (Print Preview)
568
+ const pdfUrl = window.URL.createObjectURL(pdfBlob);
569
+ window.open(pdfUrl);
570
+ } else {
571
+ console.warn('PDF conversion response was not ok, falling back to DOCX.');
572
+ }
573
+ } catch (err) {
574
+ console.warn('PDF conversion service failed or not reachable, falling back to DOCX.', err);
575
+ }
576
+
577
+ if (!isPdf) {
578
+ // Trigger direct download of the generated DOCX report
579
+ const docxUrl = window.URL.createObjectURL(renderedDocxBlob);
580
+ const downloadLink = document.createElement('a');
581
+ downloadLink.href = docxUrl;
582
+ downloadLink.download = `${testName}_Report.docx`;
583
+ document.body.appendChild(downloadLink);
584
+ downloadLink.click();
585
+ document.body.removeChild(downloadLink);
586
+ showToast('error', 'PDF converter not available. Defaulted to DOCX download.');
587
+ }
588
+
589
+ // Upload attachment to OpenMRS OWA filesystem
590
+ const uploadFormData = new FormData();
591
+ uploadFormData.append('file', finalBlob, finalDocName);
451
592
 
452
593
  const serverUploadRes = await fetch('/openmrs/ws/rest/v1/addresult/upload', {
453
594
  method: 'POST',
454
- body: uploadDocxFormData
595
+ body: uploadFormData
455
596
  });
456
- if (!serverUploadRes.ok) throw new Error('Failed to upload DOCX attachment to OpenMRS OWA');
597
+ if (!serverUploadRes.ok) throw new Error('Failed to upload attachment to OpenMRS OWA');
457
598
  const serverUploadResult = await serverUploadRes.json();
458
599
 
459
600
  // Save report document record
@@ -461,7 +602,7 @@ const AddResultsForm: React.FC = () => {
461
602
  labreportingid: section === 'OPD' ? serial : null,
462
603
  labreportingclinicid: section === 'Clinic' ? serial : null,
463
604
  labreportingwardid: section === 'Ward' ? serial : null,
464
- reportname: `${docName}.docx`,
605
+ reportname: finalDocName,
465
606
  file: serverUploadResult.data,
466
607
  status: 'Approved',
467
608
  cby: currentUserUuid
@@ -663,14 +804,14 @@ const AddResultsForm: React.FC = () => {
663
804
  </div>
664
805
  <hr style={{ margin: '2rem 0', borderTop: '1px solid var(--border-color)' }} />
665
806
  <h3 style={{ fontSize: '1.1rem', fontWeight: 600, marginBottom: '1rem', color: 'var(--primary-color)' }}>
666
- Test Parameters
807
+ {isMultiTest ? 'Ordered Tests' : 'Test Parameters'}
667
808
  </h3>
668
809
  <div className={styles.showHideTableParameter}>
669
810
  <table className={`${styles.table} ${styles.tableBordered} ${styles.tableStriped}`}>
670
811
  <thead>
671
812
  <tr>
672
813
  <th>No</th>
673
- <th>Parameter Name</th>
814
+ <th>{isMultiTest ? 'Test Name' : 'Parameter Name'}</th>
674
815
  <th style={{ width: '220px' }}>Value</th>
675
816
  <th>Units</th>
676
817
  <th>Flag</th>