@sasindi/patient-registration 1.0.4 → 1.0.6

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/614.js CHANGED
@@ -1 +1 @@
1
- "use strict";(globalThis.webpackChunk_sasindi_patient_registration=globalThis.webpackChunk_sasindi_patient_registration||[]).push([[614],{32606:(e,t,n)=>{n.r(t),n.d(t,{default:()=>S});var o=n(16072),r=n.n(o),i=n(28663),a=n(78465),l=n.n(a);const c=n.p+"5507d804948ae4a0.png";function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=function(e){var t=e.map((function(e){var t="";switch(e.inputType){case"textbox":default:t="text";break;case"dropdown":case"select":t="select";break;case"checkbox":t="checkbox"}var n=[];return"dropdown"!==e.inputType&&"select"!==e.inputType||"fixed"!==e.source||!e.options||(n=e.options.split(",").map((function(e){return{value:e.trim().toLowerCase().replace(/\s+/g,"_"),label:e.trim()}}))),function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),o.forEach((function(t){s(e,t,n[t])}))}return e}({name:e.label.toLowerCase().replace(/[^a-z0-9]/g,"_"),type:t,label:e.label,required:e.required,inputType:e.inputType,source:e.source},e.options&&{rawOptions:e.options},n.length>0&&{options:n},e.tableName&&{tableName:e.tableName},e.valueColumn&&{valueColumn:e.valueColumn},e.displayColumn&&{displayColumn:e.displayColumn},e.conceptUuid&&{conceptUuid:e.conceptUuid},e.conceptName&&{conceptName:e.conceptName},e.attributeUuid&&{attributeUuid:e.attributeUuid})}));return{version:"1.0",lastUpdated:(new Date).toISOString(),fields:t}};function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function u(e,t,n,o,r,i,a){try{var l=e[i](a),c=l.value}catch(e){return void n(e)}l.done?t(c):Promise.resolve(c).then(o,r)}function m(e){return function(){var t=this,n=arguments;return new Promise((function(o,r){var i=e.apply(t,n);function a(e){u(i,o,r,a,l,"next",e)}function l(e){u(i,o,r,a,l,"throw",e)}a(void 0)}))}}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),o.forEach((function(t){f(e,t,n[t])}))}return e}function b(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})),e}function x(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,r,i=[],a=!0,l=!1;try{for(n=n.call(e);!(a=(o=n.next()).done)&&(i.push(o.value),!t||i.length!==t);a=!0);}catch(e){l=!0,r=e}finally{try{a||null==n.return||n.return()}finally{if(l)throw r}}return i}}(e,t)||h(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(e){return function(e){if(Array.isArray(e))return p(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||h(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e,t){if(e){if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(e,t):void 0}}function v(e,t){var n,o,r,i={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=l(0),a.throw=l(1),a.return=l(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(l){return function(c){return function(l){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,o&&(r=2&l[0]?o.return:l[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,l[1])).done)return r;switch(o=0,r&&(l=[2&l[0],r.value]),l[0]){case 0:case 1:r=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,o=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!((r=(r=i.trys).length>0&&r[r.length-1])||6!==l[0]&&2!==l[0])){i=0;continue}if(3===l[0]&&(!r||l[1]>r[0]&&l[1]<r[3])){i.label=l[1];break}if(6===l[0]&&i.label<r[1]){i.label=r[1],r=l;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(l);break}r[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],o=0}finally{n=r=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,c])}}}var E=function(e){var t=e.title,n=e.kind,o=e.description;l().mixin({toast:!0,position:"top-end",showConfirmButton:!1,timer:3e3,timerProgressBar:!0,didOpen:function(e){e.addEventListener("mouseenter",l().stopTimer),e.addEventListener("mouseleave",l().resumeTimer)}}).fire({icon:"error"===n?"error":"success"===n?"success":"info",title:"".concat(t,": ").concat(o)})},w=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return m((function(){var n,o,r,a,l,c,s,d,p,u,m,f,g,b,x,y;return v(this,(function(h){switch(h.label){case 0:return h.trys.push([0,13,,14]),n=e,t&&e.trim()?[4,(0,i.openmrsFetch)("/ws/rest/v1/concept?q=".concat(encodeURIComponent(e.trim()),"&v=custom:(uuid,display)"))]:[3,2];case 1:if(!((r=h.sent()).ok&&(null===(o=r.data.results)||void 0===o?void 0:o.length)>0))return E({title:"Warning",kind:"warning",description:"Concept not found: ".concat(e)}),[2,[]];n=r.data.results[0].uuid,h.label=2;case 2:a=["/ws/rest/v1/concept/".concat(n,"?v=custom:(uuid,display,setMembers:(uuid,display))"),"/ws/rest/v1/concept/".concat(n,"?v=full"),"/ws/rest/v1/concept/".concat(n,"/members")],l=!0,c=!1,s=void 0,h.label=3;case 3:h.trys.push([3,10,11,12]),d=a[Symbol.iterator](),h.label=4;case 4:if(l=(p=d.next()).done)return[3,9];u=p.value,h.label=5;case 5:return h.trys.push([5,7,,8]),[4,(0,i.openmrsFetch)(u)];case 6:if((m=h.sent()).ok){if((null===(f=m.data.setMembers)||void 0===f?void 0:f.length)>0)return[2,m.data.setMembers.map((function(e){return{uuid:e.uuid,display:e.display}}))];if((null===(g=m.data.answers)||void 0===g?void 0:g.length)>0)return[2,m.data.answers.map((function(e){return{uuid:e.uuid,display:e.display}}))];if((null===(b=m.data.results)||void 0===b?void 0:b.length)>0)return[2,m.data.results.map((function(e){var t,n;return{uuid:(null===(t=e.concept)||void 0===t?void 0:t.uuid)||e.uuid,display:(null===(n=e.concept)||void 0===n?void 0:n.display)||e.display}}))]}return[3,8];case 7:return h.sent(),[3,8];case 8:return l=!0,[3,4];case 9:return[3,12];case 10:return x=h.sent(),c=!0,s=x,[3,12];case 11:try{l||null==d.return||d.return()}finally{if(c)throw s}return[7];case 12:return[2,[]];case 13:return y=h.sent(),console.error("Error fetching concept answers:",y),E({title:"Error",kind:"error",description:"Failed to load concept options"}),[2,[]];case 14:return[2]}}))}))()};const S=function(){var e,t,n,a=(0,i.useSession)(),s=null==a?void 0:a.user,p=(null==s||null===(e=s.privileges)||void 0===e?void 0:e.map((function(e){return"string"==typeof e?e:e.name||e.display})))||[],u=(null==s||null===(t=s.roles)||void 0===t?void 0:t.map((function(e){return"string"==typeof e?e:e.name||e.display})))||[];if(!p.includes("S_PatientRegistration")&&!u.includes("System Developer"))return r().createElement("div",{style:{padding:"40px",textAlign:"center",color:"#721c24",backgroundColor:"#f8d7da",border:"1px solid #f5c6cb",borderRadius:"5px",margin:"20px"}},r().createElement("h2",null,"Access Denied"),r().createElement("p",null,"You do not have the required privilege (",r().createElement("strong",null,"S_PatientRegistration"),") to view this page."),r().createElement("p",null,"Please contact your system administrator."));var h=x((0,o.useState)({existingPHN:"",unknownPatient:!1,babyOf:!1,title:"",givenName:"",familyName:"",nicNo:"",dateOfBirth:"",ageYears:"",ageMonths:"",ageDays:"",gender:"Male",telephoneResidence:"",telephoneMobile:"",guardianName:"",guardianRelationship:"",guardianContactNo:"",profileImage:null,address1:"",address2:"",city:"",postalCode:""}),2),S=h[0],C=h[1],k=x((0,o.useState)([]),2),z=k[0],N=k[1],B=x((0,o.useState)([]),2),O=B[0],T=B[1],R=x((0,o.useState)(!1),2),P=R[0],I=R[1],j=x((0,o.useState)(!0),2),F=j[0],D=j[1],A=x((0,o.useState)(null),2),U=A[0],W=A[1],M=x((0,o.useState)(""),2),L=M[0],q=M[1],G=x((0,o.useState)(!1),2),H=G[0],Y=G[1],_=x((0,o.useState)([]),2),J=_[0],V=_[1],K=x((0,o.useState)(!1),2),Q=K[0],X=K[1],Z=x((0,o.useState)({label:"",inputType:"textbox",value:"",options:"",source:"fixed",tableName:"",valueColumn:"",displayColumn:"",conceptUuid:"",conceptName:"",required:!1,attributeUuid:null}),2),$=Z[0],ee=Z[1];(0,o.useEffect)((function(){console.log("Custom fields updated:",J.length,"fields"),J.forEach((function(e,t){var n;"concept"===e.source&&console.log("Field ".concat(t," (").concat(e.label,"):"),{conceptAnswers:(null===(n=e.conceptAnswers)||void 0===n?void 0:n.length)||0,conceptLoading:e.conceptLoading,value:e.value})}))}),[J]),(0,o.useEffect)((function(){m((function(){var e,t,n,o,r,l;return v(this,(function(c){switch(c.label){case 0:return c.trys.push([0,3,4,5]),D(!0),W(null),(null==a||null===(e=a.sessionLocation)||void 0===e?void 0:e.uuid)&&q(a.sessionLocation.uuid),[4,(0,i.openmrsFetch)("/ws/rest/v1/personattributetype?v=custom:(uuid,display,format)&limit=100")];case 1:return t=c.sent(),n=t.data.results||[],N(n),[4,(0,i.openmrsFetch)("/ws/rest/v1/patientidentifiertype?v=custom:(uuid,display)&limit=100")];case 2:return o=c.sent(),r=o.data.results||[],T(r),[3,5];case 3:return l=c.sent(),console.error("Error fetching data:",l),W(l),E({title:"Error",kind:"error",description:"Failed to load form data. Please try again."}),[3,5];case 4:return D(!1),[7];case 5:return[2]}}))}))()}),[a]);var te=function(e){var t=e.target,n=t.name,o=t.value,r=t.type,i=e.target.checked;C((function(e){var t=b(g({},e),f({},n,"checkbox"===r?i:o));if("dateOfBirth"===n&&o){var a=function(e){var t=new Date,n=new Date(e),o=t.getFullYear()-n.getFullYear(),r=t.getMonth()-n.getMonth(),i=t.getDate()-n.getDate();return(r<0||0===r&&i<0)&&(o--,r+=12,i<0&&(i+=new Date(t.getFullYear(),t.getMonth(),0).getDate(),r--)),{years:o,months:r,days:i}}(o),l=a.years,c=a.months,s=a.days;t.ageYears=l.toString(),t.ageMonths=c.toString(),t.ageDays=s.toString()}else"dateOfBirth"!==n||o||(t.ageYears="",t.ageMonths="",t.ageDays="");return t}))},ne=function(e,t){V((function(n){var o=y(n);return o[e]&&(o[e]=b(g({},o[e]),{value:t})),o}))},oe=function(e){var t=e.target,n=t.name,o=t.value,r=t.type,i=e.target.checked;ee((function(e){var t=b(g({},e),f({},n,"checkbox"===r?i:o));return"inputType"===n&&("dropdown"===o||"select"===o?t.source=e.source||"fixed":(t.source="fixed",t.options="",t.tableName="",t.valueColumn="",t.displayColumn="",t.conceptUuid="",t.conceptName="")),"source"===n&&("fixed"===o?(t.tableName="",t.valueColumn="",t.displayColumn="",t.conceptUuid="",t.conceptName=""):"database"===o?(t.options="",t.conceptUuid="",t.conceptName=""):"concept"===o&&(t.options="",t.tableName="",t.valueColumn="",t.displayColumn="")),"conceptUuid"===n&&o.trim()&&(t.conceptName=""),"conceptName"===n&&o.trim()&&(t.conceptUuid=""),t}))},re=function(e){return m((function(){var t,n,o,r;return v(this,(function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),t=d(e),n={property:"patientRegistration.dynamicFields",value:JSON.stringify(t)},[4,(0,i.openmrsFetch)("/ws/rest/v1/systemsetting",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)})];case 1:return(o=a.sent()).ok?console.log("✅ Configuration saved to System Settings"):console.error("❌ Failed to save configuration to System Settings:",o.statusText),[3,3];case 2:return r=a.sent(),console.error("❌ Error saving configuration to System Settings:",r),[3,3];case 3:return[2]}}))}))()},ie=function(){var e,t=[];if(Object.entries({telephoneResidence:"Telephone Number",telephoneMobile:"Mobile Phone",nicNo:"NIC",guardianName:"Guardian Name",guardianRelationship:"Guardian Relationship",guardianContactNo:"Guardian Contact"}).forEach((function(e){var n=x(e,2),o=n[0],r=n[1],i=S[o];if(i){var a=z.find((function(e){return e.display.toLowerCase()===r.toLowerCase()}));a&&t.push({attributeType:a.uuid,value:i.toString()})}})),null==a||null===(e=a.sessionLocation)||void 0===e?void 0:e.uuid){var n=z.find((function(e){return"registration location"===e.display.toLowerCase()}));n?t.push({attributeType:n.uuid,value:a.sessionLocation.uuid}):console.warn('Could not find attribute type for "Registration Location"')}return J.forEach((function(e){e.value&&""!==e.value.toString().trim()&&e.attributeUuid&&t.push({attributeType:e.attributeUuid,value:e.value.toString()})})),t.length>0?t:void 0},ae=function(){Y(!H)};return F?r().createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh",backgroundColor:"#f5f5f5"}},r().createElement("div",{style:{textAlign:"center",padding:"30px",backgroundColor:"white",borderRadius:"8px",boxShadow:"0 2px 10px rgba(0,0,0,0.1)"}},r().createElement("div",{className:"spinner-border text-primary",role:"status",style:{width:"3rem",height:"3rem"}},r().createElement("span",{className:"sr-only"},"Loading...")),r().createElement("h3",{style:{marginTop:"20px",color:"#333"}},"Loading form data..."))):U?r().createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh",backgroundColor:"#f5f5f5"}},r().createElement("div",{style:{textAlign:"center",padding:"30px",backgroundColor:"white",borderRadius:"8px",boxShadow:"0 2px 10px rgba(0,0,0,0.1)",maxWidth:"500px"}},r().createElement("div",{style:{fontSize:"48px",color:"#dc3545",marginBottom:"20px"}},"⚠️"),r().createElement("h3",{style:{color:"#dc3545",marginBottom:"15px"}},"Error Loading Form Data"),r().createElement("p",{style:{color:"#666",marginBottom:"20px"}},U.message||"An unknown error occurred"),r().createElement("button",{onClick:function(){return window.location.reload()},style:{padding:"10px 20px",backgroundColor:"#007bff",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"14px"}},"Try Again"))):r().createElement("div",{style:{display:"flex",minHeight:"100vh",backgroundColor:"#f5f5f5"}},r().createElement("div",{style:{flex:1,padding:"20px",marginRight:H?"350px":"0",transition:"margin-right 0.3s ease",backgroundColor:"#f5f5f5"}},r().createElement("div",{style:{width:"100%"}},r().createElement("form",{onSubmit:function(e){return m((function(){var t,n,o,r,a,s,p,u,f,g,b,y,h,w,k,z,N,B,T,R,P,j;return v(this,(function(F){switch(F.label){case 0:if(e.preventDefault(),I(!0),!S.givenName||!S.familyName)return E({title:"Error",kind:"error",description:"Given name and family name are required"}),I(!1),[2];if(!S.dateOfBirth)return E({title:"Error",kind:"error",description:"Date of birth is required"}),I(!1),[2];if(!L)return E({title:"Error",kind:"error",description:"User location is not available"}),I(!1),[2];F.label=1;case 1:if(F.trys.push([1,15,16,17]),l().fire({title:"Registering Patient",html:"Please wait...",allowOutsideClick:!1,showConfirmButton:!1,didOpen:function(){l().showLoading()}}),n=S.existingPHN||(D=function(e,t){for(var n="",o=0;o<6;o++)n+=t.charAt(Math.floor(24*Math.random()));return n}(0,"2346789BCDFGHJKMPQRTVWXY"),A=function(e){e=e.toUpperCase().trim();for(var t=0,n=0;n<e.length;n++){var o=e.charAt(e.length-n-1);if("0123456789ABCDEFGHIJKLMNOPQRSTUVYWXZ_".indexOf(o)<0)return console.warn("Invalid character(s) found in Luhn check!"),"0";var r=o.charCodeAt(0)-48;t+=n%2==0?2*r-9*Math.floor(r/5):r}return((10-(t=Math.abs(t)+10)%10)%10).toString()}("POI"+D),"".concat("POI").concat(D).concat(A)),o="".concat(S.givenName," ").concat(S.familyName),r=S.dateOfBirth,!(a=O.find((function(e){return"openmrs id"===e.display.toLowerCase()}))))throw new Error('Identifier Type "OpenMRS ID" not found. Please verify your system configuration.');return s={identifiers:[{identifier:n,identifierType:a.uuid,location:L,preferred:!0}],person:{gender:"Male"===S.gender?"M":"Female"===S.gender?"F":"O",age:parseInt(S.ageYears)||0,birthdate:r,names:[{givenName:S.givenName,familyName:S.familyName}],attributes:ie(),addresses:[{address1:S.address1,address2:S.address2,cityVillage:S.city,postalCode:S.postalCode}]}},[4,(0,i.openmrsFetch)("/ws/rest/v1/patient",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})];case 2:return(p=F.sent()).ok?[3,4]:[4,p.json()];case 3:throw y=F.sent(),console.error("Detailed Server Error:",y),h=(null===(u=y.error)||void 0===u?void 0:u.message)||"Patient creation failed",(null===(f=y.error)||void 0===f?void 0:f.fieldErrors)&&(w=Object.entries(y.error.fieldErrors).map((function(e){var t=x(e,2),n=t[0],o=t[1];return"".concat(n,": ").concat(o.map((function(e){return e.message})).join(", "))})).join(" | "),w&&(h+=" (".concat(w,")"))),(null===(b=y.error)||void 0===b||null===(g=b.globalErrors)||void 0===g?void 0:g.length)&&(h+=" | Global: ".concat(y.error.globalErrors.map((function(e){return e.message})).join(", "))),new Error(h);case 4:return[4,p.json()];case 5:if(k=F.sent(),!(null===(t=S.profileImage)||void 0===t?void 0:t.file))return[3,9];F.label=6;case 6:return F.trys.push([6,8,,9]),[4,(U=k.uuid,W=S.profileImage.file,m((function(){var e,t,n,o;return v(this,(function(r){switch(r.label){case 0:return(e=new FormData).append("json",JSON.stringify({person:U,concept:"736e8771-e501-4615-bfa7-570c03f4bef5",obsDatetime:(new Date).toISOString(),groupMembers:[]})),e.append("file",W),[4,fetch("/openmrs/ws/rest/v1/obs",{method:"POST",credentials:"include",body:e})];case 1:return(t=r.sent()).ok?[3,3]:[4,t.json()];case 2:throw o=r.sent(),new Error((null===(n=o.error)||void 0===n?void 0:n.message)||"Failed to save photo");case 3:return[2,t.json()]}}))}))())];case 7:return F.sent(),console.log("Photo saved successfully!"),[3,9];case 8:return z=F.sent(),console.error("Photo upload failed:",z),E({title:"Warning",kind:"info",description:"Patient saved but photo upload failed."}),[3,9];case 9:if(l().close(),!(J.length>0))return[3,13];N=function(e){var t=d(e);return console.log("=== FIELD CONFIGURATION (Structure Only) ==="),console.log("// field-config.ts"),console.log("export const dynamicFieldsConfig = "),console.log(JSON.stringify(t,null,2)+";"),console.log("============================================"),t}(J),F.label=10;case 10:return F.trys.push([10,12,,13]),[4,(0,i.openmrsFetch)("/ws/rest/v1/systemsetting",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({property:"patientRegistration.dynamicFields",value:JSON.stringify(N)})})];case 11:return B=F.sent(),console.log("Configuration saved to system settings:",B),[3,13];case 12:return T=F.sent(),console.error("Error saving system setting:",T),[3,13];case 13:return[4,l().fire({icon:"success",title:"Registration Successful!",html:"Patient registered successfully!<br><br>\n <strong>PHN:</strong> ".concat(n),showCancelButton:!0,confirmButtonColor:"#28a745",cancelButtonColor:"#007bff",confirmButtonText:"OK",cancelButtonText:"Print PHN Card"})];case 14:return F.sent().dismiss===l().DismissReason.cancel&&(P=(null===(R=S.profileImage)||void 0===R?void 0:R.preview)||null,function(e,t,n){var o=window.open("","_blank");if(o){var r=n?'<img src="'.concat(n,'" alt="Patient Photo" style="width: 100%; height: 100%; object-fit: cover; border-radius: 6px;">'):"PHOTO",i='\n <!DOCTYPE html>\n <html>\n <head>\n <title>PHN Card</title>\n <style>\n @page {\n size: 68mm 43mm;\n margin: 0;\n }\n body {\n margin: 0;\n padding: 0;\n width: 68mm;\n height: 43mm;\n font-family: Arial, sans-serif;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n }\n .card {\n width: 100%;\n height: 100%;\n background: linear-gradient(135deg, #8cbad9ff);\n color: white;\n position: relative;\n overflow: hidden;\n box-sizing: border-box;\n padding: 8px;\n border-radius: 12px;\n }\n .card-header {\n font-size: 10px;\n font-weight: bold;\n text-transform: uppercase;\n color: #143861;\n margin-bottom: 6px;\n }\n .content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n }\n .left-section {\n flex: 1;\n display: flex;\n align-items: flex-start;\n margin-top: 4mm;\n }\n .header-container {\n display: flex;\n align-items: center;\n marginBottom: 3px;\n }\n .logo {\n width: 10mm;\n height: 10mm;\n margin-right: 6px;\n margin-top: 0.2mm;\n border-radius: 50%;\n object-fit: cover;\n }\n .card-header {\n font-size: 14px;\n font-weight: bold;\n text-transform: uppercase;\n color: rgba(21, 16, 55, 0.9);\n }\n .card-title {\n font-size: 14px,\n font-weight: bold,\n margin-bottom: 5px,\n text-transform: uppercase,\n color: rgba(21, 16, 55, 0.9)\n }\n .patient-info {\n display: flex;\n align-items: flex-start;\n margin-bottom: 8px;\n color: black;\n margin-top: 8px;\n }\n .logo-patient {\n width: 15mm;\n height: auto;\n margin-right: 8px;\n margin-top: 5px;\n }\n .patient-details {\n flex: 1;\n marginTop: 5px;\n }\n .patient-name {\n font-size: 10px;\n font-weight: bold;\n margin-bottom: 4px;\n text-transform: uppercase;\n line-height: 1.2;\n color: rgba(21, 16, 55, 0.9);\n }\n .id-number {\n font-size: 9px;\n margin-bottom: 5px;\n line-height: 1.2;\n color: rgba(21, 16, 55, 0.9);\n }\n .right-section {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-left: 10px;\n margin-top: 1mm;\n }\n .photo-placeholder {\n width: 12mm;\n height: 12mm;\n border: 1px solid #143861;\n display: flex;\n alignItems: center;\n justifyContent: center;\n fontSize: 9px;\n color: #143861;\n border-radius: 6px;\n margin-bottom: 6px;\n margin-top: -1mm;\n overflow: hidden;\n }\n .qr-container {\n width: 12mm;\n height: 12mm;\n display: flex;\n alignItems: center;\n justifyContent: center;\n background: white;\n border-radius: 4px;\n padding: 1px;\n margin-top: 0;\n }\n #qrcode {\n width: 10mm;\n height: 10mm;\n }\n </style>\n </head>\n <body>\n <div class="card">\n <div class="card-header">\n <div>INTERNATIONAL PERSONAL</div>\n <div>HEALTH CARD</div>\n </div>\n <div class="content">\n <div class="left-section">\n <img class="logo" src="'.concat(c,'" alt="Logo">\n <div class="details">\n <div class="patient-name">').concat(t,'</div>\n <div class="id-number">PHN: ').concat(e,'</div>\n </div>\n </div>\n <div class="right-section">\n <div class="photo-placeholder">\n ').concat(r,'\n </div>\n <div class="qr-container">\n <canvas id="qrcode"></canvas>\n </div>\n </div>\n </div>\n </div>\n <script src="https://cdn.jsdelivr.net/npm/qrcode@1.5.1/build/qrcode.min.js"><\/script>\n <script>\n window.onload = function() {\n const qrCanvas = document.getElementById(\'qrcode\');\n QRCode.toCanvas(qrCanvas, "').concat(e,'", {\n width: 50, \n height: 50,\n margin: 1,\n color: {\n dark: "#000000",\n light: "#ffffff"\n }\n }, function(error) {\n if (error) console.error(error);\n });\n \n setTimeout(function() {\n window.print();\n setTimeout(function() {\n window.close();\n }, 300);\n }, 500);\n }\n <\/script>\n </body>\n </html>\n ');o.document.open(),o.document.write(i),o.document.close()}else console.error("Failed to open print window")}(n,o,P)),C({existingPHN:"",unknownPatient:!1,babyOf:!1,title:"",givenName:"",familyName:"",nicNo:"",dateOfBirth:"",ageYears:"",ageMonths:"",ageDays:"",gender:"Male",telephoneResidence:"",telephoneMobile:"",guardianName:"",guardianRelationship:"",guardianContactNo:"",profileImage:null,address1:"",address2:"",city:"",postalCode:""}),V([]),[3,17];case 15:return j=F.sent(),console.error("Registration error:",j),l().fire({icon:"error",title:"Registration Failed",text:j.message||"An error occurred",confirmButtonColor:"#dc3545",confirmButtonText:"OK"}),[3,17];case 16:return I(!1),[7];case 17:return[2]}var D,A,U,W}))}))()},style:{backgroundColor:"#ffffff",padding:"40px",borderRadius:"8px",boxShadow:"0 2px 10px rgba(0,0,0,0.1)"}},r().createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",borderBottom:"2px solid #28a745",marginBottom:"30px",paddingBottom:"15px"}},r().createElement("h2",{style:{color:"#28a745",margin:0,fontSize:"24px",fontWeight:"bold"}},"Register Patient"),r().createElement("button",{onClick:ae,style:{padding:"10px 20px",backgroundColor:H?"#6c757d":"#007bff",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"14px",fontWeight:"bold",display:"flex",alignItems:"center",gap:"8px",boxShadow:"0 2px 5px rgba(0,0,0,0.2)",transition:"all 0.3s ease"},type:"button",title:H?"Close Custom Fields":"Open Custom Fields"},H?"← Close":"Create Fields →")),r().createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"20px",marginBottom:"30px",paddingBottom:"20px",borderBottom:"1px solid #eee"}},r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"Existing PHN"),r().createElement("input",{type:"text",name:"existingPHN",value:S.existingPHN,onChange:te,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box"},placeholder:"Enter existing PHN if patient has one"})),r().createElement("div",{style:{display:"flex",gap:"20px",alignItems:"flex-end",paddingBottom:"10px",gridColumn:"span 3"}},r().createElement("label",{style:{display:"flex",alignItems:"center",fontWeight:"bold",color:"#333",fontSize:"14px",cursor:"pointer"}},r().createElement("input",{type:"checkbox",name:"unknownPatient",checked:S.unknownPatient,onChange:te,style:{marginRight:"8px",transform:"scale(1.2)"}}),"Unknown Patient"),r().createElement("label",{style:{display:"flex",alignItems:"center",fontWeight:"bold",color:"#333",fontSize:"14px",cursor:"pointer"}},r().createElement("input",{type:"checkbox",name:"babyOf",checked:S.babyOf,onChange:te,style:{marginRight:"8px",transform:"scale(1.2)"}}),"Baby Of"))),r().createElement("h3",{style:{color:"#28a745",marginBottom:"20px",fontSize:"18px",fontWeight:"bold",borderBottom:"2px solid #28a745",paddingBottom:"10px"}},"Basic Information"),r().createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"20px",marginBottom:"40px"}},r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"Title"),r().createElement("select",{name:"title",value:S.title,onChange:te,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box"}},r().createElement("option",{value:""},"--Select--"),r().createElement("option",{value:"Mr"},"Mr"),r().createElement("option",{value:"Mrs"},"Mrs"),r().createElement("option",{value:"Miss"},"Miss"))),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"NIC No"),r().createElement("input",{type:"text",name:"nicNo",value:S.nicNo,onChange:te,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box"},placeholder:"Enter NIC number"})),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"Given Name ",r().createElement("span",{style:{color:"#dc3545"}},"*")),r().createElement("input",{type:"text",name:"givenName",value:S.givenName,onChange:te,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box"},placeholder:"Enter given name",required:!0})),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"Family Name ",r().createElement("span",{style:{color:"#dc3545"}},"*")),r().createElement("input",{type:"text",name:"familyName",value:S.familyName,onChange:te,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box"},placeholder:"Enter family name",required:!0}))),r().createElement("h3",{style:{color:"#28a745",marginBottom:"20px",fontSize:"18px",fontWeight:"bold",borderBottom:"2px solid #28a745",paddingBottom:"10px"}},"Personal Details"),r().createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"20px",marginBottom:"40px"}},r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"Date Of Birth ",r().createElement("span",{style:{color:"#dc3545"}},"*")),r().createElement("input",{type:"date",name:"dateOfBirth",value:S.dateOfBirth,onChange:te,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box"},required:!0})),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"Gender"),r().createElement("select",{name:"gender",value:S.gender,onChange:te,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box"}},r().createElement("option",{value:"Male"},"Male"),r().createElement("option",{value:"Female"},"Female"),r().createElement("option",{value:"Other"},"Other"))),r().createElement("div",{style:{gridColumn:"span 1"}},r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"Age"),r().createElement("div",{style:{display:"flex",gap:"10px",alignItems:"center"}},r().createElement("div",{style:{flex:1}},r().createElement("input",{type:"number",name:"ageYears",value:S.ageYears,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box",backgroundColor:"#f0f0f0",cursor:"not-allowed"},placeholder:"Years",readOnly:!0}),r().createElement("div",{style:{fontSize:"11px",color:"#666",textAlign:"center"}},"Years")),r().createElement("div",{style:{flex:1}},r().createElement("input",{type:"number",name:"ageMonths",value:S.ageMonths,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box",backgroundColor:"#f0f0f0",cursor:"not-allowed"},placeholder:"Months",readOnly:!0}),r().createElement("div",{style:{fontSize:"11px",color:"#666",textAlign:"center"}},"Months")),r().createElement("div",{style:{flex:1}},r().createElement("input",{type:"number",name:"ageDays",value:S.ageDays,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box",backgroundColor:"#f0f0f0",cursor:"not-allowed"},placeholder:"Days",readOnly:!0}),r().createElement("div",{style:{fontSize:"11px",color:"#666",textAlign:"center"}},"Days")))),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"Profile Image"),r().createElement("div",{style:{display:"flex",alignItems:"center",gap:"15px"}},r().createElement("div",{style:{width:"120px",height:"120px",border:"1px solid #ccc",borderRadius:"8px",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",backgroundColor:"#f9f9f9",flexShrink:0}},(null===(n=S.profileImage)||void 0===n?void 0:n.preview)?r().createElement("img",{src:S.profileImage.preview,alt:"Profile preview",style:{width:"100%",height:"100%",objectFit:"cover"}}):r().createElement("div",{style:{fontSize:"40px",color:"#ccc"}},"📷")),r().createElement("div",{style:{flex:1}},r().createElement("input",{type:"file",accept:"image/*",onChange:function(e){var t,n=null===(t=e.target.files)||void 0===t?void 0:t[0];if(n){if(n.size>2097152)return void E({title:"Error",kind:"error",description:"Image size should be less than 2MB"});var o=new FileReader;o.onload=function(e){C((function(t){var o;return b(g({},t),{profileImage:{file:n,preview:null===(o=e.target)||void 0===o?void 0:o.result}})}))},o.readAsDataURL(n)}},style:{display:"none"},id:"profile-image-upload"}),r().createElement("label",{htmlFor:"profile-image-upload",style:{display:"inline-block",padding:"8px 16px",backgroundColor:"#007bff",color:"white",borderRadius:"4px",cursor:"pointer",fontSize:"12px",fontWeight:"bold"}},"Choose Image"))))),r().createElement("h3",{style:{color:"#28a745",marginBottom:"20px",fontSize:"18px",fontWeight:"bold",borderBottom:"2px solid #28a745",paddingBottom:"10px"}},"Contact Information"),r().createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"20px",marginBottom:"40px"}},r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"Telephone (Residence)"),r().createElement("input",{type:"tel",name:"telephoneResidence",value:S.telephoneResidence,onChange:te,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box"},placeholder:"Enter residence phone"})),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"Telephone (Mobile)"),r().createElement("input",{type:"tel",name:"telephoneMobile",value:S.telephoneMobile,onChange:te,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box"},placeholder:"Enter mobile phone"}))),r().createElement("h3",{style:{color:"#28a745",marginBottom:"20px",fontSize:"18px",fontWeight:"bold",borderBottom:"2px solid #28a745",paddingBottom:"10px"}},"Address Information"),r().createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"20px",marginBottom:"40px"}},r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"Address Line 1"),r().createElement("input",{type:"text",name:"address1",value:S.address1,onChange:te,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box"},placeholder:"Enter address line 1"})),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"Address Line 2"),r().createElement("input",{type:"text",name:"address2",value:S.address2,onChange:te,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box"},placeholder:"Enter address line 2"})),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"City"),r().createElement("input",{type:"text",name:"city",value:S.city,onChange:te,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box"},placeholder:"Enter city"})),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"Postal Code"),r().createElement("input",{type:"text",name:"postalCode",value:S.postalCode,onChange:te,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box"},placeholder:"Enter postal code"}))),r().createElement("h3",{style:{color:"#28a745",marginBottom:"20px",fontSize:"18px",fontWeight:"bold",borderBottom:"2px solid #28a745",paddingBottom:"10px"}},"Guardian Information"),r().createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"20px",marginBottom:"40px"}},r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"Guardian Name"),r().createElement("input",{type:"text",name:"guardianName",value:S.guardianName,onChange:te,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box"},placeholder:"Enter guardian name"})),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"Guardian Relationship"),r().createElement("select",{name:"guardianRelationship",value:S.guardianRelationship,onChange:te,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box"}},r().createElement("option",{value:""},"--Select--"),r().createElement("option",{value:"Father"},"Father"),r().createElement("option",{value:"Mother"},"Mother"),r().createElement("option",{value:"Spouse"},"Spouse"),r().createElement("option",{value:"Sibling"},"Sibling"),r().createElement("option",{value:"Guardian"},"Guardian"),r().createElement("option",{value:"Other"},"Other"))),r().createElement("div",{style:{gridColumn:"span 1"}}," ",r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},"Guardian Contact No"),r().createElement("input",{type:"tel",name:"guardianContactNo",value:S.guardianContactNo,onChange:te,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box"},placeholder:"Enter guardian contact number"}))),J.length>0&&r().createElement("div",{style:{marginBottom:"40px"}},r().createElement("h3",{style:{color:"#28a745",marginBottom:"20px",fontSize:"18px",fontWeight:"bold",borderBottom:"2px solid #28a745",paddingBottom:"10px"}},"Additional Information"),r().createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"20px"}},J.map((function(e,t){return r().createElement("div",{key:e.id,style:{backgroundColor:"#f9f9f9",padding:"20px",borderRadius:"8px",border:"1px solid #eee",position:"relative"}},r().createElement("button",{type:"button",onClick:function(){return function(e){V((function(t){var n=y(t);return n.splice(e,1),re(n),n}))}(t)},style:{position:"absolute",top:"10px",right:"10px",background:"none",border:"none",color:"#dc3545",cursor:"pointer",fontSize:"18px",padding:"0",lineHeight:"1"},title:"Remove field"},"×"),r().createElement("label",{style:{display:"block",marginBottom:"8px",fontWeight:"bold",color:"#333",fontSize:"14px"}},e.label,e.required&&r().createElement("span",{style:{color:"#dc3545",marginLeft:"4px"}},"*")),r().createElement("div",{style:{marginTop:"10px"}},function(e,t){switch(e.inputType){case"textbox":return r().createElement("input",{type:"text",value:e.value,onChange:function(e){return ne(t,e.target.value)},placeholder:"Enter ".concat(e.label),required:e.required,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box"}});case"checkbox":return r().createElement("label",{style:{display:"flex",alignItems:"center",cursor:"pointer",marginTop:"10px"}},r().createElement("input",{type:"checkbox",checked:e.value,onChange:function(e){return ne(t,e.target.checked)},style:{marginRight:"8px",transform:"scale(1.2)"}}),r().createElement("span",{style:{fontSize:"14px"}},e.label));case"dropdown":case"select":var n=[],o=e.conceptLoading||!1,i=e.conceptAnswers&&e.conceptAnswers.length>0;return"fixed"===e.source&&e.options?n=e.options.split(",").map((function(e){return{value:e.trim(),label:e.trim()}})):"concept"===e.source&&(e.conceptUuid||e.conceptName)?i?(console.log("Rendering dropdown for ".concat(e.label," with ").concat(e.conceptAnswers.length," options")),n=e.conceptAnswers.map((function(e){return{value:e.display,label:e.display}})),o=!1):(o=!0,n=[{value:"",label:e.conceptLoading?"Loading options...":"No options available"}]):n="database"===e.source?[{value:"option1",label:"Sample Option 1"},{value:"option2",label:"Sample Option 2"},{value:"option3",label:"Sample Option 3"}]:[],r().createElement("div",null,r().createElement("select",{value:e.value,onChange:function(e){return ne(t,e.target.value)},required:e.required,disabled:o,style:{width:"100%",padding:"10px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"14px",boxSizing:"border-box",backgroundColor:o?"#f8f9fa":"white"}},r().createElement("option",{value:""},"Select ",e.label),n.map((function(e,t){return r().createElement("option",{key:t,value:e.value},e.label)}))),o&&r().createElement("div",{style:{fontSize:"11px",color:"#ffc107",marginTop:"5px",fontStyle:"italic"}},"⏳ Loading options..."));default:return null}}(e,t)))})))),r().createElement("div",{style:{display:"flex",justifyContent:"center",gap:"15px",marginTop:"40px",paddingTop:"30px",borderTop:"1px solid #eee",position:"sticky",bottom:"0",backgroundColor:"white"}},r().createElement("button",{type:"button",style:{padding:"12px 40px",backgroundColor:"#007bff",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"14px",fontWeight:"bold",boxShadow:"0 2px 4px rgba(0,0,0,0.1)"},onClick:function(){l().fire({title:"Are you sure?",text:"This will clear all form data, including custom fields.",icon:"warning",showCancelButton:!0,confirmButtonColor:"#3085d6",cancelButtonColor:"#d33",confirmButtonText:"Yes, clear data!"}).then((function(e){e.isConfirmed&&(C({existingPHN:"",unknownPatient:!1,babyOf:!1,title:"",givenName:"",familyName:"",nicNo:"",dateOfBirth:"",ageYears:"",ageMonths:"",ageDays:"",gender:"Male",telephoneResidence:"",telephoneMobile:"",guardianName:"",guardianRelationship:"",guardianContactNo:"",profileImage:null,address1:"",address2:"",city:"",postalCode:""}),V([]),E({title:"Success",kind:"success",description:"Form data has been cleared"}))}))}},"New"),r().createElement("button",{type:"submit",disabled:P,style:{padding:"12px 40px",backgroundColor:"#28a745",color:"white",border:"none",borderRadius:"4px",cursor:P?"not-allowed":"pointer",fontSize:"14px",fontWeight:"bold",opacity:P?.7:1,boxShadow:"0 2px 4px rgba(0,0,0,0.1)"}},P?"Saving...":"Save"))))),r().createElement("div",{style:{position:"fixed",top:0,right:H?"0":"-350px",width:"350px",height:"100vh",backgroundColor:"#ffffff",boxShadow:"-2px 0 10px rgba(0,0,0,0.1)",zIndex:1e3,transition:"right 0.3s ease",display:"flex",flexDirection:"column"}},r().createElement("div",{style:{padding:"20px",backgroundColor:"#f8f9fa",color:"#333",display:"flex",justifyContent:"space-between",alignItems:"center",borderBottom:"1px solid #e0e0e0"}},r().createElement("h3",{style:{margin:0,fontSize:"18px",fontWeight:"bold",color:"#333"}},"Create Custom Fields"),r().createElement("button",{onClick:ae,style:{background:"none",border:"none",color:"#666",fontSize:"20px",cursor:"pointer",padding:"5px"}},"✕")),r().createElement("div",{style:{flex:1,overflowY:"auto",padding:"15px"}},Q?r().createElement("div",{style:{backgroundColor:"#f8f9fa",padding:"15px",borderRadius:"6px",border:"1px solid #e0e0e0",marginBottom:"15px"}},r().createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"15px"}},r().createElement("h4",{style:{margin:0,fontSize:"16px",fontWeight:"bold",color:"#333"}},"Create New Field"),r().createElement("button",{onClick:function(){X(!1),ee({label:"",inputType:"textbox",value:"",options:"",source:"fixed",tableName:"",valueColumn:"",displayColumn:"",conceptUuid:"",conceptName:"",required:!1,attributeUuid:null})},style:{background:"none",border:"none",color:"#dc3545",cursor:"pointer",fontSize:"18px",padding:"2px 8px"}},"✕")),r().createElement("div",{style:{marginBottom:"15px"}},r().createElement("label",{style:{display:"block",marginBottom:"6px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Label Name"),r().createElement("input",{type:"text",name:"label",value:$.label,onChange:oe,placeholder:"e.g., Blood Group, Occupation, Emergency Contact",style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"}})),r().createElement("div",{style:{marginBottom:"15px"}},r().createElement("label",{style:{display:"block",marginBottom:"6px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Input Type"),r().createElement("select",{name:"inputType",value:$.inputType,onChange:oe,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"}},r().createElement("option",{value:"textbox"},"Textbox"),r().createElement("option",{value:"dropdown"},"Dropdown"),r().createElement("option",{value:"checkbox"},"Checkbox"),r().createElement("option",{value:"select"},"Select"))),("dropdown"===$.inputType||"select"===$.inputType)&&r().createElement("div",{style:{marginBottom:"15px"}},r().createElement("label",{style:{display:"block",marginBottom:"6px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Source"),r().createElement("select",{name:"source",value:$.source,onChange:oe,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"}},r().createElement("option",{value:"fixed"},"Fixed Values"),r().createElement("option",{value:"database"},"Database Table"),r().createElement("option",{value:"concept"},"Concept Dictionary"))),("dropdown"===$.inputType||"select"===$.inputType)&&"fixed"===$.source&&r().createElement("div",{style:{marginBottom:"15px"}},r().createElement("label",{style:{display:"block",marginBottom:"6px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Options (comma-separated)"),r().createElement("input",{type:"text",name:"options",value:$.options,onChange:oe,placeholder:"e.g., Option 1, Option 2, Option 3",style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"}})),("dropdown"===$.inputType||"select"===$.inputType)&&"database"===$.source&&r().createElement("div",{style:{marginBottom:"15px",padding:"10px",backgroundColor:"#e9ecef",borderRadius:"4px",border:"1px solid #dee2e6"}},r().createElement("div",{style:{marginBottom:"10px"}},r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"12px"}},"Table Name"),r().createElement("input",{type:"text",name:"tableName",value:$.tableName,onChange:oe,placeholder:"e.g., person",style:{width:"100%",padding:"6px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"12px",boxSizing:"border-box"}})),r().createElement("div",{style:{marginBottom:"10px"}},r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"12px"}},"Value Column"),r().createElement("input",{type:"text",name:"valueColumn",value:$.valueColumn,onChange:oe,placeholder:"e.g., person_id",style:{width:"100%",padding:"6px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"12px",boxSizing:"border-box"}})),r().createElement("div",{style:{marginBottom:"10px"}},r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"12px"}},"Display Column"),r().createElement("input",{type:"text",name:"displayColumn",value:$.displayColumn,onChange:oe,placeholder:"e.g., given_name",style:{width:"100%",padding:"6px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"12px",boxSizing:"border-box"}}))),("dropdown"===$.inputType||"select"===$.inputType)&&"concept"===$.source&&r().createElement("div",{style:{marginBottom:"15px",padding:"10px",backgroundColor:"#e6f7ff",borderRadius:"4px",border:"1px solid #b3e0ff"}},r().createElement("div",{style:{marginBottom:"10px"}},r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"12px"}},"Concept UUID ",r().createElement("span",{style:{color:"#666",fontWeight:"normal"}},"(OR Name)")),r().createElement("input",{type:"text",name:"conceptUuid",value:$.conceptUuid,onChange:oe,placeholder:"e.g., 88a07e9f-8c9f-4fbc-904c-531a5d41cd89",style:{width:"100%",padding:"6px",borderRadius:"4px",border:"1px solid #80d4ff",fontSize:"12px",boxSizing:"border-box",backgroundColor:"#f0faff",marginBottom:"8px"}}),r().createElement("div",{style:{textAlign:"center",color:"#666",fontSize:"11px",marginBottom:"8px"}},"OR"),r().createElement("input",{type:"text",name:"conceptName",value:$.conceptName,onChange:oe,placeholder:"e.g., Blood Group, Occupation, Marital Status",style:{width:"100%",padding:"6px",borderRadius:"4px",border:"1px solid #80d4ff",fontSize:"12px",boxSizing:"border-box",backgroundColor:"#f0faff"}}),r().createElement("div",{style:{fontSize:"11px",color:"#17a2b8",marginTop:"6px",fontStyle:"italic"}},"Enter either UUID or Name. Name will be searched in concept dictionary."))),r().createElement("div",{style:{marginBottom:"15px"}},r().createElement("label",{style:{display:"flex",alignItems:"center",cursor:"pointer"}},r().createElement("input",{type:"checkbox",name:"required",checked:$.required,onChange:oe,style:{marginRight:"6px",transform:"scale(1.1)"}}),r().createElement("span",{style:{fontWeight:"bold",color:"#333",fontSize:"13px"}},"Required Field"))),r().createElement("div",{style:{display:"flex",gap:"10px",marginTop:"10px"}},r().createElement("button",{type:"button",onClick:function(){X(!1),ee({label:"",inputType:"textbox",value:"",options:"",source:"fixed",tableName:"",valueColumn:"",displayColumn:"",conceptUuid:"",conceptName:"",required:!1,attributeUuid:null})},style:{flex:1,padding:"8px",backgroundColor:"#6c757d",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"13px"}},"Cancel"),r().createElement("button",{type:"button",onClick:function(){return m((function(){var e,t,n,o,r,a,c,s,d;return v(this,(function(p){switch(p.label){case 0:if(!$.label.trim())return E({title:"Error",kind:"error",description:"Please enter a label name"}),[2];if("dropdown"===$.inputType||"select"===$.inputType){if("fixed"===$.source&&!$.options.trim())return E({title:"Error",kind:"error",description:"Please enter options for fixed values"}),[2];if(!("database"!==$.source||$.tableName.trim()&&$.valueColumn.trim()&&$.displayColumn.trim()))return E({title:"Error",kind:"error",description:"Please fill all database fields (Table, Value Column, Display Column)"}),[2];if("concept"===$.source&&!$.conceptUuid.trim()&&!$.conceptName.trim())return E({title:"Error",kind:"error",description:"Please enter either Concept UUID or Name"}),[2]}if(e=z.find((function(e){var t,n,o=$.label.toLowerCase(),r=(null===(t=e.display)||void 0===t?void 0:t.toLowerCase())||"",i=(null===(n=e.name)||void 0===n?void 0:n.toLowerCase())||"",a=o.replace(/[^a-z0-9]/g,"_");return r===o||i.includes(a)||r.includes(o)})),t=null==e?void 0:e.uuid)return[3,9];l().fire({title:"Creating Field",html:"Creating custom field attribute...",allowOutsideClick:!1,didOpen:function(){return l().showLoading()}}),p.label=1;case 1:return p.trys.push([1,7,,8]),[4,(x=$,m((function(){var e,t,n,o,r,a,l,c;return v(this,(function(s){switch(s.label){case 0:return s.trys.push([0,5,,6]),e=x.label,t=x.label,n=function(e){switch(e){case"textbox":case"dropdown":case"select":default:return"java.lang.String";case"checkbox":return"java.lang.Boolean"}},o={name:e,description:"Custom field: ".concat(x.label),format:n(x.inputType),searchable:!1,display:t},[4,(0,i.openmrsFetch)("/ws/rest/v1/personattributetype",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)})];case 1:return(r=s.sent()).ok?[3,3]:[4,r.json()];case 2:throw l=s.sent(),new Error((null===(a=l.error)||void 0===a?void 0:a.message)||"Failed to create attribute type");case 3:return[4,r.json()];case 4:return[2,s.sent().uuid];case 5:throw c=s.sent(),console.error("Error creating person attribute type:",c),c;case 6:return[2]}}))}))())];case 2:if(!(t=p.sent()))return l().close(),E({title:"Error",kind:"error",description:"Failed to create custom field attribute type"}),[2];p.label=3;case 3:return p.trys.push([3,5,,6]),[4,(0,i.openmrsFetch)("/ws/rest/v1/personattributetype?v=custom:(uuid,display,name,format)&limit=100")];case 4:return n=p.sent(),N(n.data.results||[]),[3,6];case 5:return o=p.sent(),console.error("Failed to refresh attribute types:",o),[3,6];case 6:return l().close(),E({title:"Success",kind:"success",description:'Custom field "'.concat($.label,'" created successfully')}),[3,8];case 7:return r=p.sent(),l().close(),console.error("Error in addCustomField:",r),a="Failed to create custom field",u=r,(null!=(f=Error)&&"undefined"!=typeof Symbol&&f[Symbol.hasInstance]?f[Symbol.hasInstance](u):u instanceof f)&&(a+=": ".concat(r.message)),E({title:"Error",kind:"error",description:a}),[2];case 8:return[3,10];case 9:E({title:"Info",kind:"info",description:'Using existing attribute: "'.concat($.label,'"')}),p.label=10;case 10:return c="custom_".concat(Date.now(),"_").concat(Math.random().toString(36).substr(2,9)),s={id:c,label:$.label,inputType:$.inputType,value:"checkbox"!==$.inputType&&"",options:$.options,source:$.source,tableName:$.tableName,valueColumn:$.valueColumn,displayColumn:$.displayColumn,conceptUuid:$.conceptUuid,conceptName:$.conceptName,required:$.required,attributeUuid:t,conceptLoading:"concept"===$.source},d=J.length,V((function(e){var t=y(e).concat([s]);return re(t),t})),"concept"===$.source&&($.conceptUuid||$.conceptName)&&setTimeout((function(){var e=!$.conceptUuid.trim()&&!!$.conceptName.trim(),t=e?$.conceptName:$.conceptUuid;!function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];m((function(){var o,r,i,a;return v(this,(function(l){switch(l.label){case 0:return l.trys.push([0,2,,3]),console.log("Loading concept answers for field ".concat(e," with ").concat(n?"name":"UUID",": ").concat(t)),V((function(t){var n=y(t);return n[e]&&(n[e]=b(g({},n[e]),{conceptLoading:!0})),n})),[4,w(t,n)];case 1:return o=l.sent(),console.log("Fetched ".concat(o.length," answers:"),o.map((function(e){return e.display}))),V((function(t){var n=y(t);return n[e]&&(n[e]=b(g({},n[e]),{conceptAnswers:o,conceptLoading:!1})),n})),o.length>0?(console.log("✅ Successfully loaded ".concat(o.length," concept answers")),E({title:"Success",kind:"success",description:"Loaded ".concat(o.length," options from concept dictionary")})):(console.warn("No concept answers found, using fallback options"),[],i=J[e],r=i&&(i.label.toLowerCase().includes("blood")||i.label.toLowerCase().includes("group"))?[{uuid:"fallback-1",display:"A+"},{uuid:"fallback-2",display:"A-"},{uuid:"fallback-3",display:"B+"},{uuid:"fallback-4",display:"B-"},{uuid:"fallback-5",display:"AB+"},{uuid:"fallback-6",display:"AB-"},{uuid:"fallback-7",display:"O+"},{uuid:"fallback-8",display:"O-"}]:[{uuid:"fallback-1",display:"Option 1"},{uuid:"fallback-2",display:"Option 2"},{uuid:"fallback-3",display:"Option 3"}],V((function(t){var n=y(t);return n[e]&&(n[e]=b(g({},n[e]),{conceptAnswers:r,conceptLoading:!1})),n})),E({title:"Warning",kind:"warning",description:"Using fallback options (concept not loaded)"})),[3,3];case 2:return a=l.sent(),console.error("Error loading concept answers:",a),V((function(t){var n=y(t);return n[e]&&(n[e]=b(g({},n[e]),{conceptLoading:!1})),n})),E({title:"Error",kind:"error",description:"Failed to load concept options"}),[3,3];case 3:return[2]}}))}))()}(d,t,e)}),100),console.log("=== NEW FIELD ADDED ==="),console.log('Field: "'.concat($.label,'"')),console.log("Type: ".concat($.inputType)),console.log("Source: ".concat($.source)),"concept"===$.source&&(console.log("Concept UUID: ".concat($.conceptUuid||"Not provided")),console.log("Concept Name: ".concat($.conceptName||"Not provided"))),console.log("======================"),ee({label:"",inputType:"textbox",value:"",options:"",source:"fixed",tableName:"",valueColumn:"",displayColumn:"",conceptUuid:"",conceptName:"",required:!1,attributeUuid:null}),X(!1),E({title:"Success",kind:"success",description:"Custom field added to form"}),[2]}var u,f,x}))}))()},style:{flex:1,padding:"8px",backgroundColor:"#28a745",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"13px",fontWeight:"bold"}},"Create Field"))):r().createElement("div",null,r().createElement("button",{type:"button",onClick:function(){return X(!0)},style:{width:"100%",padding:"12px",backgroundColor:"#17a2b8",color:"white",border:"none",borderRadius:"6px",cursor:"pointer",fontSize:"14px",fontWeight:"bold",marginBottom:"15px",display:"flex",alignItems:"center",justifyContent:"center",gap:"8px"}},r().createElement("span",null,"+")," Create New Field"),r().createElement("div",{style:{textAlign:"center",padding:"20px",color:"#6c757d",fontSize:"13px"}},r().createElement("div",{style:{fontSize:"32px",marginBottom:"10px",opacity:.5}},"📋"),"Create custom fields here",r().createElement("div",{style:{fontSize:"11px",marginTop:"10px",color:"#17a2b8"}})))),r().createElement("div",{style:{padding:"15px",borderTop:"1px solid #e0e0e0",backgroundColor:"#f8f9fa"}},r().createElement("div",{style:{fontSize:"12px",color:"#6c757d",textAlign:"center"}},"Created fields will appear in the Custom Fields section"))))}}}]);
1
+ "use strict";(globalThis.webpackChunk_sasindi_patient_registration=globalThis.webpackChunk_sasindi_patient_registration||[]).push([[614],{32606:(e,t,n)=>{n.r(t),n.d(t,{default:()=>k});var o=n(16072),r=n.n(o),i=n(28663),a=n(78465),l=n.n(a),c=n(16405);const s=n.p+"5507d804948ae4a0.png";function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var p=function(e){var t=e.map((function(e){var t="";switch(e.inputType){case"textbox":default:t="text";break;case"dropdown":case"select":t="select";break;case"checkbox":t="checkbox"}var n=[];return"dropdown"!==e.inputType&&"select"!==e.inputType||"fixed"!==e.source||!e.options||(n=e.options.split(",").map((function(e){return{value:e.trim().toLowerCase().replace(/\s+/g,"_"),label:e.trim()}}))),function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),o.forEach((function(t){d(e,t,n[t])}))}return e}({name:e.label.toLowerCase().replace(/[^a-z0-9]/g,"_"),type:t,label:e.label,required:e.required,inputType:e.inputType,source:e.source},e.options&&{rawOptions:e.options},n.length>0&&{options:n},e.tableName&&{tableName:e.tableName},e.valueColumn&&{valueColumn:e.valueColumn},e.displayColumn&&{displayColumn:e.displayColumn},e.conceptUuid&&{conceptUuid:e.conceptUuid},e.conceptName&&{conceptName:e.conceptName},e.attributeUuid&&{attributeUuid:e.attributeUuid})}));return{version:"1.0",lastUpdated:(new Date).toISOString(),fields:t}};function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function m(e,t,n,o,r,i,a){try{var l=e[i](a),c=l.value}catch(e){return void n(e)}l.done?t(c):Promise.resolve(c).then(o,r)}function f(e){return function(){var t=this,n=arguments;return new Promise((function(o,r){var i=e.apply(t,n);function a(e){m(i,o,r,a,l,"next",e)}function l(e){m(i,o,r,a,l,"throw",e)}a(void 0)}))}}function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),o.forEach((function(t){g(e,t,n[t])}))}return e}function x(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})),e}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,r,i=[],a=!0,l=!1;try{for(n=n.call(e);!(a=(o=n.next()).done)&&(i.push(o.value),!t||i.length!==t);a=!0);}catch(e){l=!0,r=e}finally{try{a||null==n.return||n.return()}finally{if(l)throw r}}return i}}(e,t)||v(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||v(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){if(e){if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}function E(e,t){var n,o,r,i={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=l(0),a.throw=l(1),a.return=l(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(l){return function(c){return function(l){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,o&&(r=2&l[0]?o.return:l[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,l[1])).done)return r;switch(o=0,r&&(l=[2&l[0],r.value]),l[0]){case 0:case 1:r=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,o=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!((r=(r=i.trys).length>0&&r[r.length-1])||6!==l[0]&&2!==l[0])){i=0;continue}if(3===l[0]&&(!r||l[1]>r[0]&&l[1]<r[3])){i.label=l[1];break}if(6===l[0]&&i.label<r[1]){i.label=r[1],r=l;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(l);break}r[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],o=0}finally{n=r=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,c])}}}var S=function(e){var t=new Date,n=new Date(e),o=t.getFullYear()-n.getFullYear(),r=t.getMonth()-n.getMonth(),i=t.getDate()-n.getDate();return(r<0||0===r&&i<0)&&(o--,r+=12,i<0&&(i+=new Date(t.getFullYear(),t.getMonth(),0).getDate(),r--)),{years:o,months:r,days:i}},w=function(e){var t=e.title,n=e.kind,o=e.description;l().mixin({toast:!0,position:"top-end",showConfirmButton:!1,timer:3e3,timerProgressBar:!0,didOpen:function(e){e.addEventListener("mouseenter",l().stopTimer),e.addEventListener("mouseleave",l().resumeTimer)}}).fire({icon:"error"===n?"error":"success"===n?"success":"info",title:"".concat(t,": ").concat(o)})},C=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return f((function(){var n,o,r,a,l,c,s,d,p,u,m,f,g,b,x,y;return E(this,(function(h){switch(h.label){case 0:return h.trys.push([0,13,,14]),n=e,t&&e.trim()?[4,(0,i.openmrsFetch)("/ws/rest/v1/concept?q=".concat(encodeURIComponent(e.trim()),"&v=custom:(uuid,display)"))]:[3,2];case 1:if(!((r=h.sent()).ok&&(null===(o=r.data.results)||void 0===o?void 0:o.length)>0))return w({title:"Warning",kind:"warning",description:"Concept not found: ".concat(e)}),[2,[]];n=r.data.results[0].uuid,h.label=2;case 2:a=["/ws/rest/v1/concept/".concat(n,"?v=custom:(uuid,display,setMembers:(uuid,display))"),"/ws/rest/v1/concept/".concat(n,"?v=full"),"/ws/rest/v1/concept/".concat(n,"/members")],l=!0,c=!1,s=void 0,h.label=3;case 3:h.trys.push([3,10,11,12]),d=a[Symbol.iterator](),h.label=4;case 4:if(l=(p=d.next()).done)return[3,9];u=p.value,h.label=5;case 5:return h.trys.push([5,7,,8]),[4,(0,i.openmrsFetch)(u)];case 6:if((m=h.sent()).ok){if((null===(f=m.data.setMembers)||void 0===f?void 0:f.length)>0)return[2,m.data.setMembers.map((function(e){return{uuid:e.uuid,display:e.display}}))];if((null===(g=m.data.answers)||void 0===g?void 0:g.length)>0)return[2,m.data.answers.map((function(e){return{uuid:e.uuid,display:e.display}}))];if((null===(b=m.data.results)||void 0===b?void 0:b.length)>0)return[2,m.data.results.map((function(e){var t,n;return{uuid:(null===(t=e.concept)||void 0===t?void 0:t.uuid)||e.uuid,display:(null===(n=e.concept)||void 0===n?void 0:n.display)||e.display}}))]}return[3,8];case 7:return h.sent(),[3,8];case 8:return l=!0,[3,4];case 9:return[3,12];case 10:return x=h.sent(),c=!0,s=x,[3,12];case 11:try{l||null==d.return||d.return()}finally{if(c)throw s}return[7];case 12:return[2,[]];case 13:return y=h.sent(),console.error("Error fetching concept answers:",y),w({title:"Error",kind:"error",description:"Failed to load concept options"}),[2,[]];case 14:return[2]}}))}))()};const k=function(){var e,t,n,a,d,u,m=(0,i.useSession)(),v=null==m?void 0:m.user,k=(null==v||null===(e=v.privileges)||void 0===e?void 0:e.map((function(e){return"string"==typeof e?e:e.name||e.display})))||[],z=(null==v||null===(t=v.roles)||void 0===t?void 0:t.map((function(e){return"string"==typeof e?e:e.name||e.display})))||[];if(!k.includes("S_PatientRegistration")&&!z.includes("System Developer"))return r().createElement("div",{style:{padding:"25px",textAlign:"center",color:"#721c24",backgroundColor:"#f8d7da",border:"1px solid #f5c6cb",borderRadius:"5px",margin:"20px"}},r().createElement("h2",null,"Access Denied"),r().createElement("p",null,"You do not have the required privilege (",r().createElement("strong",null,"S_PatientRegistration"),") to view this page."),r().createElement("p",null,"Please contact your system administrator."));var N=y((0,o.useState)({existingPHN:"",unknownPatient:!1,babyOf:!1,title:"",givenName:"",familyName:"",nicNo:"",dateOfBirth:"",ageYears:"",ageMonths:"",ageDays:"",gender:"Male",telephoneResidence:"",telephoneMobile:"",guardianName:"",guardianRelationship:"",guardianContactNo:"",profileImage:null,address1:"",address2:"",city:"",postalCode:"",district:"",dsOffice:"",gnDivision:""}),2),O=N[0],B=N[1],R=y((0,o.useState)([]),2),T=R[0],D=R[1],A=y((0,o.useState)([]),2),I=A[0],P=A[1],F=y((0,o.useState)(!1),2),j=F[0],W=F[1],M=y((0,o.useState)(!0),2),U=M[0],L=M[1],G=y((0,o.useState)(null),2),_=G[0],q=G[1],Y=y((0,o.useState)(""),2),H=Y[0],J=Y[1],V=y((0,o.useState)(!1),2),K=V[0],X=V[1],$=y((0,o.useState)("POI"),2),Q=$[0],Z=$[1],ee=y((0,o.useState)([]),2),te=ee[0],ne=ee[1],oe=y((0,o.useState)([]),2),re=oe[0],ie=oe[1],ae=y((0,o.useState)([]),2),le=ae[0],ce=ae[1],se=y((0,o.useState)([]),2),de=se[0],pe=se[1],ue=y((0,o.useState)(!1),2),me=ue[0],fe=ue[1],ge=y((0,o.useState)({label:"",inputType:"textbox",value:"",options:"",source:"fixed",tableName:"",valueColumn:"",displayColumn:"",conceptUuid:"",conceptName:"",required:!1,attributeUuid:null}),2),be=ge[0],xe=ge[1];(0,o.useEffect)((function(){console.log("Custom fields updated:",de.length,"fields"),de.forEach((function(e,t){var n;"concept"===e.source&&console.log("Field ".concat(t," (").concat(e.label,"):"),{conceptAnswers:(null===(n=e.conceptAnswers)||void 0===n?void 0:n.length)||0,conceptLoading:e.conceptLoading,value:e.value})}))}),[de]),(0,o.useEffect)((function(){f((function(){var e,t,n,o,r,a,l,c,s,d,p,u;return E(this,(function(f){switch(f.label){case 0:if(f.trys.push([0,11,12,13]),L(!0),q(null),!(null==m||null===(e=m.sessionLocation)||void 0===e?void 0:e.uuid))return[3,4];J(m.sessionLocation.uuid),f.label=1;case 1:return f.trys.push([1,3,,4]),[4,(0,i.openmrsFetch)("/ws/rest/v1/location/".concat(m.sessionLocation.uuid,"?v=custom:(uuid,display,address11)"))];case 2:return(null==(n=f.sent())||null===(t=n.data)||void 0===t?void 0:t.address11)&&(o=n.data.address11.split(",").map((function(e){return e.trim()}))).length>0&&o[0]&&Z(o[0]),[3,4];case 3:return r=f.sent(),console.error("Error fetching location POI:",r),[3,4];case 4:return[4,(0,i.openmrsFetch)("/ws/rest/v1/personattributetype?v=custom:(uuid,display,format)&limit=100")];case 5:return a=f.sent(),l=a.data.results||[],D(l),[4,(0,i.openmrsFetch)("/ws/rest/v1/patientidentifiertype?v=custom:(uuid,display)&limit=100")];case 6:c=f.sent(),s=c.data.results||[],P(s),f.label=7;case 7:return f.trys.push([7,9,,10]),console.log("Fetching districts from: /ws/rest/v1/patientregistration/getDistrictsList"),[4,(0,i.openmrsFetch)("/ws/rest/v1/patientregistration/getDistrictsList")];case 8:return d=f.sent(),console.log("Districts API response:",d),d.ok&&Array.isArray(d.data)?(console.log("Loaded ".concat(d.data.length," districts")),ne(d.data)):(console.error("Districts API returned invalid data or error:",d.data),ne([])),[3,10];case 9:return p=f.sent(),console.error("Failed to fetch districts list",p),ne([]),[3,10];case 10:return[3,13];case 11:return u=f.sent(),console.error("Error fetching data:",u),q(u),w({title:"Error",kind:"error",description:"Failed to load form data. Please try again."}),[3,13];case 12:return L(!1),[7];case 13:return[2]}}))}))()}),[m]);var ye=function(e){var t=e.target,n=t.name,o=t.value,r=t.type,a=e.target.checked,l=null;if("nicNo"===n&&o){var c=function(e){var t="",n=0,o="";if(10===(e=e.trim().toUpperCase()).length&&/^[0-9]{9}[V|X]$/.test(e))t="19"+e.substring(0,2),n=parseInt(e.substring(2,5),10);else{if(12!==e.length||!/^[0-9]{12}$/.test(e))return null;t=e.substring(0,4),n=parseInt(e.substring(4,7),10)}if(n>500?(o="Female",n-=500):o="Male",n<1||n>366)return null;var r=new Date(parseInt(t,10),0);r.setDate(n);var i=r.getFullYear(),a=String(r.getMonth()+1).padStart(2,"0"),l=String(r.getDate()).padStart(2,"0");return{year:t,dayOfYear:n,gender:o,dateOfBirth:"".concat(i,"-").concat(a,"-").concat(l)}}(o);if(c){var s=S(c.dateOfBirth),d=s.years,p=s.months,u=s.days;l={gender:c.gender,dateOfBirth:c.dateOfBirth,ageYears:d.toString(),ageMonths:p.toString(),ageDays:u.toString()},w({title:"Auto-populated",kind:"success",description:"Gender, Date of Birth, and Age extracted from NIC"})}}B((function(e){var t=x(b({},e),g({},n,"checkbox"===r?a:o));if(l&&(t=b({},t,l)),"dateOfBirth"===n&&o){var c=S(o),s=c.years,d=c.months,p=c.days;t.ageYears=s.toString(),t.ageMonths=d.toString(),t.ageDays=p.toString()}else"dateOfBirth"!==n||o||(t.ageYears="",t.ageMonths="",t.ageDays="");return"district"===n?(t.dsOffice="",t.gnDivision="",ce([]),o?(0,i.openmrsFetch)("/ws/rest/v1/patientregistration/getDsList?districtId=".concat(o)).then((function(e){e.ok&&Array.isArray(e.data)?ie(e.data):(console.error("DS list API returned invalid data",e.data),ie([]))})).catch((function(e){console.error("Failed to fetch DS list",e),ie([])})):ie([])):"dsOffice"===n&&(t.gnDivision="",o?(0,i.openmrsFetch)("/ws/rest/v1/patientregistration/getGnList?dsOfficeId=".concat(o)).then((function(e){e.ok&&Array.isArray(e.data)?ce(e.data):(console.error("GN list API returned invalid data",e.data),ce([]))})).catch((function(e){console.error("Failed to fetch GN list",e),ce([])})):ce([])),t}))},he=function(e,t){pe((function(n){var o=h(n);return o[e]&&(o[e]=x(b({},o[e]),{value:t})),o}))},ve=function(e){var t=e.target,n=t.name,o=t.value,r=t.type,i=e.target.checked;xe((function(e){var t=x(b({},e),g({},n,"checkbox"===r?i:o));return"inputType"===n&&("dropdown"===o||"select"===o?t.source=e.source||"fixed":(t.source="fixed",t.options="",t.tableName="",t.valueColumn="",t.displayColumn="",t.conceptUuid="",t.conceptName="")),"source"===n&&("fixed"===o?(t.tableName="",t.valueColumn="",t.displayColumn="",t.conceptUuid="",t.conceptName=""):"database"===o?(t.options="",t.conceptUuid="",t.conceptName=""):"concept"===o&&(t.options="",t.tableName="",t.valueColumn="",t.displayColumn="")),"conceptUuid"===n&&o.trim()&&(t.conceptName=""),"conceptName"===n&&o.trim()&&(t.conceptUuid=""),t}))},Ee=function(e){return f((function(){var t,n,o,r;return E(this,(function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),t=p(e),n={property:"patientRegistration.dynamicFields",value:JSON.stringify(t)},[4,(0,i.openmrsFetch)("/ws/rest/v1/systemsetting",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)})];case 1:return(o=a.sent()).ok?console.log("✅ Configuration saved to System Settings"):console.error("❌ Failed to save configuration to System Settings:",o.statusText),[3,3];case 2:return r=a.sent(),console.error("❌ Error saving configuration to System Settings:",r),[3,3];case 3:return[2]}}))}))()},Se=function(){var e,t=[];if(Object.entries({title:"Title",telephoneResidence:"Telephone Number",telephoneMobile:"Mobile Phone",nicNo:"NIC",guardianName:"Guardian Name",guardianRelationship:"Guardian Relationship",guardianContactNo:"Guardian Contact",district:"District",dsOffice:"DS Office",gnDivision:"GN Division"}).forEach((function(e){var n=y(e,2),o=n[0],r=n[1],i=O[o];if(i){var a=T.find((function(e){return e.display.toLowerCase()===r.toLowerCase()}));a&&t.push({attributeType:a.uuid,value:i.toString()})}})),null==m||null===(e=m.sessionLocation)||void 0===e?void 0:e.uuid){var n=T.find((function(e){return"registration location"===e.display.toLowerCase()}));n?t.push({attributeType:n.uuid,value:m.sessionLocation.uuid}):console.warn('Could not find attribute type for "Registration Location"')}return de.forEach((function(e){e.value&&""!==e.value.toString().trim()&&e.attributeUuid&&t.push({attributeType:e.attributeUuid,value:e.value.toString()})})),t.length>0?t:void 0},we=function(){X(!K)};return U?r().createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh",backgroundColor:"#f5f5f5"}},r().createElement("div",{style:{textAlign:"center",padding:"30px",backgroundColor:"white",borderRadius:"8px",boxShadow:"0 2px 10px rgba(0,0,0,0.1)"}},r().createElement("div",{className:"spinner-border text-primary",role:"status",style:{width:"3rem",height:"3rem"}},r().createElement("span",{className:"sr-only"},"Loading...")),r().createElement("h3",{style:{marginTop:"20px",color:"#333"}},"Loading form data..."))):_?r().createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh",backgroundColor:"#f5f5f5"}},r().createElement("div",{style:{textAlign:"center",padding:"30px",backgroundColor:"white",borderRadius:"8px",boxShadow:"0 2px 10px rgba(0,0,0,0.1)",maxWidth:"500px"}},r().createElement("div",{style:{fontSize:"48px",color:"#dc3545",marginBottom:"20px"}},"⚠️"),r().createElement("h3",{style:{color:"#dc3545",marginBottom:"15px"}},"Error Loading Form Data"),r().createElement("p",{style:{color:"#666",marginBottom:"20px"}},_.message||"An unknown error occurred"),r().createElement("button",{onClick:function(){return window.location.reload()},style:{padding:"10px 20px",backgroundColor:"#007bff",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"13px"}},"Try Again"))):r().createElement("div",{style:{display:"flex",minHeight:"100vh",backgroundColor:"#f5f5f5"}},r().createElement("div",{style:{flex:1,padding:"12px",marginRight:K?"350px":"0",transition:"margin-right 0.3s ease",backgroundColor:"#f5f5f5"}},r().createElement("div",{style:{width:"100%"}},r().createElement("form",{onSubmit:function(e){return f((function(){var t,n,o,r,a,c,d,u,m,g,b,x,h,v,S,C,k,z,N,R,T;return E(this,(function(D){switch(D.label){case 0:if(e.preventDefault(),W(!0),!O.givenName||!O.familyName)return w({title:"Error",kind:"error",description:"Given name and family name are required"}),W(!1),[2];if(!O.dateOfBirth)return w({title:"Error",kind:"error",description:"Date of birth is required"}),W(!1),[2];if(!H)return w({title:"Error",kind:"error",description:"User location is not available"}),W(!1),[2];D.label=1;case 1:if(D.trys.push([1,15,16,17]),l().fire({title:"Registering Patient",html:"Please wait...",allowOutsideClick:!1,showConfirmButton:!1,didOpen:function(){l().showLoading()}}),n=O.existingPHN||(A=Q,P=function(e,t){for(var n="",o=0;o<6;o++)n+=t.charAt(Math.floor(24*Math.random()));return n}(0,"2346789BCDFGHJKMPQRTVWXY"),F=function(e){e=e.toUpperCase().trim();for(var t=0,n=0;n<e.length;n++){var o=e.charAt(e.length-n-1);if("0123456789ABCDEFGHIJKLMNOPQRSTUVYWXZ_".indexOf(o)<0)return alert("Invalid character(s) found!"),!1;var r=o.charCodeAt(0)-48;t+=n%2==0?2*r-9*parseInt(r/5):r}return(10-(t=Math.abs(t)+10)%10)%10}(A+P),"".concat(A).concat(P).concat(F)),o="".concat(O.title?O.title+" ":"").concat(O.givenName," ").concat(O.familyName),r=O.dateOfBirth,!(a=I.find((function(e){return"openmrs id"===e.display.toLowerCase()}))))throw new Error('Identifier Type "OpenMRS ID" not found. Please verify your system configuration.');return c={identifiers:[{identifier:n,identifierType:a.uuid,location:H,preferred:!0}],person:{gender:"Male"===O.gender?"M":"Female"===O.gender?"F":"O",age:parseInt(O.ageYears)||0,birthdate:r,names:[{givenName:O.givenName,familyName:O.familyName}],attributes:Se(),addresses:[{address1:O.address1,address2:O.address2,cityVillage:O.city,postalCode:O.postalCode}]}},[4,(0,i.openmrsFetch)("/ws/rest/v1/patient",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)})];case 2:return(d=D.sent()).ok?[3,4]:[4,d.json()];case 3:throw x=D.sent(),console.error("Detailed Server Error:",x),h=(null===(u=x.error)||void 0===u?void 0:u.message)||"Patient creation failed",(null===(m=x.error)||void 0===m?void 0:m.fieldErrors)&&(v=Object.entries(x.error.fieldErrors).map((function(e){var t=y(e,2),n=t[0],o=t[1];return"".concat(n,": ").concat(o.map((function(e){return e.message})).join(", "))})).join(" | "),v&&(h+=" (".concat(v,")"))),(null===(b=x.error)||void 0===b||null===(g=b.globalErrors)||void 0===g?void 0:g.length)&&(h+=" | Global: ".concat(x.error.globalErrors.map((function(e){return e.message})).join(", "))),new Error(h);case 4:return[4,d.json()];case 5:if(S=D.sent(),!(null===(t=O.profileImage)||void 0===t?void 0:t.file))return[3,9];D.label=6;case 6:return D.trys.push([6,8,,9]),[4,(j=S.uuid,M=O.profileImage.file,f((function(){var e,t,n,o;return E(this,(function(r){switch(r.label){case 0:return(e=new FormData).append("json",JSON.stringify({person:j,concept:"736e8771-e501-4615-bfa7-570c03f4bef5",obsDatetime:(new Date).toISOString(),groupMembers:[]})),e.append("file",M),[4,fetch("/openmrs/ws/rest/v1/obs",{method:"POST",credentials:"include",body:e})];case 1:return(t=r.sent()).ok?[3,3]:[4,t.json()];case 2:throw o=r.sent(),new Error((null===(n=o.error)||void 0===n?void 0:n.message)||"Failed to save photo");case 3:return[2,t.json()]}}))}))())];case 7:return D.sent(),console.log("Photo saved successfully!"),[3,9];case 8:return C=D.sent(),console.error("Photo upload failed:",C),w({title:"Warning",kind:"info",description:"Patient saved but photo upload failed."}),[3,9];case 9:if(l().close(),!(de.length>0))return[3,13];k=function(e){var t=p(e);return console.log("=== FIELD CONFIGURATION (Structure Only) ==="),console.log("// field-config.ts"),console.log("export const dynamicFieldsConfig = "),console.log(JSON.stringify(t,null,2)+";"),console.log("============================================"),t}(de),D.label=10;case 10:return D.trys.push([10,12,,13]),[4,(0,i.openmrsFetch)("/ws/rest/v1/systemsetting",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({property:"patientRegistration.dynamicFields",value:JSON.stringify(k)})})];case 11:return z=D.sent(),console.log("Configuration saved to system settings:",z),[3,13];case 12:return N=D.sent(),console.error("Error saving system setting:",N),[3,13];case 13:return[4,l().fire({icon:"success",title:"Registration Successful!",html:"Patient registered successfully!<br><br>\n <strong>PHN:</strong> ".concat(n),showCancelButton:!0,confirmButtonColor:"#28a745",cancelButtonColor:"#007bff",confirmButtonText:"OK",cancelButtonText:"Print PHN Card"})];case 14:return D.sent().dismiss===l().DismissReason.cancel&&(null===(R=O.profileImage)||void 0===R||R.preview,function(e,t){var n=window.open("","_blank");if(n){var o="\n <!DOCTYPE html>\n <html>\n <head>\n <title>PHN Card</title>\n <style>\n @page {\n size: 85.6mm 53.98mm;\n margin: 0;\n }\n body {\n margin: 0;\n padding: 0;\n width: 85.6mm;\n height: 53.98mm;\n font-family: Arial, sans-serif;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n }\n .card-container {\n width: 100%;\n height: 100%;\n position: relative;\n box-sizing: border-box;\n border: 1px solid #000;\n border-radius: 20px;\n padding: 2px 10px;\n overflow: hidden;\n }\n .demo-wrap:before {\n content: ' ';\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n opacity: 0.1;\n background-image: url('".concat(s,'\');\n background-repeat: no-repeat;\n background-position: center;\n background-size: auto 80px;\n }\n .card-content {\n display: flex;\n height: 100%;\n align-items: center;\n }\n .left-section {\n width: 20%;\n display: flex;\n justify-content: center;\n align-items: flex-start;\n }\n .gov-logo {\n width: 100%;\n max-width: 45px;\n padding: 5px;\n }\n .right-section {\n width: 80%;\n padding-left: 10px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n .institute-name {\n text-decoration: underline;\n font-weight: 900;\n color: black;\n font-size: 11px;\n margin: 0 0 5px 0;\n }\n .patient-info {\n margin: 0 0 2px 0;\n font-size: 13px;\n }\n .patient-info b {\n font-weight: bold;\n }\n .barcode-container {\n display: flex;\n justify-content: center;\n margin: 2px 0;\n }\n .barcode {\n width: 100%;\n max-width: 150px;\n height: 40px;\n }\n .footer-text {\n margin: 2px 0 0 0;\n font-size: 7px;\n text-align: center;\n font-weight: bold;\n }\n </style>\n </head>\n <body>\n <div class="card-container demo-wrap">\n <div class="card-content">\n <div class="left-section">\n <img src="https://i.ibb.co/frDqNL5/govlogo.png" alt="Gov Logo" class="gov-logo">\n </div>\n <div class="right-section">\n <h3 class="institute-name">').concat(Q||"-",'</h3>\n <p class="patient-info"><b>Name : </b><span>').concat(t,'</span></p>\n <p class="patient-info"><b>PHN : </b><span>').concat(e,'</span></p>\n \n <div class="barcode-container">\n <svg id="barcode"></svg>\n </div>\n\n <p class="footer-text">Bring this card with you on every visit to the Hospital</p>\n </div>\n </div>\n </div>\n <script src="https://cdnjs.cloudflare.com/ajax/libs/jsbarcode/3.11.5/JsBarcode.all.min.js"><\/script>\n <script>\n window.onload = function() {\n JsBarcode("#barcode", "').concat(e,'", {\n format: "CODE128",\n width: 1.2,\n height: 35,\n displayValue: false,\n margin: 0\n });\n setTimeout(function() {\n window.print();\n setTimeout(function() {\n window.close();\n }, 300);\n }, 500);\n }\n <\/script>\n </body>\n </html>\n ');n.document.open(),n.document.write(o),n.document.close()}else console.error("Failed to open print window")}(n,o)),B({existingPHN:"",unknownPatient:!1,babyOf:!1,title:"",givenName:"",familyName:"",nicNo:"",dateOfBirth:"",ageYears:"",ageMonths:"",ageDays:"",gender:"Male",telephoneResidence:"",telephoneMobile:"",guardianName:"",guardianRelationship:"",guardianContactNo:"",profileImage:null,address1:"",address2:"",city:"",postalCode:"",district:"",dsOffice:"",gnDivision:""}),pe([]),[3,17];case 15:return T=D.sent(),console.error("Registration error:",T),l().fire({icon:"error",title:"Registration Failed",text:T.message||"An error occurred",confirmButtonColor:"#dc3545",confirmButtonText:"OK"}),[3,17];case 16:return W(!1),[7];case 17:return[2]}var A,P,F,j,M}))}))()},style:{backgroundColor:"#ffffff",padding:"25px",borderRadius:"8px",boxShadow:"0 2px 10px rgba(0,0,0,0.1)"}},r().createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",borderBottom:"2px solid #28a745",marginBottom:"15px",paddingBottom:"15px"}},r().createElement("h2",{style:{color:"#28a745",margin:0,fontSize:"24px",fontWeight:"bold"}},"Register Patient"),r().createElement("button",{onClick:we,style:{padding:"10px 20px",backgroundColor:K?"#6c757d":"#007bff",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"13px",fontWeight:"bold",display:"flex",alignItems:"center",gap:"8px",boxShadow:"0 2px 5px rgba(0,0,0,0.2)",transition:"all 0.3s ease"},type:"button",title:K?"Close Custom Fields":"Open Custom Fields"},K?"← Close":"Create Fields →")),r().createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"12px",marginBottom:"15px",paddingBottom:"20px",borderBottom:"1px solid #eee"}},r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Existing PHN"),r().createElement("input",{type:"text",name:"existingPHN",value:O.existingPHN,onChange:ye,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"},placeholder:"Enter existing PHN if patient has one"})),r().createElement("div",{style:{display:"flex",gap:"12px",alignItems:"flex-end",paddingBottom:"10px",gridColumn:"span 3"}},r().createElement("label",{style:{display:"flex",alignItems:"center",fontWeight:"bold",color:"#333",fontSize:"13px",cursor:"pointer"}},r().createElement("input",{type:"checkbox",name:"unknownPatient",checked:O.unknownPatient,onChange:ye,style:{marginRight:"8px",transform:"scale(1.2)"}}),"Unknown Patient"),r().createElement("label",{style:{display:"flex",alignItems:"center",fontWeight:"bold",color:"#333",fontSize:"13px",cursor:"pointer"}},r().createElement("input",{type:"checkbox",name:"babyOf",checked:O.babyOf,onChange:ye,style:{marginRight:"8px",transform:"scale(1.2)"}}),"Baby Of"))),r().createElement("h3",{style:{color:"#28a745",marginBottom:"10px",fontSize:"18px",fontWeight:"bold",borderBottom:"2px solid #28a745",paddingBottom:"10px"}},"Basic Information"),r().createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"12px",marginBottom:"15px"}},r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Title"),r().createElement("select",{name:"title",value:O.title,onChange:ye,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"}},r().createElement("option",{value:""},"--Select--"),r().createElement("option",{value:"Mr"},"Mr"),r().createElement("option",{value:"Mrs"},"Mrs"),r().createElement("option",{value:"Miss"},"Miss"),r().createElement("option",{value:"Rev"},"Rev"),r().createElement("option",{value:"Master"},"Master"),r().createElement("option",{value:"Baby"},"Baby"))),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"NIC No"),r().createElement("input",{type:"text",name:"nicNo",value:O.nicNo,onChange:ye,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"},placeholder:"Enter NIC number"})),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Given Name ",r().createElement("span",{style:{color:"#dc3545"}},"*")),r().createElement("input",{type:"text",name:"givenName",value:O.givenName,onChange:ye,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"},placeholder:"Enter given name",required:!0})),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Family Name ",r().createElement("span",{style:{color:"#dc3545"}},"*")),r().createElement("input",{type:"text",name:"familyName",value:O.familyName,onChange:ye,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"},placeholder:"Enter family name",required:!0}))),r().createElement("h3",{style:{color:"#28a745",marginBottom:"10px",fontSize:"18px",fontWeight:"bold",borderBottom:"2px solid #28a745",paddingBottom:"10px"}},"Personal Details"),r().createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"12px",marginBottom:"15px"}},r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Date Of Birth ",r().createElement("span",{style:{color:"#dc3545"}},"*")),r().createElement("input",{type:"date",name:"dateOfBirth",value:O.dateOfBirth,onChange:ye,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"},required:!0})),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Gender"),r().createElement("select",{name:"gender",value:O.gender,onChange:ye,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"}},r().createElement("option",{value:"Male"},"Male"),r().createElement("option",{value:"Female"},"Female"),r().createElement("option",{value:"Other"},"Other"))),r().createElement("div",{style:{gridColumn:"span 1"}},r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Age"),r().createElement("div",{style:{display:"flex",gap:"10px",alignItems:"center"}},r().createElement("div",{style:{flex:1}},r().createElement("input",{type:"number",name:"ageYears",value:O.ageYears,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box",backgroundColor:"#f0f0f0",cursor:"not-allowed"},placeholder:"Years",readOnly:!0}),r().createElement("div",{style:{fontSize:"11px",color:"#666",textAlign:"center"}},"Years")),r().createElement("div",{style:{flex:1}},r().createElement("input",{type:"number",name:"ageMonths",value:O.ageMonths,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box",backgroundColor:"#f0f0f0",cursor:"not-allowed"},placeholder:"Months",readOnly:!0}),r().createElement("div",{style:{fontSize:"11px",color:"#666",textAlign:"center"}},"Months")),r().createElement("div",{style:{flex:1}},r().createElement("input",{type:"number",name:"ageDays",value:O.ageDays,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box",backgroundColor:"#f0f0f0",cursor:"not-allowed"},placeholder:"Days",readOnly:!0}),r().createElement("div",{style:{fontSize:"11px",color:"#666",textAlign:"center"}},"Days")))),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Profile Image"),r().createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},r().createElement("div",{style:{width:"70px",height:"70px",border:"1px solid #ccc",borderRadius:"8px",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",backgroundColor:"#f9f9f9",flexShrink:0}},(null===(n=O.profileImage)||void 0===n?void 0:n.preview)?r().createElement("img",{src:O.profileImage.preview,alt:"Profile preview",style:{width:"100%",height:"100%",objectFit:"cover"}}):r().createElement("div",{style:{fontSize:"40px",color:"#ccc"}},"📷")),r().createElement("div",{style:{flex:1}},r().createElement("input",{type:"file",accept:"image/*",onChange:function(e){var t,n=null===(t=e.target.files)||void 0===t?void 0:t[0];if(n){if(n.size>2097152)return void w({title:"Error",kind:"error",description:"Image size should be less than 2MB"});var o=new FileReader;o.onload=function(e){B((function(t){var o;return x(b({},t),{profileImage:{file:n,preview:null===(o=e.target)||void 0===o?void 0:o.result}})}))},o.readAsDataURL(n)}},style:{display:"none"},id:"profile-image-upload"}),r().createElement("label",{htmlFor:"profile-image-upload",style:{display:"inline-block",padding:"8px 16px",backgroundColor:"#007bff",color:"white",borderRadius:"4px",cursor:"pointer",fontSize:"12px",fontWeight:"bold"}},"Choose Image"))))),r().createElement("h3",{style:{color:"#28a745",marginBottom:"10px",fontSize:"18px",fontWeight:"bold",borderBottom:"2px solid #28a745",paddingBottom:"10px"}},"Contact Information"),r().createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"12px",marginBottom:"15px"}},r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Telephone (Residence)"),r().createElement("input",{type:"tel",name:"telephoneResidence",value:O.telephoneResidence,onChange:ye,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"},placeholder:"Enter residence phone"})),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Telephone (Mobile)"),r().createElement("input",{type:"tel",name:"telephoneMobile",value:O.telephoneMobile,onChange:ye,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"},placeholder:"Enter mobile phone"}))),r().createElement("h3",{style:{color:"#28a745",marginBottom:"10px",fontSize:"18px",fontWeight:"bold",borderBottom:"2px solid #28a745",paddingBottom:"10px"}},"Address Information"),r().createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"12px",marginBottom:"15px"}},r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Address Line 1"),r().createElement("input",{type:"text",name:"address1",value:O.address1,onChange:ye,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"},placeholder:"Enter address line 1"})),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Address Line 2"),r().createElement("input",{type:"text",name:"address2",value:O.address2,onChange:ye,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"},placeholder:"Enter address line 2"})),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"City"),r().createElement("input",{type:"text",name:"city",value:O.city,onChange:ye,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"},placeholder:"Enter city"})),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Postal Code"),r().createElement("input",{type:"text",name:"postalCode",value:O.postalCode,onChange:ye,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"},placeholder:"Enter postal code"})),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"District"),r().createElement("div",{style:{fontSize:"13px"}},r().createElement(c.Ay,{name:"district",value:Array.isArray(te)&&te.find((function(e){return e.location_id===O.district}))?{value:O.district,label:null===(a=te.find((function(e){return e.location_id===O.district})))||void 0===a?void 0:a.name}:null,onChange:function(e){return ye({target:{name:"district",value:e?e.value:""}})},options:Array.isArray(te)?te.map((function(e){return{value:e.location_id,label:e.name}})):[],isClearable:!0,isSearchable:!0,placeholder:"--Select--",styles:{control:function(e){return x(b({},e),{minHeight:"34px",borderColor:"#ccc"})},valueContainer:function(e){return x(b({},e),{padding:"2px 8px"})}}}))),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"DS Office"),r().createElement("div",{style:{fontSize:"13px"}},r().createElement(c.Ay,{name:"dsOffice",value:Array.isArray(re)&&re.find((function(e){return e.location_id===O.dsOffice}))?{value:O.dsOffice,label:null===(d=re.find((function(e){return e.location_id===O.dsOffice})))||void 0===d?void 0:d.name}:null,onChange:function(e){return ye({target:{name:"dsOffice",value:e?e.value:""}})},options:Array.isArray(re)?re.map((function(e){return{value:e.location_id,label:e.name}})):[],isClearable:!0,isSearchable:!0,placeholder:"--Select--",isDisabled:!O.district||!Array.isArray(re)||0===re.length,styles:{control:function(e){return x(b({},e),{minHeight:"34px",borderColor:"#ccc"})},valueContainer:function(e){return x(b({},e),{padding:"2px 8px"})}}}))),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"GN Division"),r().createElement("div",{style:{fontSize:"13px"}},r().createElement(c.Ay,{name:"gnDivision",value:Array.isArray(le)&&le.find((function(e){return e.location_id===O.gnDivision}))?{value:O.gnDivision,label:null===(u=le.find((function(e){return e.location_id===O.gnDivision})))||void 0===u?void 0:u.name}:null,onChange:function(e){return ye({target:{name:"gnDivision",value:e?e.value:""}})},options:Array.isArray(le)?le.map((function(e){return{value:e.location_id,label:e.name}})):[],isClearable:!0,isSearchable:!0,placeholder:"--Select--",isDisabled:!O.dsOffice||!Array.isArray(le)||0===le.length,styles:{control:function(e){return x(b({},e),{minHeight:"34px",borderColor:"#ccc"})},valueContainer:function(e){return x(b({},e),{padding:"2px 8px"})}}})))),r().createElement("h3",{style:{color:"#28a745",marginBottom:"10px",fontSize:"18px",fontWeight:"bold",borderBottom:"2px solid #28a745",paddingBottom:"10px"}},"Guardian Information"),r().createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"12px",marginBottom:"15px"}},r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Guardian Name"),r().createElement("input",{type:"text",name:"guardianName",value:O.guardianName,onChange:ye,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"},placeholder:"Enter guardian name"})),r().createElement("div",null,r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Guardian Relationship"),r().createElement("select",{name:"guardianRelationship",value:O.guardianRelationship,onChange:ye,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"}},r().createElement("option",{value:""},"--Select--"),r().createElement("option",{value:"Father"},"Father"),r().createElement("option",{value:"Mother"},"Mother"),r().createElement("option",{value:"Spouse"},"Spouse"),r().createElement("option",{value:"Sibling"},"Sibling"),r().createElement("option",{value:"Guardian"},"Guardian"),r().createElement("option",{value:"Other"},"Other"))),r().createElement("div",{style:{gridColumn:"span 1"}}," ",r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Guardian Contact No"),r().createElement("input",{type:"tel",name:"guardianContactNo",value:O.guardianContactNo,onChange:ye,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"},placeholder:"Enter guardian contact number"}))),de.length>0&&r().createElement("div",{style:{marginBottom:"40px"}},r().createElement("h3",{style:{color:"#28a745",marginBottom:"10px",fontSize:"18px",fontWeight:"bold",borderBottom:"2px solid #28a745",paddingBottom:"10px"}},"Additional Information"),r().createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"12px"}},de.map((function(e,t){return r().createElement("div",{key:e.id,style:{backgroundColor:"#f9f9f9",padding:"12px",borderRadius:"8px",border:"1px solid #eee",position:"relative"}},r().createElement("button",{type:"button",onClick:function(){return function(e){pe((function(t){var n=h(t);return n.splice(e,1),Ee(n),n}))}(t)},style:{position:"absolute",top:"10px",right:"10px",background:"none",border:"none",color:"#dc3545",cursor:"pointer",fontSize:"18px",padding:"0",lineHeight:"1"},title:"Remove field"},"×"),r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"13px"}},e.label,e.required&&r().createElement("span",{style:{color:"#dc3545",marginLeft:"4px"}},"*")),r().createElement("div",{style:{marginTop:"10px"}},function(e,t){switch(e.inputType){case"textbox":return r().createElement("input",{type:"text",value:e.value,onChange:function(e){return he(t,e.target.value)},placeholder:"Enter ".concat(e.label),required:e.required,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"}});case"checkbox":return r().createElement("label",{style:{display:"flex",alignItems:"center",cursor:"pointer",marginTop:"10px"}},r().createElement("input",{type:"checkbox",checked:e.value,onChange:function(e){return he(t,e.target.checked)},style:{marginRight:"8px",transform:"scale(1.2)"}}),r().createElement("span",{style:{fontSize:"14px"}},e.label));case"dropdown":case"select":var n=[],o=e.conceptLoading||!1,i=e.conceptAnswers&&e.conceptAnswers.length>0;return"fixed"===e.source&&e.options?n=e.options.split(",").map((function(e){return{value:e.trim(),label:e.trim()}})):"concept"===e.source&&(e.conceptUuid||e.conceptName)?i?(console.log("Rendering dropdown for ".concat(e.label," with ").concat(e.conceptAnswers.length," options")),n=e.conceptAnswers.map((function(e){return{value:e.display,label:e.display}})),o=!1):(o=!0,n=[{value:"",label:e.conceptLoading?"Loading options...":"No options available"}]):n="database"===e.source?[{value:"option1",label:"Sample Option 1"},{value:"option2",label:"Sample Option 2"},{value:"option3",label:"Sample Option 3"}]:[],r().createElement("div",null,r().createElement("select",{value:e.value,onChange:function(e){return he(t,e.target.value)},required:e.required,disabled:o,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box",backgroundColor:o?"#f8f9fa":"white"}},r().createElement("option",{value:""},"Select ",e.label),n.map((function(e,t){return r().createElement("option",{key:t,value:e.value},e.label)}))),o&&r().createElement("div",{style:{fontSize:"11px",color:"#ffc107",marginTop:"5px",fontStyle:"italic"}},"⏳ Loading options..."));default:return null}}(e,t)))})))),r().createElement("div",{style:{display:"flex",justifyContent:"center",gap:"8px",marginTop:"40px",paddingTop:"30px",borderTop:"1px solid #eee",position:"sticky",bottom:"0",backgroundColor:"white"}},r().createElement("button",{type:"button",style:{padding:"12px 40px",backgroundColor:"#007bff",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"13px",fontWeight:"bold",boxShadow:"0 2px 4px rgba(0,0,0,0.1)"},onClick:function(){l().fire({title:"Are you sure?",text:"This will clear all form data, including custom fields.",icon:"warning",showCancelButton:!0,confirmButtonColor:"#3085d6",cancelButtonColor:"#d33",confirmButtonText:"Yes, clear data!"}).then((function(e){e.isConfirmed&&(B({existingPHN:"",unknownPatient:!1,babyOf:!1,title:"",givenName:"",familyName:"",nicNo:"",dateOfBirth:"",ageYears:"",ageMonths:"",ageDays:"",gender:"Male",telephoneResidence:"",telephoneMobile:"",guardianName:"",guardianRelationship:"",guardianContactNo:"",profileImage:null,address1:"",address2:"",city:"",postalCode:"",district:"",dsOffice:"",gnDivision:""}),ie([]),ce([]),pe([]),w({title:"Success",kind:"success",description:"Form data has been cleared"}))}))}},"New"),r().createElement("button",{type:"submit",disabled:j,style:{padding:"12px 40px",backgroundColor:"#28a745",color:"white",border:"none",borderRadius:"4px",cursor:j?"not-allowed":"pointer",fontSize:"13px",fontWeight:"bold",opacity:j?.7:1,boxShadow:"0 2px 4px rgba(0,0,0,0.1)"}},j?"Saving...":"Save"))))),r().createElement("div",{style:{position:"fixed",top:0,right:K?"0":"-350px",width:"350px",height:"100vh",backgroundColor:"#ffffff",boxShadow:"-2px 0 10px rgba(0,0,0,0.1)",zIndex:1e3,transition:"right 0.3s ease",display:"flex",flexDirection:"column"}},r().createElement("div",{style:{padding:"12px",backgroundColor:"#f8f9fa",color:"#333",display:"flex",justifyContent:"space-between",alignItems:"center",borderBottom:"1px solid #e0e0e0"}},r().createElement("h3",{style:{margin:0,fontSize:"18px",fontWeight:"bold",color:"#333"}},"Create Custom Fields"),r().createElement("button",{onClick:we,style:{background:"none",border:"none",color:"#666",fontSize:"20px",cursor:"pointer",padding:"5px"}},"✕")),r().createElement("div",{style:{flex:1,overflowY:"auto",padding:"15px"}},me?r().createElement("div",{style:{backgroundColor:"#f8f9fa",padding:"15px",borderRadius:"6px",border:"1px solid #e0e0e0",marginBottom:"15px"}},r().createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"15px"}},r().createElement("h4",{style:{margin:0,fontSize:"16px",fontWeight:"bold",color:"#333"}},"Create New Field"),r().createElement("button",{onClick:function(){fe(!1),xe({label:"",inputType:"textbox",value:"",options:"",source:"fixed",tableName:"",valueColumn:"",displayColumn:"",conceptUuid:"",conceptName:"",required:!1,attributeUuid:null})},style:{background:"none",border:"none",color:"#dc3545",cursor:"pointer",fontSize:"18px",padding:"2px 8px"}},"✕")),r().createElement("div",{style:{marginBottom:"15px"}},r().createElement("label",{style:{display:"block",marginBottom:"6px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Label Name"),r().createElement("input",{type:"text",name:"label",value:be.label,onChange:ve,placeholder:"e.g., Blood Group, Occupation, Emergency Contact",style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"}})),r().createElement("div",{style:{marginBottom:"15px"}},r().createElement("label",{style:{display:"block",marginBottom:"6px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Input Type"),r().createElement("select",{name:"inputType",value:be.inputType,onChange:ve,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"}},r().createElement("option",{value:"textbox"},"Textbox"),r().createElement("option",{value:"dropdown"},"Dropdown"),r().createElement("option",{value:"checkbox"},"Checkbox"),r().createElement("option",{value:"select"},"Select"))),("dropdown"===be.inputType||"select"===be.inputType)&&r().createElement("div",{style:{marginBottom:"15px"}},r().createElement("label",{style:{display:"block",marginBottom:"6px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Source"),r().createElement("select",{name:"source",value:be.source,onChange:ve,style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"}},r().createElement("option",{value:"fixed"},"Fixed Values"),r().createElement("option",{value:"database"},"Database Table"),r().createElement("option",{value:"concept"},"Concept Dictionary"))),("dropdown"===be.inputType||"select"===be.inputType)&&"fixed"===be.source&&r().createElement("div",{style:{marginBottom:"15px"}},r().createElement("label",{style:{display:"block",marginBottom:"6px",fontWeight:"bold",color:"#333",fontSize:"13px"}},"Options (comma-separated)"),r().createElement("input",{type:"text",name:"options",value:be.options,onChange:ve,placeholder:"e.g., Option 1, Option 2, Option 3",style:{width:"100%",padding:"8px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"13px",boxSizing:"border-box"}})),("dropdown"===be.inputType||"select"===be.inputType)&&"database"===be.source&&r().createElement("div",{style:{marginBottom:"15px",padding:"8px",backgroundColor:"#e9ecef",borderRadius:"4px",border:"1px solid #dee2e6"}},r().createElement("div",{style:{marginBottom:"10px"}},r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"12px"}},"Table Name"),r().createElement("input",{type:"text",name:"tableName",value:be.tableName,onChange:ve,placeholder:"e.g., person",style:{width:"100%",padding:"6px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"12px",boxSizing:"border-box"}})),r().createElement("div",{style:{marginBottom:"10px"}},r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"12px"}},"Value Column"),r().createElement("input",{type:"text",name:"valueColumn",value:be.valueColumn,onChange:ve,placeholder:"e.g., person_id",style:{width:"100%",padding:"6px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"12px",boxSizing:"border-box"}})),r().createElement("div",{style:{marginBottom:"10px"}},r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"12px"}},"Display Column"),r().createElement("input",{type:"text",name:"displayColumn",value:be.displayColumn,onChange:ve,placeholder:"e.g., given_name",style:{width:"100%",padding:"6px",borderRadius:"4px",border:"1px solid #ccc",fontSize:"12px",boxSizing:"border-box"}}))),("dropdown"===be.inputType||"select"===be.inputType)&&"concept"===be.source&&r().createElement("div",{style:{marginBottom:"15px",padding:"8px",backgroundColor:"#e6f7ff",borderRadius:"4px",border:"1px solid #b3e0ff"}},r().createElement("div",{style:{marginBottom:"10px"}},r().createElement("label",{style:{display:"block",marginBottom:"4px",fontWeight:"bold",color:"#333",fontSize:"12px"}},"Concept UUID ",r().createElement("span",{style:{color:"#666",fontWeight:"normal"}},"(OR Name)")),r().createElement("input",{type:"text",name:"conceptUuid",value:be.conceptUuid,onChange:ve,placeholder:"e.g., 88a07e9f-8c9f-4fbc-904c-531a5d41cd89",style:{width:"100%",padding:"6px",borderRadius:"4px",border:"1px solid #80d4ff",fontSize:"12px",boxSizing:"border-box",backgroundColor:"#f0faff",marginBottom:"4px"}}),r().createElement("div",{style:{textAlign:"center",color:"#666",fontSize:"11px",marginBottom:"4px"}},"OR"),r().createElement("input",{type:"text",name:"conceptName",value:be.conceptName,onChange:ve,placeholder:"e.g., Blood Group, Occupation, Marital Status",style:{width:"100%",padding:"6px",borderRadius:"4px",border:"1px solid #80d4ff",fontSize:"12px",boxSizing:"border-box",backgroundColor:"#f0faff"}}),r().createElement("div",{style:{fontSize:"11px",color:"#17a2b8",marginTop:"6px",fontStyle:"italic"}},"Enter either UUID or Name. Name will be searched in concept dictionary."))),r().createElement("div",{style:{marginBottom:"15px"}},r().createElement("label",{style:{display:"flex",alignItems:"center",cursor:"pointer"}},r().createElement("input",{type:"checkbox",name:"required",checked:be.required,onChange:ve,style:{marginRight:"6px",transform:"scale(1.1)"}}),r().createElement("span",{style:{fontWeight:"bold",color:"#333",fontSize:"13px"}},"Required Field"))),r().createElement("div",{style:{display:"flex",gap:"10px",marginTop:"10px"}},r().createElement("button",{type:"button",onClick:function(){fe(!1),xe({label:"",inputType:"textbox",value:"",options:"",source:"fixed",tableName:"",valueColumn:"",displayColumn:"",conceptUuid:"",conceptName:"",required:!1,attributeUuid:null})},style:{flex:1,padding:"8px",backgroundColor:"#6c757d",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"13px"}},"Cancel"),r().createElement("button",{type:"button",onClick:function(){return f((function(){var e,t,n,o,r,a,c,s,d;return E(this,(function(p){switch(p.label){case 0:if(!be.label.trim())return w({title:"Error",kind:"error",description:"Please enter a label name"}),[2];if("dropdown"===be.inputType||"select"===be.inputType){if("fixed"===be.source&&!be.options.trim())return w({title:"Error",kind:"error",description:"Please enter options for fixed values"}),[2];if(!("database"!==be.source||be.tableName.trim()&&be.valueColumn.trim()&&be.displayColumn.trim()))return w({title:"Error",kind:"error",description:"Please fill all database fields (Table, Value Column, Display Column)"}),[2];if("concept"===be.source&&!be.conceptUuid.trim()&&!be.conceptName.trim())return w({title:"Error",kind:"error",description:"Please enter either Concept UUID or Name"}),[2]}if(e=T.find((function(e){var t,n,o=be.label.toLowerCase(),r=(null===(t=e.display)||void 0===t?void 0:t.toLowerCase())||"",i=(null===(n=e.name)||void 0===n?void 0:n.toLowerCase())||"",a=o.replace(/[^a-z0-9]/g,"_");return r===o||i.includes(a)||r.includes(o)})),t=null==e?void 0:e.uuid)return[3,9];l().fire({title:"Creating Field",html:"Creating custom field attribute...",allowOutsideClick:!1,didOpen:function(){return l().showLoading()}}),p.label=1;case 1:return p.trys.push([1,7,,8]),[4,(g=be,f((function(){var e,t,n,o,r,a,l,c;return E(this,(function(s){switch(s.label){case 0:return s.trys.push([0,5,,6]),e=g.label,t=g.label,n=function(e){switch(e){case"textbox":case"dropdown":case"select":default:return"java.lang.String";case"checkbox":return"java.lang.Boolean"}},o={name:e,description:"Custom field: ".concat(g.label),format:n(g.inputType),searchable:!1,display:t},[4,(0,i.openmrsFetch)("/ws/rest/v1/personattributetype",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)})];case 1:return(r=s.sent()).ok?[3,3]:[4,r.json()];case 2:throw l=s.sent(),new Error((null===(a=l.error)||void 0===a?void 0:a.message)||"Failed to create attribute type");case 3:return[4,r.json()];case 4:return[2,s.sent().uuid];case 5:throw c=s.sent(),console.error("Error creating person attribute type:",c),c;case 6:return[2]}}))}))())];case 2:if(!(t=p.sent()))return l().close(),w({title:"Error",kind:"error",description:"Failed to create custom field attribute type"}),[2];p.label=3;case 3:return p.trys.push([3,5,,6]),[4,(0,i.openmrsFetch)("/ws/rest/v1/personattributetype?v=custom:(uuid,display,name,format)&limit=100")];case 4:return n=p.sent(),D(n.data.results||[]),[3,6];case 5:return o=p.sent(),console.error("Failed to refresh attribute types:",o),[3,6];case 6:return l().close(),w({title:"Success",kind:"success",description:'Custom field "'.concat(be.label,'" created successfully')}),[3,8];case 7:return r=p.sent(),l().close(),console.error("Error in addCustomField:",r),a="Failed to create custom field",u=r,(null!=(m=Error)&&"undefined"!=typeof Symbol&&m[Symbol.hasInstance]?m[Symbol.hasInstance](u):u instanceof m)&&(a+=": ".concat(r.message)),w({title:"Error",kind:"error",description:a}),[2];case 8:return[3,10];case 9:w({title:"Info",kind:"info",description:'Using existing attribute: "'.concat(be.label,'"')}),p.label=10;case 10:return c="custom_".concat(Date.now(),"_").concat(Math.random().toString(36).substr(2,9)),s={id:c,label:be.label,inputType:be.inputType,value:"checkbox"!==be.inputType&&"",options:be.options,source:be.source,tableName:be.tableName,valueColumn:be.valueColumn,displayColumn:be.displayColumn,conceptUuid:be.conceptUuid,conceptName:be.conceptName,required:be.required,attributeUuid:t,conceptLoading:"concept"===be.source},d=de.length,pe((function(e){var t=h(e).concat([s]);return Ee(t),t})),"concept"===be.source&&(be.conceptUuid||be.conceptName)&&setTimeout((function(){var e=!be.conceptUuid.trim()&&!!be.conceptName.trim(),t=e?be.conceptName:be.conceptUuid;!function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];f((function(){var o,r,i,a;return E(this,(function(l){switch(l.label){case 0:return l.trys.push([0,2,,3]),console.log("Loading concept answers for field ".concat(e," with ").concat(n?"name":"UUID",": ").concat(t)),pe((function(t){var n=h(t);return n[e]&&(n[e]=x(b({},n[e]),{conceptLoading:!0})),n})),[4,C(t,n)];case 1:return o=l.sent(),console.log("Fetched ".concat(o.length," answers:"),o.map((function(e){return e.display}))),pe((function(t){var n=h(t);return n[e]&&(n[e]=x(b({},n[e]),{conceptAnswers:o,conceptLoading:!1})),n})),o.length>0?(console.log("✅ Successfully loaded ".concat(o.length," concept answers")),w({title:"Success",kind:"success",description:"Loaded ".concat(o.length," options from concept dictionary")})):(console.warn("No concept answers found, using fallback options"),[],i=de[e],r=i&&(i.label.toLowerCase().includes("blood")||i.label.toLowerCase().includes("group"))?[{uuid:"fallback-1",display:"A+"},{uuid:"fallback-2",display:"A-"},{uuid:"fallback-3",display:"B+"},{uuid:"fallback-4",display:"B-"},{uuid:"fallback-5",display:"AB+"},{uuid:"fallback-6",display:"AB-"},{uuid:"fallback-7",display:"O+"},{uuid:"fallback-8",display:"O-"}]:[{uuid:"fallback-1",display:"Option 1"},{uuid:"fallback-2",display:"Option 2"},{uuid:"fallback-3",display:"Option 3"}],pe((function(t){var n=h(t);return n[e]&&(n[e]=x(b({},n[e]),{conceptAnswers:r,conceptLoading:!1})),n})),w({title:"Warning",kind:"warning",description:"Using fallback options (concept not loaded)"})),[3,3];case 2:return a=l.sent(),console.error("Error loading concept answers:",a),pe((function(t){var n=h(t);return n[e]&&(n[e]=x(b({},n[e]),{conceptLoading:!1})),n})),w({title:"Error",kind:"error",description:"Failed to load concept options"}),[3,3];case 3:return[2]}}))}))()}(d,t,e)}),100),console.log("=== NEW FIELD ADDED ==="),console.log('Field: "'.concat(be.label,'"')),console.log("Type: ".concat(be.inputType)),console.log("Source: ".concat(be.source)),"concept"===be.source&&(console.log("Concept UUID: ".concat(be.conceptUuid||"Not provided")),console.log("Concept Name: ".concat(be.conceptName||"Not provided"))),console.log("======================"),xe({label:"",inputType:"textbox",value:"",options:"",source:"fixed",tableName:"",valueColumn:"",displayColumn:"",conceptUuid:"",conceptName:"",required:!1,attributeUuid:null}),fe(!1),w({title:"Success",kind:"success",description:"Custom field added to form"}),[2]}var u,m,g}))}))()},style:{flex:1,padding:"8px",backgroundColor:"#28a745",color:"white",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"13px",fontWeight:"bold"}},"Create Field"))):r().createElement("div",null,r().createElement("button",{type:"button",onClick:function(){return fe(!0)},style:{width:"100%",padding:"12px",backgroundColor:"#17a2b8",color:"white",border:"none",borderRadius:"6px",cursor:"pointer",fontSize:"13px",fontWeight:"bold",marginBottom:"15px",display:"flex",alignItems:"center",justifyContent:"center",gap:"8px"}},r().createElement("span",null,"+")," Create New Field"),r().createElement("div",{style:{textAlign:"center",padding:"12px",color:"#6c757d",fontSize:"13px"}},r().createElement("div",{style:{fontSize:"32px",marginBottom:"10px",opacity:.5}},"📋"),"Create custom fields here",r().createElement("div",{style:{fontSize:"11px",marginTop:"10px",color:"#17a2b8"}})))),r().createElement("div",{style:{padding:"15px",borderTop:"1px solid #e0e0e0",backgroundColor:"#f8f9fa"}},r().createElement("div",{style:{fontSize:"12px",color:"#6c757d",textAlign:"center"}},"Created fields will appear in the Custom Fields section"))))}}}]);