@sasindi/addresults 1.0.7 → 1.0.8
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),P=j[0],k=j[1],T=d((0,n.useState)(""),2),F=T[0],R=T[1],D=d((0,n.useState)(""),2),I=D[0],J=D[1],L=d((0,n.useState)(""),2),U=L[0],M=L[1],W=d((0,n.useState)(""),2),B=W[0],G=W[1],H=d((0,n.useState)([]),2),_=H[0],Y=H[1],z=d((0,n.useState)(!0),2),V=z[0],X=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]),X(!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),J(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]||"")),k(em()),R(ep()),[3,20];case 18:return console.error(E=m.sent()),ed("error",E.message||"Error initializing page data"),[3,20];case 19:return X(!1),[7];case 20:return[2]}})})()},[e,r]),(0,n.useEffect)(function(){A&&I&&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(I))];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[1],n=e[2],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,I,t,c]);var ev=function(e){return i(function(){var t,r,n,a,o;return m(this,function(s){switch(s.label){case 0:return[4,fetch("/openmrs/ws/rest/v1/conceptreferenceterm?codeOrName=".concat(e))];case 1:if(!(t=s.sent()).ok)throw Error("Reference concept ".concat(e," not found"));return[4,t.json()];case 2:if((r=s.sent()).results&&r.results.length>0)return a=(n=r.results[0].display).lastIndexOf("(")+1,o=n.lastIndexOf(")"),[2,n.substring(a,o)];return[2,""]}})})()},ey=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)),V?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"}},U))),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:P,onChange:function(e){return k(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:F,onChange:function(e){return R(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,_.length>0?_.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 ey(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 ey(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 ey(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 ey(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 ey(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,i,u,d,p,h,v,y,g,b,w,S,N,O,C,x,j,k,T,R,D,I,J,L,M,W,G,H;return m(this,function(m){switch(m.label){case 0:if(_.some(function(e){return""===String(e.value).trim()}))return ed("error","Please fill all parameter values before generating report."),[2];m.label=1;case 1:return m.trys.push([1,37,38,39]),K(!0),ee("Uploading file template..."),ee("Reading report template..."),r="".concat(A,".docx"),[4,fetch("".concat(window.location.origin,"/openmrs/owa/LabReportTemplateFileUploaded/").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(),ee("Connecting to JSReport server..."),s="",m.label=5;case 5:return m.trys.push([5,7,,8]),[4,ev("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={},_.forEach(function(e){v[e.name]={value:e.value,units:e.units,ranges:e.ranges,flag:e.flag}}),y={hospital:U,patientname:f,phn:e,docname:"",testName:A,age:E,collectdate:"".concat(P," ").concat(F),printdate:"".concat(em()," ").concat(ep()),parameters:v},[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(!(g=m.sent()).ok)throw Error("Failed to register report data on JSReport");return[4,g.json()];case 14:return b=m.sent().shortid,[4,fetch("".concat(s,"odata/templates"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:{shortid:b},docx:{templateAssetShortid:h},engine:"handlebars",folder:{shortid:u},name:"".concat(A," template"),recipe:"docx"})})];case 15:if(!(w=m.sent()).ok)throw Error("Failed to construct template configuration on JSReport");return[4,w.json()];case 16:return S=m.sent().shortid,ee("Rendering report..."),[4,fetch("".concat(s,"api/report"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({template:{shortid:S},recipe:"docx"})})];case 17:if(!(N=m.sent()).ok)throw Error("Failed to compile report document on JSReport");return[4,N.blob()];case 18:O=m.sent(),ee("Converting report to PDF format..."),C="",m.label=19;case 19:return m.trys.push([19,21,,22]),[4,ev("DocToPdfConverterURLManual")];case 20:return C=m.sent(),[3,22];case 21:return console.warn("Failed to fetch DocToPdfConverterURLManual from database, using fallback",m.sent()),[3,22];case 22:return C||(C="http://localhost:5000/"),(x=new FormData).append("file",O,"document.docx"),[4,fetch("".concat(C,"convert-to-pdf"),{method:"POST",body:x})];case 23:if(!(j=m.sent()).ok)throw Error("Failed to convert compiled report to PDF");return[4,j.blob()];case 24:if(k=m.sent(),T=window.URL.createObjectURL(k),window.open(T),ee("Saving document attachment..."),R="","OPD"!==t)return[3,26];return[4,fetch("/openmrs/ws/rest/v1/addresult/labdetailsopd/".concat(c))];case 25:case 27:return D=m.sent(),[3,30];case 26:if("Clinic"!==t)return[3,28];return[4,fetch("/openmrs/ws/rest/v1/addresult/labdetailsclinic/".concat(c))];case 28:if("Ward"!==t)return[3,30];return[4,fetch("/openmrs/ws/rest/v1/addresult/labdetailsward/".concat(c))];case 29:D=m.sent(),m.label=30;case 30:if(!(D&&D.ok))return[3,32];return[4,D.json()];case 31:R=m.sent().encounteruuid||"",m.label=32;case 32:return I="".concat(e,"@@@").concat(A,"@@@").concat(R),(J=new FormData).append("file",k,"".concat(I,".pdf")),[4,fetch("/openmrs/ws/rest/v1/addresult/upload",{method:"POST",body:J})];case 33:if(!(L=m.sent()).ok)throw Error("Failed to upload PDF attachment to OpenMRS OWA");return[4,L.json()];case 34:return M=m.sent(),W={labreportingid:"OPD"===t?c:null,labreportingclinicid:"Clinic"===t?c:null,labreportingwardid:"Ward"===t?c:null,reportname:"".concat(I,".pdf"),file:M.data,status:"Approved",cby:B},G="/openmrs/ws/rest/v1/addresult/savedocument","Clinic"===t&&(G="/openmrs/ws/rest/v1/addresult/savedocumentclinic"),"Ward"===t&&(G="/openmrs/ws/rest/v1/addresult/savedocumentward"),[4,fetch(G,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(W)})];case 35:if(!m.sent().ok)throw Error("Failed to save document meta record to database");return ee("Cleaning up..."),[4,fetch("".concat(s,"odata/folders('").concat(d,"')"),{method:"DELETE"})];case 36:return m.sent(),es(!0),ed("success","Report generated and converted successfully!"),[3,39];case 37:return console.error(H=m.sent()),ed("error",H.message||"Error occurred during report generation"),[3,39];case 38:return K(!1),[7];case 39: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(!P||!F)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=_[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),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),P=j[0],k=j[1],T=d((0,n.useState)(""),2),F=T[0],R=T[1],D=d((0,n.useState)(""),2),I=D[0],J=D[1],L=d((0,n.useState)(""),2),U=L[0],M=L[1],W=d((0,n.useState)(""),2),B=W[0],G=W[1],H=d((0,n.useState)([]),2),_=H[0],Y=H[1],z=d((0,n.useState)(!0),2),V=z[0],X=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]),X(!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),J(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]||"")),k(em()),R(ep()),[3,20];case 18:return console.error(E=m.sent()),ed("error",E.message||"Error initializing page data"),[3,20];case 19:return X(!1),[7];case 20:return[2]}})})()},[e,r]),(0,n.useEffect)(function(){A&&I&&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(I))];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,I,t,c]);var ev=function(e){return i(function(){var t,r,n,a,o;return m(this,function(s){switch(s.label){case 0:return[4,fetch("/openmrs/ws/rest/v1/conceptreferenceterm?codeOrName=".concat(e))];case 1:if(!(t=s.sent()).ok)throw Error("Reference concept ".concat(e," not found"));return[4,t.json()];case 2:if((r=s.sent()).results&&r.results.length>0)return a=(n=r.results[0].display).lastIndexOf("(")+1,o=n.lastIndexOf(")"),[2,n.substring(a,o)];return[2,""]}})})()},ey=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)),V?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"}},U))),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:P,onChange:function(e){return k(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:F,onChange:function(e){return R(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,_.length>0?_.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 ey(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 ey(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 ey(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 ey(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 ey(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,i,u,d,p,h,v,y,g,b,w,S,N,O,C,x,j,k,T,R,D,I,J,L,M,W,G,H;return m(this,function(m){switch(m.label){case 0:if(_.some(function(e){return""===String(e.value).trim()}))return ed("error","Please fill all parameter values before generating report."),[2];m.label=1;case 1:return m.trys.push([1,37,38,39]),K(!0),ee("Uploading file template..."),ee("Reading report template..."),r="".concat(A,".docx"),[4,fetch("".concat(window.location.origin,"/openmrs/owa/LabReportTemplateFileUploaded/").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(),ee("Connecting to JSReport server..."),s="",m.label=5;case 5:return m.trys.push([5,7,,8]),[4,ev("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={},_.forEach(function(e){v[e.name]={value:e.value,units:e.units,ranges:e.ranges,flag:e.flag}}),y={hospital:U,patientname:f,phn:e,docname:"",testName:A,age:E,collectdate:"".concat(P," ").concat(F),printdate:"".concat(em()," ").concat(ep()),parameters:v},[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(!(g=m.sent()).ok)throw Error("Failed to register report data on JSReport");return[4,g.json()];case 14:return b=m.sent().shortid,[4,fetch("".concat(s,"odata/templates"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:{shortid:b},docx:{templateAssetShortid:h},engine:"handlebars",folder:{shortid:u},name:"".concat(A," template"),recipe:"docx"})})];case 15:if(!(w=m.sent()).ok)throw Error("Failed to construct template configuration on JSReport");return[4,w.json()];case 16:return S=m.sent().shortid,ee("Rendering report..."),[4,fetch("".concat(s,"api/report"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({template:{shortid:S},recipe:"docx"})})];case 17:if(!(N=m.sent()).ok)throw Error("Failed to compile report document on JSReport");return[4,N.blob()];case 18:O=m.sent(),ee("Converting report to PDF format..."),C="",m.label=19;case 19:return m.trys.push([19,21,,22]),[4,ev("DocToPdfConverterURLManual")];case 20:return C=m.sent(),[3,22];case 21:return console.warn("Failed to fetch DocToPdfConverterURLManual from database, using fallback",m.sent()),[3,22];case 22:return C||(C="http://localhost:5000/"),(x=new FormData).append("file",O,"document.docx"),[4,fetch("".concat(C,"convert-to-pdf"),{method:"POST",body:x})];case 23:if(!(j=m.sent()).ok)throw Error("Failed to convert compiled report to PDF");return[4,j.blob()];case 24:if(k=m.sent(),T=window.URL.createObjectURL(k),window.open(T),ee("Saving document attachment..."),R="","OPD"!==t)return[3,26];return[4,fetch("/openmrs/ws/rest/v1/addresult/labdetailsopd/".concat(c))];case 25:case 27:return D=m.sent(),[3,30];case 26:if("Clinic"!==t)return[3,28];return[4,fetch("/openmrs/ws/rest/v1/addresult/labdetailsclinic/".concat(c))];case 28:if("Ward"!==t)return[3,30];return[4,fetch("/openmrs/ws/rest/v1/addresult/labdetailsward/".concat(c))];case 29:D=m.sent(),m.label=30;case 30:if(!(D&&D.ok))return[3,32];return[4,D.json()];case 31:R=m.sent().encounteruuid||"",m.label=32;case 32:return I="".concat(e,"@@@").concat(A,"@@@").concat(R),(J=new FormData).append("file",k,"".concat(I,".pdf")),[4,fetch("/openmrs/ws/rest/v1/addresult/upload",{method:"POST",body:J})];case 33:if(!(L=m.sent()).ok)throw Error("Failed to upload PDF attachment to OpenMRS OWA");return[4,L.json()];case 34:return M=m.sent(),W={labreportingid:"OPD"===t?c:null,labreportingclinicid:"Clinic"===t?c:null,labreportingwardid:"Ward"===t?c:null,reportname:"".concat(I,".pdf"),file:M.data,status:"Approved",cby:B},G="/openmrs/ws/rest/v1/addresult/savedocument","Clinic"===t&&(G="/openmrs/ws/rest/v1/addresult/savedocumentclinic"),"Ward"===t&&(G="/openmrs/ws/rest/v1/addresult/savedocumentward"),[4,fetch(G,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(W)})];case 35:if(!m.sent().ok)throw Error("Failed to save document meta record to database");return ee("Cleaning up..."),[4,fetch("".concat(s,"odata/folders('").concat(d,"')"),{method:"DELETE"})];case 36:return m.sent(),es(!0),ed("success","Report generated and converted successfully!"),[3,39];case 37:return console.error(H=m.sent()),ed("error",H.message||"Error occurred during report generation"),[3,39];case 38:return K(!1),[7];case 39: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(!P||!F)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=_[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"))))}}}]);
|
|
@@ -200,9 +200,9 @@
|
|
|
200
200
|
"rendered": true,
|
|
201
201
|
"initial": false,
|
|
202
202
|
"entry": false,
|
|
203
|
-
"size":
|
|
203
|
+
"size": 70181,
|
|
204
204
|
"sizes": {
|
|
205
|
-
"javascript":
|
|
205
|
+
"javascript": 70181
|
|
206
206
|
},
|
|
207
207
|
"names": [],
|
|
208
208
|
"idHints": [],
|
|
@@ -216,7 +216,7 @@
|
|
|
216
216
|
"auxiliaryFiles": [
|
|
217
217
|
"277.js.map"
|
|
218
218
|
],
|
|
219
|
-
"hash": "
|
|
219
|
+
"hash": "8342a3dd65bfd6a0",
|
|
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.
|
|
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.8"}
|
package/package.json
CHANGED
|
@@ -211,8 +211,8 @@ const AddResultsForm: React.FC = () => {
|
|
|
211
211
|
// c. Map parameters and bind pre-saved values
|
|
212
212
|
const mappedParams = (paramsData || []).map((p: any) => {
|
|
213
213
|
const paramId = p[3]; // Parameter ID/Serial
|
|
214
|
-
const paramName = p[
|
|
215
|
-
const paramOptionsStr = p[
|
|
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)
|
|
216
216
|
|
|
217
217
|
let options: string[] = [];
|
|
218
218
|
try {
|