@sasindi/addresults 1.0.11 → 1.0.12

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=[];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,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":"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"}
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","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":"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"}
@@ -200,9 +200,9 @@
200
200
  "rendered": true,
201
201
  "initial": false,
202
202
  "entry": false,
203
- "size": 68701,
203
+ "size": 78575,
204
204
  "sizes": {
205
- "javascript": 68701
205
+ "javascript": 78575
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": "ef220e4c38580016",
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.12"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sasindi/addresults",
3
- "version": "1.0.11",
3
+ "version": "1.0.12",
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,82 @@ 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/Serial
272
+ const paramName = p[2]; // Parameter Name
273
+ const paramOptionsStr = p[4]; // Parameters options JSON string
274
+
275
+ let options: string[] = [];
276
+ try {
277
+ if (paramOptionsStr && typeof paramOptionsStr === 'string') {
278
+ options = JSON.parse(paramOptionsStr);
279
+ }
280
+ } catch (e) {
281
+ options = [];
221
282
  }
222
- } catch (e) {
223
- options = [];
224
- }
225
283
 
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
- });
284
+ const matchedSaved = savedValues.find((sv: any) => sv[2] === paramId);
285
+ const initialValue = matchedSaved && matchedSaved[0] !== null ? matchedSaved[0] : (options.length > 0 ? options[0] : '');
286
+ const initialUnits = matchedSaved && matchedSaved[5] ? matchedSaved[5] : '';
287
+ const initialFlag = matchedSaved && matchedSaved[6] ? matchedSaved[6] : '';
288
+ const initialRanges = matchedSaved && matchedSaved[7] ? matchedSaved[7] : '';
289
+ const savedId = matchedSaved ? matchedSaved[3] : 0;
290
+
291
+ return {
292
+ id: paramId,
293
+ name: paramName,
294
+ options,
295
+ value: initialValue,
296
+ units: initialUnits,
297
+ flag: initialFlag,
298
+ ranges: initialRanges,
299
+ savedId,
300
+ isTestRow: false
301
+ };
302
+ });
245
303
 
246
- setParameters(mappedParams);
304
+ setParameters(mappedParams);
305
+ }
247
306
 
248
307
  } catch (err: any) {
249
308
  console.error(err);
250
- showToast('error', 'Error loading test parameters');
309
+ showToast('error', 'Error loading test details');
251
310
  }
252
311
  }
253
312
 
254
313
  loadParamsAndValues();
255
- }, [testName, locationUuid, section, serial]);
314
+ }, [testName, locationUuid, section, serial, orderedTests]);
256
315
 
257
316
  // Concept Fetchers for external JSReport & DocToPdf conversion URLs
258
317
  const getConceptReferenceTerm = async (codeName: string): Promise<string> => {
@@ -353,13 +412,47 @@ const AddResultsForm: React.FC = () => {
353
412
 
354
413
  // Construct payload data
355
414
  const paramMap: { [key: string]: any } = {};
356
- parameters.forEach(p => {
357
- paramMap[p.name] = {
415
+ const parametersList: any[] = [];
416
+
417
+ parameters.forEach((p, idx) => {
418
+ let itemCode = p.name;
419
+ let itemName = '';
420
+ if (p.name.includes('/')) {
421
+ const parts = p.name.split('/');
422
+ itemName = parts[0].trim();
423
+ itemCode = parts[1].trim();
424
+ }
425
+
426
+ const paramObj = {
358
427
  value: p.value,
359
428
  units: p.units,
360
429
  ranges: p.ranges,
361
- flag: p.flag
430
+ flag: p.flag,
431
+ item: itemCode,
432
+ itemName: itemName,
433
+ itemCode: itemCode
362
434
  };
435
+
436
+ // 1. Map by full parameter name (e.g. "SGPT / ALT")
437
+ paramMap[p.name] = paramObj;
438
+
439
+ // 2. Map by split item code (e.g. "ALT")
440
+ paramMap[itemCode] = paramObj;
441
+
442
+ // 3. Map by split item name (e.g. "SGPT") if it exists
443
+ if (itemName) {
444
+ paramMap[itemName] = paramObj;
445
+ }
446
+
447
+ parametersList.push({
448
+ index: idx + 1,
449
+ item: itemCode,
450
+ itemName: itemName,
451
+ value: p.value,
452
+ units: p.units,
453
+ ranges: p.ranges,
454
+ flag: p.flag
455
+ });
363
456
  });
364
457
 
365
458
  const reportJsonData = {
@@ -371,7 +464,8 @@ const AddResultsForm: React.FC = () => {
371
464
  age: patientAge,
372
465
  collectdate: `${testDate} ${testTime}`,
373
466
  printdate: `${getCurrentDateFormatted()} ${getCurrentTimeFormatted()}`,
374
- parameters: paramMap
467
+ parameters: paramMap,
468
+ parametersList: parametersList
375
469
  };
376
470
 
377
471
  // Create JSReport Data element
@@ -418,16 +512,7 @@ const AddResultsForm: React.FC = () => {
418
512
  if (!renderRes.ok) throw new Error('Failed to compile report document on JSReport');
419
513
  const renderedDocxBlob = await renderRes.blob();
420
514
 
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
515
+ // e. Fetch laboratory details to retrieve encounter UUID first
431
516
  setSpinnerText('Saving document attachment...');
432
517
  let labEncounterUuid = '';
433
518
  let labDetailsRes;
@@ -444,16 +529,70 @@ const AddResultsForm: React.FC = () => {
444
529
  labEncounterUuid = labDetails.encounteruuid || '';
445
530
  }
446
531
 
447
- // Upload DOCX attachment to OpenMRS OWA filesystem
448
532
  const docName = `${phn}@@@${testName}@@@${labEncounterUuid}`;
449
- const uploadDocxFormData = new FormData();
450
- uploadDocxFormData.append('file', renderedDocxBlob, `${docName}.docx`);
533
+
534
+ // Resolve DocToPdf Converter URL
535
+ let docToPdfUrl = '';
536
+ try {
537
+ docToPdfUrl = await getConceptReferenceTerm('DocToPdfConverterURLManual');
538
+ } catch (e) {
539
+ console.warn('Failed to fetch DocToPdfConverterURLManual from database, using fallback', e);
540
+ }
541
+ if (!docToPdfUrl) {
542
+ docToPdfUrl = 'http://localhost:5000/';
543
+ }
544
+
545
+ // Try PDF conversion
546
+ let finalBlob = renderedDocxBlob;
547
+ let finalDocName = `${docName}.docx`;
548
+ let isPdf = false;
549
+
550
+ try {
551
+ setSpinnerText('Converting report to PDF...');
552
+ const convertFormData = new FormData();
553
+ convertFormData.append('file', renderedDocxBlob, 'document.docx');
554
+ const pdfRes = await fetch(`${docToPdfUrl}convert-to-pdf`, {
555
+ method: 'POST',
556
+ body: convertFormData
557
+ });
558
+
559
+ if (pdfRes.ok) {
560
+ const pdfBlob = await pdfRes.blob();
561
+ finalBlob = pdfBlob;
562
+ finalDocName = `${docName}.pdf`;
563
+ isPdf = true;
564
+
565
+ // Open the PDF in a new window/tab (Print Preview)
566
+ const pdfUrl = window.URL.createObjectURL(pdfBlob);
567
+ window.open(pdfUrl);
568
+ } else {
569
+ console.warn('PDF conversion response was not ok, falling back to DOCX.');
570
+ }
571
+ } catch (err) {
572
+ console.warn('PDF conversion service failed or not reachable, falling back to DOCX.', err);
573
+ }
574
+
575
+ if (!isPdf) {
576
+ // Trigger direct download of the generated DOCX report
577
+ const docxUrl = window.URL.createObjectURL(renderedDocxBlob);
578
+ const downloadLink = document.createElement('a');
579
+ downloadLink.href = docxUrl;
580
+ downloadLink.download = `${testName}_Report.docx`;
581
+ document.body.appendChild(downloadLink);
582
+ downloadLink.click();
583
+ document.body.removeChild(downloadLink);
584
+ showToast('error', 'PDF converter not available. Defaulted to DOCX download.');
585
+ }
586
+
587
+ // Upload attachment to OpenMRS OWA filesystem
588
+ const uploadFormData = new FormData();
589
+ uploadFormData.append('file', finalBlob, finalDocName);
451
590
 
452
591
  const serverUploadRes = await fetch('/openmrs/ws/rest/v1/addresult/upload', {
453
592
  method: 'POST',
454
- body: uploadDocxFormData
593
+ body: uploadFormData
455
594
  });
456
- if (!serverUploadRes.ok) throw new Error('Failed to upload DOCX attachment to OpenMRS OWA');
595
+ if (!serverUploadRes.ok) throw new Error('Failed to upload attachment to OpenMRS OWA');
457
596
  const serverUploadResult = await serverUploadRes.json();
458
597
 
459
598
  // Save report document record
@@ -461,7 +600,7 @@ const AddResultsForm: React.FC = () => {
461
600
  labreportingid: section === 'OPD' ? serial : null,
462
601
  labreportingclinicid: section === 'Clinic' ? serial : null,
463
602
  labreportingwardid: section === 'Ward' ? serial : null,
464
- reportname: `${docName}.docx`,
603
+ reportname: finalDocName,
465
604
  file: serverUploadResult.data,
466
605
  status: 'Approved',
467
606
  cby: currentUserUuid
@@ -663,14 +802,14 @@ const AddResultsForm: React.FC = () => {
663
802
  </div>
664
803
  <hr style={{ margin: '2rem 0', borderTop: '1px solid var(--border-color)' }} />
665
804
  <h3 style={{ fontSize: '1.1rem', fontWeight: 600, marginBottom: '1rem', color: 'var(--primary-color)' }}>
666
- Test Parameters
805
+ {isMultiTest ? 'Ordered Tests' : 'Test Parameters'}
667
806
  </h3>
668
807
  <div className={styles.showHideTableParameter}>
669
808
  <table className={`${styles.table} ${styles.tableBordered} ${styles.tableStriped}`}>
670
809
  <thead>
671
810
  <tr>
672
811
  <th>No</th>
673
- <th>Parameter Name</th>
812
+ <th>{isMultiTest ? 'Test Name' : 'Parameter Name'}</th>
674
813
  <th style={{ width: '220px' }}>Value</th>
675
814
  <th>Units</th>
676
815
  <th>Flag</th>