@argusoft/medplat-core 1.0.22 → 1.0.24

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.
Files changed (52) hide show
  1. package/dist/AddMenuConfiguration-m3R8FDhj.js +5570 -0
  2. package/dist/AddMenuConfiguration-m3R8FDhj.js.map +1 -0
  3. package/dist/AddMenuConfiguration.css +1 -1
  4. package/dist/{ChangePasswordModalCore-DotONnMz.js → ChangePasswordModalCore-Czu7OZe6.js} +957 -954
  5. package/dist/ChangePasswordModalCore-Czu7OZe6.js.map +1 -0
  6. package/dist/{ConditionConfig-C3rF2wXU.js → ConditionConfig-BECSbvY2.js} +2 -2
  7. package/dist/{ConditionConfig-C3rF2wXU.js.map → ConditionConfig-BECSbvY2.js.map} +1 -1
  8. package/dist/{EntityManagement-D4nG7wUX.js → EntityManagement-GaYsBTvf.js} +2 -2
  9. package/dist/{EntityManagement-D4nG7wUX.js.map → EntityManagement-GaYsBTvf.js.map} +1 -1
  10. package/dist/FhirRawResourceList-ZZFd7gTX.js +550 -0
  11. package/dist/FhirRawResourceList-ZZFd7gTX.js.map +1 -0
  12. package/dist/FhirServerList-Dkq7Kbes.js +116 -0
  13. package/dist/FhirServerList-Dkq7Kbes.js.map +1 -0
  14. package/dist/FhirServerProfile-CUOwC6Wb.js +253 -0
  15. package/dist/FhirServerProfile-CUOwC6Wb.js.map +1 -0
  16. package/dist/FhirServerWizard-Db6Hm4bQ.js +161 -0
  17. package/dist/FhirServerWizard-Db6Hm4bQ.js.map +1 -0
  18. package/dist/{ImmunizationConfigurationBase-CTBoSuSz.js → ImmunizationConfigurationBase-BevKZx_l.js} +386 -302
  19. package/dist/ImmunizationConfigurationBase-BevKZx_l.js.map +1 -0
  20. package/dist/{ManageEventConfiguration-BntUc_YI.js → ManageEventConfiguration-CBi2KMB1.js} +4 -4
  21. package/dist/{ManageEventConfiguration-BntUc_YI.js.map → ManageEventConfiguration-CBi2KMB1.js.map} +1 -1
  22. package/dist/{ManageUser-Ca1BsI1u.js → ManageUser-BnEPFSPT.js} +219 -219
  23. package/dist/{ManageUser-Ca1BsI1u.js.map → ManageUser-BnEPFSPT.js.map} +1 -1
  24. package/dist/{MobileMenuManagement-CV6QCeos.js → MobileMenuManagement-CVAKyKDa.js} +33 -32
  25. package/dist/MobileMenuManagement-CVAKyKDa.js.map +1 -0
  26. package/dist/{MobileTypeEventConfigModal-BNjZ8pnq.js → MobileTypeEventConfigModal-C34AN-IJ.js} +2 -2
  27. package/dist/{MobileTypeEventConfigModal-BNjZ8pnq.js.map → MobileTypeEventConfigModal-C34AN-IJ.js.map} +1 -1
  28. package/dist/{OtherTypeEventConfigModal-DiVhWDpG.js → OtherTypeEventConfigModal-BYjMFl0-.js} +93 -93
  29. package/dist/OtherTypeEventConfigModal-BYjMFl0-.js.map +1 -0
  30. package/dist/ServerFormFields-SLghoZ2z.js +136 -0
  31. package/dist/ServerFormFields-SLghoZ2z.js.map +1 -0
  32. package/dist/SyncDialog-BRGpHOE4.js +130 -0
  33. package/dist/SyncDialog-BRGpHOE4.js.map +1 -0
  34. package/dist/{TableList-HGbEN4bv.js → TableList-D6jnIbnz.js} +227 -244
  35. package/dist/TableList-D6jnIbnz.js.map +1 -0
  36. package/dist/{TypeConfiguration-CupQxH9Y.js → TypeConfiguration-Bs5WkIa2.js} +2 -2
  37. package/dist/{TypeConfiguration-CupQxH9Y.js.map → TypeConfiguration-Bs5WkIa2.js.map} +1 -1
  38. package/dist/dashboardLayoutUtils-Bt5HA96J.js +265 -0
  39. package/dist/dashboardLayoutUtils-Bt5HA96J.js.map +1 -0
  40. package/dist/index.css +1 -1
  41. package/dist/index.js +191 -135
  42. package/dist/index.js.map +1 -1
  43. package/dist/permissions-DEWACxJN.js +308 -0
  44. package/dist/permissions-DEWACxJN.js.map +1 -0
  45. package/package.json +1 -1
  46. package/dist/AddMenuConfiguration-DsnY0Rws.js +0 -2237
  47. package/dist/AddMenuConfiguration-DsnY0Rws.js.map +0 -1
  48. package/dist/ChangePasswordModalCore-DotONnMz.js.map +0 -1
  49. package/dist/ImmunizationConfigurationBase-CTBoSuSz.js.map +0 -1
  50. package/dist/MobileMenuManagement-CV6QCeos.js.map +0 -1
  51. package/dist/OtherTypeEventConfigModal-DiVhWDpG.js.map +0 -1
  52. package/dist/TableList-HGbEN4bv.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../routes/routes.jsx","../../app-shell/src/store/reducers/immunizationSlice.js","../src/views/ImmunizationConfiguration/service/ImmunizationUtil.js"],"sourcesContent":["import { lazy } from \"react\";\n\nconst VerifyRoute = lazy(\n () => import(\"@/views/feature-components/VerifyRoute.jsx\"),\n);\nconst Roles = lazy(() => import(\"../src/views/Roles/RoleManagement\"));\nconst QueryBuilder = lazy(\n () => import(\"../src/views/QueryBuilder/QueryBuilder\"),\n);\nconst UserList = lazy(() => import(\"../src/views/Users/UserList\"));\nconst ManageUser = lazy(() => import(\"../src/views/Users/ManageUser\"));\nconst QueryManagement = lazy(\n () => import(\"../src/views/QueryManagement/QueryManagement\"),\n);\nconst FeatureMenu = lazy(() => import(\"../src/views/Features/FeatureMenu\"));\nconst ActivityAnalytics = lazy(() => import(\"../src/views/ActivityAnalytics/index\"));\nconst NewServerManagement = lazy(\n () => import(\"../src/views/Features/NewServerManagement\"),\n);\nconst ManageDynamicFeature = lazy(\n () => import(\"../src/views/Features/ManageDynamicFeature\"),\n);\nconst SecurityAuditLogList = lazy(\n () => import(\"../src/views/SecurityAuditLog/SecurityAuditLogList\"),\n);\nconst EventConfigurations = lazy(\n () => import(\"../src/views/Events/EventConfigurations\"),\n);\nconst ManageEventConfiguration = lazy(\n () => import(\"../src/views/Events/ManageEventConfiguration\"),\n);\nconst EntityManagement = lazy(\n () => import('../src/views/Mobile/EntityManagement/EntityManagement.jsx')\n);\nconst MobileMenuManagement = lazy(\n () => import('../src/views/MobileMenuManagement/MobileMenuManagement')\n);\nconst AddMenuConfiguration = lazy(\n () => import('../src/views/MobileMenuManagement/AddMenuConfiguration')\n);\nconst ManageTranslation = lazy(\n () => import(\"../src/views/Translation/ManageTranslation\"),\n);\nconst WidgetList = lazy(\n () => import(\"../src/views/Widgets/WidgetList\")\n);\nconst NotificationList = lazy(\n () => import(\"../src/views/Notifications/NotificationList\"),\n);\nconst ImmunizationConfigurationsList = lazy(\n () => import(\"../src/views/Immunization/ImmunizationConfigurationsList\"),\n);\nconst ManageImmunization = lazy(\n () => import(\"../src/views/Immunization/manageImmunization\"),\n);\nconst ImmunizationConfiguration = lazy(\n () =>\n import(\"../src/views/ImmunizationConfiguration/ImmunizationConfigurationBase.jsx\"),\n);\n\nconst corecustom2Routes = [\n {\n path: \"medplat/manage/role\",\n element: (\n <VerifyRoute\n headerTitle={\"Roles\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/role\"\n component={Roles}\n />\n ),\n },\n {\n path: \"medplat/manage/query\",\n element: (\n <VerifyRoute\n headerTitle={\"Query Master\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/query\"\n component={QueryBuilder}\n />\n ),\n },\n {\n path: \"medplat/manage/users\",\n element: (\n <VerifyRoute\n headerTitle={\"Users\"}\n pageTitle={\"UserList\"}\n url=\"medplat/manage/users\"\n component={UserList}\n />\n ),\n },\n {\n path: \"medplat/manage/user\",\n element: (\n <VerifyRoute\n headerTitle={\"Users\"}\n pageTitle={\"ManageUser\"}\n url=\"medplat/manage/users\"\n component={ManageUser}\n />\n ),\n },\n {\n path: \"medplat/manage/user/:id\",\n element: (\n <VerifyRoute\n headerTitle={\"Users\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/users\"\n component={ManageUser}\n />\n ),\n },\n {\n path: \"medplat/querymanagement\",\n element: (\n <VerifyRoute\n headerTitle={\"Query Management\"}\n pageTitle={\"General\"}\n url=\"medplat/querymanagement\"\n component={QueryManagement}\n />\n ),\n },\n {\n path: \"medplat/manage/menu\",\n element: (\n <VerifyRoute\n headerTitle={\"Features\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/menu\"\n component={FeatureMenu}\n />\n ),\n },\n {\n path: \"medplat/manage/menu/addfeature\",\n element: (\n <VerifyRoute\n headerTitle={\"Features\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/menu\"\n component={ManageDynamicFeature}\n />\n ),\n },\n {\n path: \"medplat/manage/menu/addDynamicFeature\",\n element: (\n <VerifyRoute\n headerTitle={\"Features\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/menu\"\n component={ManageDynamicFeature}\n />\n ),\n },\n {\n path: \"medplat/notification/all\",\n element: (\n <VerifyRoute\n headerTitle={\"Event Configuration\"}\n pageTitle={\"General\"}\n url=\"medplat/notification/all\"\n component={EventConfigurations}\n />\n ),\n },\n {\n path: \"medplat/views/config\",\n element: (\n <VerifyRoute\n headerTitle={\"Event Configuration\"}\n pageTitle={\"General\"}\n url=\"medplat/notification\"\n component={ManageEventConfiguration}\n />\n ),\n },\n {\n path: \"medplat/views/config/:id\",\n element: (\n <VerifyRoute\n headerTitle={\"Event Configuration\"}\n pageTitle={\"General\"}\n url=\"medplat/notification\"\n component={ManageEventConfiguration}\n />\n ),\n },\n {\n path: \"medplat/admin/newServerManagement\",\n element: (\n <VerifyRoute\n headerTitle={\"Server Management\"}\n url=\"medplat/admin/newServerManagement\"\n component={NewServerManagement}\n />\n ),\n },\n {\n path: 'medplat/admin/mobileEntityManagement',\n element: (\n <VerifyRoute\n pageTitle={'General'}\n url=\"medplat/admin/mobileEntityManagement\"\n component={EntityManagement}\n headerTitle={'Mobile Database Management'}\n />\n ),\n },\n {\n path: 'medplat/admin/mobileMenuManagement',\n element: (\n <VerifyRoute\n url=\"medplat/admin/mobileMenuManagement\"\n component={<MobileMenuManagement />}\n headerTitle={'Mobile Menu Management'}\n />\n ),\n },\n {\n path: 'medplat/admin/mobileMenuManagement/addMenuConfiguration',\n element: <AddMenuConfiguration />,\n },\n {\n path: \"medplat/manage/manageTranslation\",\n element: (\n <VerifyRoute\n headerTitle={\"Manage Translation\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/manageTranslation\"\n component={ManageTranslation}\n />\n ),\n },\n {\n path: \"medplat/manage/managewidgets\",\n element: (\n <VerifyRoute\n headerTitle={\"Widgets\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/manage-widgets\"\n component={WidgetList}\n />\n ),\n },\n {\n path: \"medplat/manage/notification\",\n element: (\n <VerifyRoute\n headerTitle={\"Notification Configuration\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/notification\"\n component={NotificationList}\n />\n ),\n },\n {\n path: \"medplat/manage/immunizationConfiguratorList\",\n element: (\n <VerifyRoute\n headerTitle={\"Immunizations\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/manageTranslation\"\n component={ImmunizationConfigurationsList}\n />\n ),\n },\n {\n path: \"medplat/manage/manageImmunization\",\n element: (\n <VerifyRoute\n headerTitle={\"Immunizations\"}\n pageTitle={\"General\"}\n url=\"medplat/training/question\"\n component={ManageImmunization}\n />\n ),\n },\n {\n path: \"medplat/manage/manageImmunization/:id\",\n element: (\n <VerifyRoute\n headerTitle={\"Immunizations\"}\n pageTitle={\"General\"}\n url=\"medplat/training/question\"\n component={ManageImmunization}\n />\n ),\n },\n {\n path: \"medplat/manage/immunizationConfiguration\",\n element: (\n <VerifyRoute\n headerTitle={\"Immunization Configuration\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/immunizationConfiguration\"\n component={ImmunizationConfiguration}\n />\n ),\n },\n {\n path: \"medplat/manage/securityAuditLogs\",\n element: (\n <VerifyRoute\n headerTitle={\"Security Audit Logs\"}\n pageTitle={\"Security Audit Logs\"}\n url=\"medplat/manage/securityAuditLogs\"\n component={SecurityAuditLogList}\n />\n ),\n },\n {\n path: \"medplat/manage/activityAnalytics\",\n element: (\n <VerifyRoute\n headerTitle={\"Activity Analytics\"}\n url=\"medplat/manage/activityAnalytics\"\n component={ActivityAnalytics}\n />\n ),\n },\n];\n\nexport default corecustom2Routes;\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst createInitialState = () => ({\n vaccines: [],\n selectedVaccineIds: [],\n views: [\n {\n id: 'landing',\n name: 'Dashboard',\n },\n {\n id: 'schedule-config',\n name: 'Schedule Config',\n },\n {\n id: 'summary',\n name: 'Configuration Summary',\n },\n ],\n currentViewId: 'summary',\n scheduledVaccines: [],\n baseDateMaster: [],\n recipientMaster: [],\n dbTablesMaster: [],\n filtersMaster: [],\n featureRights: {},\n isConfigLoaded: false,\n validationErrors: {},\n});\n\nconst initialState = createInitialState();\n\nconst upsertByIdOrCode = (items = [], incoming = {}) => {\n const matchIndex = items.findIndex(\n (item) =>\n (incoming.id !== undefined && item?.id === incoming.id) ||\n (incoming.code && item?.code === incoming.code),\n );\n\n if (matchIndex === -1) {\n return [...items, incoming];\n }\n\n return items.map((item, index) =>\n index === matchIndex\n ? {\n ...item,\n ...incoming,\n }\n : item,\n );\n};\n\nconst immunizationSlice = createSlice({\n name: 'immunization',\n initialState,\n reducers: {\n toggleVaccine: (state, action) => {\n const id = action.payload;\n if (!Array.isArray(state.selectedVaccineIds)) state.selectedVaccineIds = [];\n\n const index = state.selectedVaccineIds.indexOf(id);\n if (index > -1) {\n state.selectedVaccineIds.splice(index, 1);\n } else {\n state.selectedVaccineIds.push(id);\n }\n },\n setVaccines: (state, action) => {\n const vaccines = Array.isArray(action.payload) ? action.payload : [];\n state.vaccines = vaccines;\n if (state.selectedVaccineIds.length === 0) {\n state.selectedVaccineIds = vaccines\n .filter((vaccine) => vaccine.isActive)\n .map((vaccine) => vaccine.id);\n }\n },\n setSelectedVaccineIds: (state, action) => {\n state.selectedVaccineIds = action.payload;\n },\n addCustomVaccine: (state, action) => {\n const payload = action.payload || {};\n const {\n name,\n vaccine_name,\n disease,\n target_prevention,\n id,\n baseDateCode,\n base_date_code,\n recipientType,\n recipient_type,\n } = payload;\n const finalName = name || vaccine_name || 'Unnamed Vaccine';\n const finalCategory = disease || target_prevention || 'General';\n\n const vaccines = Array.isArray(state.vaccines) ? state.vaccines : [];\n const validIds = vaccines.map((v) => Number(v?.id)).filter((id) => !Number.isNaN(id));\n const nextId = validIds.length > 0 ? Math.max(...validIds) + 1 : 1;\n\n const finalId = id || nextId;\n const newVaccine = {\n id: finalId,\n name: finalName,\n category: finalCategory,\n doses: 0,\n doseType: 'FIXED',\n doseDetails: {},\n regions: [],\n dependencies: [],\n isActive: payload.isActive !== undefined ? payload.isActive : false,\n baseDateCode: baseDateCode || base_date_code || null,\n recipientType: recipientType || recipient_type || '',\n };\n\n if (!Array.isArray(state.vaccines)) state.vaccines = [];\n state.vaccines.push(newVaccine);\n },\n setCurrentView: (state, action) => {\n state.currentViewId = action.payload;\n },\n updateScheduledVaccine: (state, action) => {\n const updatedVaccine = action.payload;\n const index = state.scheduledVaccines.findIndex((v) => v.id === updatedVaccine.id);\n if (index !== -1) {\n state.scheduledVaccines[index] = {\n ...state.scheduledVaccines[index],\n ...updatedVaccine,\n };\n } else {\n state.scheduledVaccines.push(updatedVaccine);\n }\n },\n setBaseDatesMaster: (state, action) => {\n state.baseDateMaster = action.payload;\n },\n setRecipientMaster: (state, action) => {\n state.recipientMaster = action.payload;\n },\n setDbTablesMaster: (state, action) => {\n state.dbTablesMaster = action.payload;\n },\n setFiltersMaster: (state, action) => {\n state.filtersMaster = action.payload;\n },\n upsertBaseDateMasterItem: (state, action) => {\n state.baseDateMaster = upsertByIdOrCode(state.baseDateMaster, action.payload);\n },\n upsertRecipientMasterItem: (state, action) => {\n state.recipientMaster = upsertByIdOrCode(state.recipientMaster, action.payload);\n },\n updateBaseDateMasterStatus: (state, action) => {\n const { code, is_active } = action.payload;\n state.baseDateMaster = state.baseDateMaster.map((item) =>\n item.code === code ? { ...item, is_active } : item,\n );\n },\n upsertFilterMasterItem: (state, action) => {\n state.filtersMaster = upsertByIdOrCode(state.filtersMaster, action.payload);\n },\n updateFilterMasterStatus: (state, action) => {\n const { code, is_active } = action.payload;\n state.filtersMaster = state.filtersMaster.map((item) =>\n item.code === code ? { ...item, is_active } : item,\n );\n },\n setFeatureRights: (state, action) => {\n state.featureRights = action.payload || {};\n },\n setImmunizationConfigLoaded: (state, action) => {\n state.isConfigLoaded = action.payload;\n },\n resetImmunizationState: () => createInitialState(),\n activateSelectedVaccines: (state) => {\n state.vaccines = state.vaccines.map((v) => ({\n ...v,\n isActive: state.selectedVaccineIds.includes(v.id),\n }));\n },\n setVaccineStatus: (state, action) => {\n const { vaccineId, status } = action.payload;\n const vIndex = state.vaccines.findIndex((v) => v.id === vaccineId);\n if (vIndex !== -1) {\n state.vaccines[vIndex].isActive = status;\n }\n\n if (!Array.isArray(state.selectedVaccineIds)) state.selectedVaccineIds = [];\n const sIndex = state.selectedVaccineIds.indexOf(vaccineId);\n if (status && sIndex === -1) {\n state.selectedVaccineIds.push(vaccineId);\n } else if (!status && sIndex !== -1) {\n state.selectedVaccineIds.splice(sIndex, 1);\n }\n },\n setValidationErrors: (state, action) => {\n const { vaccineId, errors } = action.payload;\n state.validationErrors[vaccineId] = errors;\n },\n clearValidationErrors: (state, action) => {\n const vaccineId = action.payload;\n if (vaccineId) {\n delete state.validationErrors[vaccineId];\n } else {\n state.validationErrors = {};\n }\n },\n },\n});\n\nexport const {\n toggleVaccine,\n setVaccines,\n addCustomVaccine,\n setCurrentView,\n updateScheduledVaccine,\n setBaseDatesMaster,\n setRecipientMaster,\n setDbTablesMaster,\n setFiltersMaster,\n upsertBaseDateMasterItem,\n upsertRecipientMasterItem,\n updateBaseDateMasterStatus,\n upsertFilterMasterItem,\n updateFilterMasterStatus,\n setFeatureRights,\n setImmunizationConfigLoaded,\n resetImmunizationState,\n activateSelectedVaccines,\n setSelectedVaccineIds,\n setValidationErrors,\n clearValidationErrors,\n setVaccineStatus,\n} = immunizationSlice.actions;\nexport default immunizationSlice.reducer;\n","import { execute, executeAll } from \"@/common/services/GlobalApis\";\nimport { api } from \"@/common/interceptors/AxiosInterceptor\";\n\nconst safeParseJson = (value, fallback) => {\n if (value == null) {\n return fallback;\n }\n\n if (typeof value !== \"string\") {\n return value;\n }\n\n try {\n return JSON.parse(value);\n } catch {\n return fallback;\n }\n};\n\nconst toStableId = (...parts) => parts.filter(Boolean).join(\"_\");\n\nconst normaliseEligibilityValue = (value) => {\n if (\n value === undefined ||\n value === null ||\n value === \"\" ||\n value === \"N.A.\" ||\n value === \"null days\"\n ) {\n return \"N.A.\";\n }\n\n return value;\n};\n\nconst calculateOverallEligibility = (\n doseDetails,\n doseType = \"FLEXIBLE\",\n doses = 1,\n) => {\n if (doses === 0) {\n return \"N.A.\";\n }\n\n if (!doseDetails) {\n return \"N.A.\";\n }\n\n if (doseType === \"FIXED\") {\n const details = Array.isArray(doseDetails) ? doseDetails[0] : doseDetails;\n if (!details) {\n return \"N.A.\";\n }\n\n const eligibleFrom = normaliseEligibilityValue(details.eligibleFrom);\n const eligibleTo = normaliseEligibilityValue(details.eligibleTo);\n\n if (eligibleFrom === \"N.A.\" && eligibleTo === \"N.A.\") {\n return \"N.A.\";\n }\n\n return `${eligibleFrom} to ${eligibleTo}`;\n }\n\n if (!Array.isArray(doseDetails) || doseDetails.length === 0) {\n return \"N.A.\";\n }\n\n const first = normaliseEligibilityValue(doseDetails[0].eligibleFrom);\n const last = normaliseEligibilityValue(\n doseDetails[doseDetails.length - 1].eligibleTo,\n );\n\n if (first === \"N.A.\" && last === \"N.A.\") {\n return \"N.A.\";\n }\n\n return `${first} to ${last}`;\n};\n\nconst mapImmunizationVaccineConfig = (vaccine) => {\n const doseTypeLower = String(vaccine.dose_type || \"\").toLowerCase();\n const isFixed =\n doseTypeLower === \"fixed\" || doseTypeLower === \"na\" || !vaccine.dose_type;\n\n const durationUnits = safeParseJson(vaccine.duration_units, {\n eligibleFrom: \"days\",\n eligibleTo: \"days\",\n interval: \"days\",\n });\n\n const doseDetails = isFixed\n ? [\n {\n id: toStableId(\"fixed\", vaccine.id),\n eligibleFrom:\n vaccine.dose_eligible_from !== undefined\n ? `${vaccine.dose_eligible_from} ${durationUnits.eligibleFrom || \"days\"}`\n : \"\",\n eligibleTo:\n vaccine.dose_eligible_to !== undefined\n ? `${vaccine.dose_eligible_to} ${durationUnits.eligibleTo || \"days\"}`\n : \"\",\n interval: vaccine.min_gap || 0,\n },\n ]\n : safeParseJson(vaccine.dose, []).map((dose, index) => {\n const perDoseUnits = {\n eligibleFrom:\n dose.eligible_from_unit || durationUnits.eligibleFrom || \"days\",\n eligibleTo:\n dose.eligible_to_unit || durationUnits.eligibleTo || \"days\",\n interval: dose.interval_unit || durationUnits.interval || \"days\",\n overdue: dose.overdue_unit || \"days\",\n };\n return {\n id: dose.id || toStableId(\"dose\", vaccine.id, index),\n isBooster:\n dose.isBooster === true ||\n dose.is_booster === true ||\n (typeof dose.dose === \"string\" &&\n dose.dose.toUpperCase().startsWith(\"B\")),\n alias: dose.alias || dose.booster_alias || \"\",\n eligibleFrom:\n dose.eligible_from !== undefined\n ? `${dose.eligible_from} ${perDoseUnits.eligibleFrom}`\n : \"\",\n eligibleTo:\n dose.eligible_to !== undefined\n ? `${dose.eligible_to} ${perDoseUnits.eligibleTo}`\n : \"\",\n overdue:\n dose.overdue !== undefined && dose.overdue !== null\n ? `${dose.overdue} ${perDoseUnits.overdue}`\n : \"\",\n interval: dose.min_gap || 0,\n units: perDoseUnits,\n };\n });\n\n const regions = safeParseJson(vaccine.location, [])\n .filter((location) => location && typeof location === \"object\")\n .map((location, index) => ({\n id: toStableId(\"region\", vaccine.id, index),\n locationId: location.locationId,\n locationIdArr: location.locationIdArr,\n locationList: location.locationList,\n fullPath: location.locationList?.replaceAll(\" => \", \" → \"),\n }));\n\n const dependencies = safeParseJson(vaccine.validations, []).map(\n (dependency, index) => ({\n id: toStableId(\"dep\", vaccine.id, index),\n vaccine: dependency.vaccine || \"\",\n requirement: dependency.requirement || \"Should be given\",\n minGap: Number.parseInt(dependency.minGap, 10) || 0,\n maxGap: Number.parseInt(dependency.maxGap, 10) || 0,\n message: dependency.message || \"\",\n }),\n );\n\n const parsedFilters = safeParseJson(vaccine.filters, []);\n const filters = Array.isArray(parsedFilters)\n ? parsedFilters\n : parsedFilters?.codes || [];\n\n const parsedCodeSets = safeParseJson(vaccine.code_sets, []);\n const codeSets = Array.isArray(parsedCodeSets) ? parsedCodeSets : [];\n\n return {\n ...vaccine,\n name: vaccine.vaccine_name || vaccine.name || \"N.A.\",\n category:\n vaccine.target_prevention ||\n vaccine.disease ||\n vaccine.category ||\n \"N.A.\",\n doses: vaccine.no_of_doses || 0,\n doseType:\n vaccine.dose_type && vaccine.dose_type !== \"NA\"\n ? vaccine.dose_type\n : \"FIXED\",\n doseDetails,\n eligibility: calculateOverallEligibility(\n doseDetails,\n vaccine.dose_type,\n vaccine.no_of_doses || 0,\n ),\n isActive: vaccine.is_active !== undefined ? vaccine.is_active : true,\n regions,\n dependencies,\n filters,\n codeSets,\n durationUnits,\n baseDateCode: vaccine.base_date_code,\n recipientType: vaccine.recipient_type || \"\",\n };\n};\n\nconst getVaccines = () => {\n return execute({\n code: \"FETCH_IMMUNISATION_MASTER\",\n parameters: {},\n });\n};\n\nconst getBaseDates = () => {\n return execute({\n code: \"FETCH_IMMUNISATION_BASE_DATE\",\n parameters: {},\n });\n};\n\nconst getRecipients = () => {\n return execute({\n code: \"FETCH_IMMUNISATION_RECEPIENT_MASTER\",\n parameters: {},\n });\n};\n\nconst getImmunizationReferenceData = () => {\n return executeAll([\n {\n code: \"FETCH_IMMUNISATION_BASE_DATE\",\n parameters: {},\n sequence: 1,\n },\n {\n code: \"GET_ALL_IMMUNISATION_FILTERS\",\n parameters: {},\n sequence: 2,\n },\n {\n code: \"FETCH_IMMUNISATION_MASTER\",\n parameters: {},\n sequence: 3,\n },\n {\n code: \"FETCH_IMMUNISATION_RECEPIENT_MASTER\",\n parameters: {},\n sequence: 4,\n },\n ]);\n};\n\nconst addImmunization = (data) => {\n return execute({\n code: \"INSERT_IMMUNIZATION_MASTER\",\n parameters: data,\n });\n};\n\nconst updateImmunization = (data) => {\n return execute({\n code: \"UPDATE_IMMUNIZATION_DOSE\",\n ...data,\n });\n};\n\nconst checkImmunizationConfigurationInitiation = (data) => {\n return execute({\n code: \"CHECK_IMMUNIZATION_CONFIGURATION_INITIATION\",\n ...data,\n });\n};\n\nconst updateVaccineStatus = (data) => {\n return execute({\n code: \"UPDATE_IMMUNIZATION_STATUS\",\n ...data,\n });\n};\n\nconst updateVaccineStatusFromArray = (data) => {\n return execute({\n code: \"UPDATE_IMMUNIZATION_STATUS_FOR_ARRAY\",\n ...data,\n });\n};\n\nconst updateImmunizationConfigurationInitiation = (data) => {\n return execute({\n code: \"UPDATE_IMMUNIZATION_CONFIGURATION_INITIATION\",\n ...data,\n });\n};\n\nconst saveBaseDate = (data) => {\n return execute({\n code: \"SAVE_IMMUNISATION_BASE_DATE\",\n parameters: data,\n });\n};\n\nconst saveRecipient = (data) => {\n return execute({\n code: \"SAVE_IMMUNISATION_RECEPIENT_MASTER\",\n parameters: data,\n });\n};\n\nconst updateRecipient = (data) => {\n return execute({\n code: \"UPDATE_IMMUNISATION_RECEPIENT_MASTER\",\n parameters: data,\n });\n};\n\nconst updateBaseDate = (data) => {\n return execute({\n code: \"UPDATE_IMMUNISATION_BASE_DATE\",\n parameters: data,\n });\n};\n\nconst getAllTablesAndColumns = () => {\n return execute({\n code: \"retrieve_all_tables_and_columns\",\n parameters: {},\n });\n};\n\nconst getFilters = () => {\n return execute({\n code: \"GET_ALL_IMMUNISATION_FILTERS\",\n parameters: {},\n });\n};\n\nconst addFilter = (data) => {\n return execute({\n code: \"ADD_IMMUNISATION_FILTER\",\n parameters: data,\n });\n};\n\nconst updateFilter = (data) => {\n return execute({\n code: \"UPDATE_IMMUNISATION_FILTER\",\n parameters: data,\n });\n};\n\nconst getImmunisationV2List = (data) => {\n return api.post(\"/medplatform/v2/immunisation/list\", data);\n};\n\nconst revalidateImmunisationV2List = (data) => {\n return api.post(\"/medplatform/v2/immunisation/revalidate\", data);\n};\n\nexport const ImmunizationUtil = {\n calculateOverallEligibility,\n mapImmunizationVaccineConfig,\n getVaccines,\n getBaseDates,\n getRecipients,\n getImmunizationReferenceData,\n addImmunization,\n updateImmunization,\n checkImmunizationConfigurationInitiation,\n updateVaccineStatus,\n updateVaccineStatusFromArray,\n updateImmunizationConfigurationInitiation,\n saveBaseDate,\n saveRecipient,\n updateRecipient,\n updateBaseDate,\n getAllTablesAndColumns,\n getFilters,\n addFilter,\n updateFilter,\n getImmunisationV2List,\n revalidateImmunisationV2List,\n};\n"],"names":["VerifyRoute","lazy","Roles","QueryBuilder","n","UserList","ManageUser","QueryManagement","FeatureMenu","ActivityAnalytics","NewServerManagement","ManageDynamicFeature","SecurityAuditLogList","EventConfigurations","ManageEventConfiguration","EntityManagement","MobileMenuManagement","AddMenuConfiguration","ManageTranslation","WidgetList","NotificationList","ImmunizationConfigurationsList","ManageImmunization","ImmunizationConfiguration","corecustom2Routes","jsx","createInitialState","initialState","upsertByIdOrCode","items","incoming","matchIndex","item","index","immunizationSlice","createSlice","state","action","id","vaccines","vaccine","payload","name","vaccine_name","disease","target_prevention","baseDateCode","base_date_code","recipientType","recipient_type","finalName","finalCategory","validIds","v","nextId","newVaccine","updatedVaccine","code","is_active","vaccineId","status","vIndex","sIndex","errors","toggleVaccine","setVaccines","addCustomVaccine","setCurrentView","updateScheduledVaccine","setBaseDatesMaster","setRecipientMaster","setDbTablesMaster","setFiltersMaster","upsertBaseDateMasterItem","upsertRecipientMasterItem","updateBaseDateMasterStatus","upsertFilterMasterItem","updateFilterMasterStatus","setFeatureRights","setImmunizationConfigLoaded","resetImmunizationState","activateSelectedVaccines","setSelectedVaccineIds","setValidationErrors","clearValidationErrors","setVaccineStatus","immunizationSlice_default","safeParseJson","value","fallback","toStableId","parts","normaliseEligibilityValue","calculateOverallEligibility","doseDetails","doseType","doses","details","eligibleFrom","eligibleTo","first","last","mapImmunizationVaccineConfig","doseTypeLower","isFixed","durationUnits","dose","perDoseUnits","regions","location","_a","dependencies","dependency","parsedFilters","filters","parsedCodeSets","codeSets","getVaccines","execute","getBaseDates","getRecipients","getImmunizationReferenceData","executeAll","addImmunization","data","updateImmunization","checkImmunizationConfigurationInitiation","updateVaccineStatus","updateVaccineStatusFromArray","updateImmunizationConfigurationInitiation","saveBaseDate","saveRecipient","updateRecipient","updateBaseDate","getAllTablesAndColumns","getFilters","addFilter","updateFilter","getImmunisationV2List","api","revalidateImmunisationV2List","ImmunizationUtil"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../routes/routes.jsx","../../app-shell/src/store/reducers/immunizationSlice.js","../src/views/ImmunizationConfiguration/service/ImmunizationUtil.js"],"sourcesContent":["import { lazy } from \"react\";\n\nconst VerifyRoute = lazy(\n () => import(\"@/views/feature-components/VerifyRoute.jsx\"),\n);\nconst Roles = lazy(() => import(\"../src/views/Roles/RoleManagement\"));\nconst QueryBuilder = lazy(\n () => import(\"../src/views/QueryBuilder/QueryBuilder\"),\n);\nconst UserList = lazy(() => import(\"../src/views/Users/UserList\"));\nconst ManageUser = lazy(() => import(\"../src/views/Users/ManageUser\"));\nconst QueryManagement = lazy(\n () => import(\"../src/views/QueryManagement/QueryManagement\"),\n);\nconst FeatureMenu = lazy(() => import(\"../src/views/Features/FeatureMenu\"));\nconst ActivityAnalytics = lazy(() => import(\"../src/views/ActivityAnalytics/index\"));\nconst NewServerManagement = lazy(\n () => import(\"../src/views/Features/NewServerManagement\"),\n);\nconst ManageDynamicFeature = lazy(\n () => import(\"../src/views/Features/ManageDynamicFeature\"),\n);\nconst SecurityAuditLogList = lazy(\n () => import(\"../src/views/SecurityAuditLog/SecurityAuditLogList\"),\n);\nconst EventConfigurations = lazy(\n () => import(\"../src/views/Events/EventConfigurations\"),\n);\nconst ManageEventConfiguration = lazy(\n () => import(\"../src/views/Events/ManageEventConfiguration\"),\n);\nconst EntityManagement = lazy(\n () => import('../src/views/Mobile/EntityManagement/EntityManagement.jsx')\n);\nconst MobileMenuManagement = lazy(\n () => import('../src/views/MobileMenuManagement/MobileMenuManagement')\n);\nconst AddMenuConfiguration = lazy(\n () => import('../src/views/MobileMenuManagement/AddMenuConfiguration')\n);\nconst ManageTranslation = lazy(\n () => import(\"../src/views/Translation/ManageTranslation\"),\n);\nconst WidgetList = lazy(\n () => import(\"../src/views/Widgets/WidgetList\")\n);\nconst NotificationList = lazy(\n () => import(\"../src/views/Notifications/NotificationList\"),\n);\nconst ImmunizationConfigurationsList = lazy(\n () => import(\"../src/views/Immunization/ImmunizationConfigurationsList\"),\n);\nconst ManageImmunization = lazy(\n () => import(\"../src/views/Immunization/manageImmunization\"),\n);\nconst ImmunizationConfiguration = lazy(\n () =>\n import(\"../src/views/ImmunizationConfiguration/ImmunizationConfigurationBase.jsx\"),\n);\nconst FhirServerList = lazy(\n () => import(\"../src/views/FhirResource/FhirServerList\"),\n);\nconst FhirServerWizard = lazy(\n () => import(\"../src/views/FhirResource/FhirServerWizard\"),\n);\nconst FhirServerProfile = lazy(\n () => import(\"../src/views/FhirResource/FhirServerProfile\"),\n);\nconst FhirRawResourceList = lazy(\n () => import(\"../src/views/FhirResource/FhirRawResourceList\"),\n);\n\nconst corecustom2Routes = [\n {\n path: \"medplat/manage/role\",\n element: (\n <VerifyRoute\n headerTitle={\"Roles\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/role\"\n component={Roles}\n />\n ),\n },\n {\n path: \"medplat/manage/query\",\n element: (\n <VerifyRoute\n headerTitle={\"Query Master\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/query\"\n component={QueryBuilder}\n />\n ),\n },\n {\n path: \"medplat/manage/users\",\n element: (\n <VerifyRoute\n headerTitle={\"Users\"}\n pageTitle={\"UserList\"}\n url=\"medplat/manage/users\"\n component={UserList}\n />\n ),\n },\n {\n path: \"medplat/manage/user\",\n element: (\n <VerifyRoute\n headerTitle={\"Users\"}\n pageTitle={\"ManageUser\"}\n url=\"medplat/manage/users\"\n component={ManageUser}\n />\n ),\n },\n {\n path: \"medplat/manage/user/:id\",\n element: (\n <VerifyRoute\n headerTitle={\"Users\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/users\"\n component={ManageUser}\n />\n ),\n },\n {\n path: \"medplat/querymanagement\",\n element: (\n <VerifyRoute\n headerTitle={\"Query Management\"}\n pageTitle={\"General\"}\n url=\"medplat/querymanagement\"\n component={QueryManagement}\n />\n ),\n },\n {\n path: \"medplat/manage/menu\",\n element: (\n <VerifyRoute\n headerTitle={\"Features\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/menu\"\n component={FeatureMenu}\n />\n ),\n },\n {\n path: \"medplat/manage/menu/addfeature\",\n element: (\n <VerifyRoute\n headerTitle={\"Features\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/menu\"\n component={ManageDynamicFeature}\n />\n ),\n },\n {\n path: \"medplat/manage/menu/addDynamicFeature\",\n element: (\n <VerifyRoute\n headerTitle={\"Features\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/menu\"\n component={ManageDynamicFeature}\n />\n ),\n },\n {\n path: \"medplat/notification/all\",\n element: (\n <VerifyRoute\n headerTitle={\"Event Configuration\"}\n pageTitle={\"General\"}\n url=\"medplat/notification/all\"\n component={EventConfigurations}\n />\n ),\n },\n {\n path: \"medplat/views/config\",\n element: (\n <VerifyRoute\n headerTitle={\"Event Configuration\"}\n pageTitle={\"General\"}\n url=\"medplat/notification\"\n component={ManageEventConfiguration}\n />\n ),\n },\n {\n path: \"medplat/views/config/:id\",\n element: (\n <VerifyRoute\n headerTitle={\"Event Configuration\"}\n pageTitle={\"General\"}\n url=\"medplat/notification\"\n component={ManageEventConfiguration}\n />\n ),\n },\n {\n path: \"medplat/admin/newServerManagement\",\n element: (\n <VerifyRoute\n headerTitle={\"Server Management\"}\n url=\"medplat/admin/newServerManagement\"\n component={NewServerManagement}\n />\n ),\n },\n {\n path: 'medplat/admin/mobileEntityManagement',\n element: (\n <VerifyRoute\n pageTitle={'General'}\n url=\"medplat/admin/mobileEntityManagement\"\n component={EntityManagement}\n headerTitle={'Mobile Database Management'}\n />\n ),\n },\n {\n path: 'medplat/admin/mobileMenuManagement',\n element: (\n <VerifyRoute\n url=\"medplat/admin/mobileMenuManagement\"\n component={<MobileMenuManagement />}\n headerTitle={'Mobile Menu Management'}\n />\n ),\n },\n {\n path: 'medplat/admin/mobileMenuManagement/addMenuConfiguration',\n element: <AddMenuConfiguration />,\n },\n {\n path: \"medplat/manage/manageTranslation\",\n element: (\n <VerifyRoute\n headerTitle={\"Manage Translation\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/manageTranslation\"\n component={ManageTranslation}\n />\n ),\n },\n {\n path: \"medplat/manage/managewidgets\",\n element: (\n <VerifyRoute\n headerTitle={\"Widgets\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/manage-widgets\"\n component={WidgetList}\n />\n ),\n },\n {\n path: \"medplat/manage/notification\",\n element: (\n <VerifyRoute\n headerTitle={\"Notification Configuration\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/notification\"\n component={NotificationList}\n />\n ),\n },\n {\n path: \"medplat/manage/immunizationConfiguratorList\",\n element: (\n <VerifyRoute\n headerTitle={\"Immunizations\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/manageTranslation\"\n component={ImmunizationConfigurationsList}\n />\n ),\n },\n {\n path: \"medplat/manage/manageImmunization\",\n element: (\n <VerifyRoute\n headerTitle={\"Immunizations\"}\n pageTitle={\"General\"}\n url=\"medplat/training/question\"\n component={ManageImmunization}\n />\n ),\n },\n {\n path: \"medplat/manage/manageImmunization/:id\",\n element: (\n <VerifyRoute\n headerTitle={\"Immunizations\"}\n pageTitle={\"General\"}\n url=\"medplat/training/question\"\n component={ManageImmunization}\n />\n ),\n },\n {\n path: \"medplat/manage/immunizationConfiguration\",\n element: (\n <VerifyRoute\n headerTitle={\"Immunization Configuration\"}\n pageTitle={\"General\"}\n url=\"medplat/manage/immunizationConfiguration\"\n component={ImmunizationConfiguration}\n />\n ),\n },\n {\n path: \"medplat/manage/securityAuditLogs\",\n element: (\n <VerifyRoute\n headerTitle={\"Security Audit Logs\"}\n pageTitle={\"Security Audit Logs\"}\n url=\"medplat/manage/securityAuditLogs\"\n component={SecurityAuditLogList}\n />\n ),\n },\n {\n path: \"medplat/manage/activityAnalytics\",\n element: (\n <VerifyRoute\n headerTitle={\"Activity Analytics\"}\n url=\"medplat/manage/activityAnalytics\"\n component={ActivityAnalytics}\n />\n ),\n },\n {\n path: \"medplat/admin/fhirResource\",\n element: (\n <VerifyRoute\n headerTitle={\"FHIR Sync\"}\n pageTitle={\"General\"}\n url=\"medplat/admin/fhirResource\"\n component={FhirServerList}\n />\n ),\n },\n {\n path: \"medplat/admin/fhirResource/new\",\n element: (\n <VerifyRoute\n headerTitle={\"Connect FHIR Server\"}\n pageTitle={\"General\"}\n url=\"medplat/admin/fhirResource\"\n component={FhirServerWizard}\n />\n ),\n },\n {\n path: \"medplat/admin/fhirResource/:serverId\",\n element: (\n <VerifyRoute\n headerTitle={\"FHIR Server\"}\n pageTitle={\"General\"}\n url=\"medplat/admin/fhirResource\"\n component={FhirServerProfile}\n />\n ),\n },\n {\n path: \"medplat/admin/fhirResource/:serverId/staging\",\n element: (\n <VerifyRoute\n headerTitle={\"FHIR Staging Inbox\"}\n pageTitle={\"General\"}\n url=\"medplat/admin/fhirResource\"\n component={FhirRawResourceList}\n />\n ),\n },\n];\n\nexport default corecustom2Routes;\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst createInitialState = () => ({\n vaccines: [],\n selectedVaccineIds: [],\n views: [\n {\n id: 'landing',\n name: 'Dashboard',\n },\n {\n id: 'schedule-config',\n name: 'Schedule Config',\n },\n {\n id: 'summary',\n name: 'Configuration Summary',\n },\n ],\n currentViewId: 'summary',\n scheduledVaccines: [],\n baseDateMaster: [],\n recipientMaster: [],\n dbTablesMaster: [],\n filtersMaster: [],\n featureRights: {},\n isConfigLoaded: false,\n validationErrors: {},\n});\n\nconst initialState = createInitialState();\n\nconst upsertByIdOrCode = (items = [], incoming = {}) => {\n const matchIndex = items.findIndex(\n (item) =>\n (incoming.id !== undefined && item?.id === incoming.id) ||\n (incoming.code && item?.code === incoming.code),\n );\n\n if (matchIndex === -1) {\n return [...items, incoming];\n }\n\n return items.map((item, index) =>\n index === matchIndex\n ? {\n ...item,\n ...incoming,\n }\n : item,\n );\n};\n\nconst immunizationSlice = createSlice({\n name: 'immunization',\n initialState,\n reducers: {\n toggleVaccine: (state, action) => {\n const id = action.payload;\n if (!Array.isArray(state.selectedVaccineIds)) state.selectedVaccineIds = [];\n\n const index = state.selectedVaccineIds.indexOf(id);\n if (index > -1) {\n state.selectedVaccineIds.splice(index, 1);\n } else {\n state.selectedVaccineIds.push(id);\n }\n },\n setVaccines: (state, action) => {\n const vaccines = Array.isArray(action.payload) ? action.payload : [];\n state.vaccines = vaccines;\n if (state.selectedVaccineIds.length === 0) {\n state.selectedVaccineIds = vaccines\n .filter((vaccine) => vaccine.isActive)\n .map((vaccine) => vaccine.id);\n }\n },\n setSelectedVaccineIds: (state, action) => {\n state.selectedVaccineIds = action.payload;\n },\n addCustomVaccine: (state, action) => {\n const payload = action.payload || {};\n const {\n name,\n vaccine_name,\n disease,\n target_prevention,\n id,\n baseDateCode,\n base_date_code,\n recipientType,\n recipient_type,\n } = payload;\n const finalName = name || vaccine_name || 'Unnamed Vaccine';\n const finalCategory = disease || target_prevention || 'General';\n\n const vaccines = Array.isArray(state.vaccines) ? state.vaccines : [];\n const validIds = vaccines.map((v) => Number(v?.id)).filter((id) => !Number.isNaN(id));\n const nextId = validIds.length > 0 ? Math.max(...validIds) + 1 : 1;\n\n const finalId = id || nextId;\n const newVaccine = {\n id: finalId,\n name: finalName,\n category: finalCategory,\n doses: 0,\n doseType: 'FIXED',\n doseDetails: {},\n regions: [],\n dependencies: [],\n isActive: payload.isActive !== undefined ? payload.isActive : false,\n baseDateCode: baseDateCode || base_date_code || null,\n recipientType: recipientType || recipient_type || '',\n };\n\n if (!Array.isArray(state.vaccines)) state.vaccines = [];\n state.vaccines.push(newVaccine);\n },\n setCurrentView: (state, action) => {\n state.currentViewId = action.payload;\n },\n updateScheduledVaccine: (state, action) => {\n const updatedVaccine = action.payload;\n const index = state.scheduledVaccines.findIndex((v) => v.id === updatedVaccine.id);\n if (index !== -1) {\n state.scheduledVaccines[index] = {\n ...state.scheduledVaccines[index],\n ...updatedVaccine,\n };\n } else {\n state.scheduledVaccines.push(updatedVaccine);\n }\n },\n setBaseDatesMaster: (state, action) => {\n state.baseDateMaster = action.payload;\n },\n setRecipientMaster: (state, action) => {\n state.recipientMaster = action.payload;\n },\n setDbTablesMaster: (state, action) => {\n state.dbTablesMaster = action.payload;\n },\n setFiltersMaster: (state, action) => {\n state.filtersMaster = action.payload;\n },\n upsertBaseDateMasterItem: (state, action) => {\n state.baseDateMaster = upsertByIdOrCode(state.baseDateMaster, action.payload);\n },\n upsertRecipientMasterItem: (state, action) => {\n state.recipientMaster = upsertByIdOrCode(state.recipientMaster, action.payload);\n },\n updateBaseDateMasterStatus: (state, action) => {\n const { code, is_active } = action.payload;\n state.baseDateMaster = state.baseDateMaster.map((item) =>\n item.code === code ? { ...item, is_active } : item,\n );\n },\n upsertFilterMasterItem: (state, action) => {\n state.filtersMaster = upsertByIdOrCode(state.filtersMaster, action.payload);\n },\n updateFilterMasterStatus: (state, action) => {\n const { code, is_active } = action.payload;\n state.filtersMaster = state.filtersMaster.map((item) =>\n item.code === code ? { ...item, is_active } : item,\n );\n },\n setFeatureRights: (state, action) => {\n state.featureRights = action.payload || {};\n },\n setImmunizationConfigLoaded: (state, action) => {\n state.isConfigLoaded = action.payload;\n },\n resetImmunizationState: () => createInitialState(),\n activateSelectedVaccines: (state) => {\n state.vaccines = state.vaccines.map((v) => ({\n ...v,\n isActive: state.selectedVaccineIds.includes(v.id),\n }));\n },\n setVaccineStatus: (state, action) => {\n const { vaccineId, status } = action.payload;\n const vIndex = state.vaccines.findIndex((v) => v.id === vaccineId);\n if (vIndex !== -1) {\n state.vaccines[vIndex].isActive = status;\n }\n\n if (!Array.isArray(state.selectedVaccineIds)) state.selectedVaccineIds = [];\n const sIndex = state.selectedVaccineIds.indexOf(vaccineId);\n if (status && sIndex === -1) {\n state.selectedVaccineIds.push(vaccineId);\n } else if (!status && sIndex !== -1) {\n state.selectedVaccineIds.splice(sIndex, 1);\n }\n },\n setValidationErrors: (state, action) => {\n const { vaccineId, errors } = action.payload;\n state.validationErrors[vaccineId] = errors;\n },\n clearValidationErrors: (state, action) => {\n const vaccineId = action.payload;\n if (vaccineId) {\n delete state.validationErrors[vaccineId];\n } else {\n state.validationErrors = {};\n }\n },\n },\n});\n\nexport const {\n toggleVaccine,\n setVaccines,\n addCustomVaccine,\n setCurrentView,\n updateScheduledVaccine,\n setBaseDatesMaster,\n setRecipientMaster,\n setDbTablesMaster,\n setFiltersMaster,\n upsertBaseDateMasterItem,\n upsertRecipientMasterItem,\n updateBaseDateMasterStatus,\n upsertFilterMasterItem,\n updateFilterMasterStatus,\n setFeatureRights,\n setImmunizationConfigLoaded,\n resetImmunizationState,\n activateSelectedVaccines,\n setSelectedVaccineIds,\n setValidationErrors,\n clearValidationErrors,\n setVaccineStatus,\n} = immunizationSlice.actions;\nexport default immunizationSlice.reducer;\n","import { execute, executeAll } from \"@/common/services/GlobalApis\";\nimport { api } from \"@/common/interceptors/AxiosInterceptor\";\n\nconst safeParseJson = (value, fallback) => {\n if (value == null) {\n return fallback;\n }\n\n if (typeof value !== \"string\") {\n return value;\n }\n\n try {\n return JSON.parse(value);\n } catch {\n return fallback;\n }\n};\n\nconst toStableId = (...parts) => parts.filter(Boolean).join(\"_\");\n\nconst normaliseEligibilityValue = (value) => {\n if (\n value === undefined ||\n value === null ||\n value === \"\" ||\n value === \"N.A.\" ||\n value === \"null days\"\n ) {\n return \"N.A.\";\n }\n\n return value;\n};\n\nconst calculateOverallEligibility = (\n doseDetails,\n doseType = \"FLEXIBLE\",\n doses = 1,\n) => {\n if (doses === 0) {\n return \"N.A.\";\n }\n\n if (!doseDetails) {\n return \"N.A.\";\n }\n\n if (doseType === \"FIXED\") {\n const details = Array.isArray(doseDetails) ? doseDetails[0] : doseDetails;\n if (!details) {\n return \"N.A.\";\n }\n\n const eligibleFrom = normaliseEligibilityValue(details.eligibleFrom);\n const eligibleTo = normaliseEligibilityValue(details.eligibleTo);\n\n if (eligibleFrom === \"N.A.\" && eligibleTo === \"N.A.\") {\n return \"N.A.\";\n }\n\n return `${eligibleFrom} to ${eligibleTo}`;\n }\n\n if (!Array.isArray(doseDetails) || doseDetails.length === 0) {\n return \"N.A.\";\n }\n\n const first = normaliseEligibilityValue(doseDetails[0].eligibleFrom);\n const last = normaliseEligibilityValue(\n doseDetails[doseDetails.length - 1].eligibleTo,\n );\n\n if (first === \"N.A.\" && last === \"N.A.\") {\n return \"N.A.\";\n }\n\n return `${first} to ${last}`;\n};\n\nconst mapImmunizationVaccineConfig = (vaccine) => {\n const doseTypeLower = String(vaccine.dose_type || \"\").toLowerCase();\n const isFixed =\n doseTypeLower === \"fixed\" || doseTypeLower === \"na\" || !vaccine.dose_type;\n\n const durationUnits = safeParseJson(vaccine.duration_units, {\n eligibleFrom: \"days\",\n eligibleTo: \"days\",\n interval: \"days\",\n });\n\n const doseDetails = isFixed\n ? [\n {\n id: toStableId(\"fixed\", vaccine.id),\n eligibleFrom:\n vaccine.dose_eligible_from !== undefined\n ? `${vaccine.dose_eligible_from} ${durationUnits.eligibleFrom || \"days\"}`\n : \"\",\n eligibleTo:\n vaccine.dose_eligible_to !== undefined\n ? `${vaccine.dose_eligible_to} ${durationUnits.eligibleTo || \"days\"}`\n : \"\",\n interval: vaccine.min_gap || 0,\n },\n ]\n : safeParseJson(vaccine.dose, []).map((dose, index) => {\n const perDoseUnits = {\n eligibleFrom:\n dose.eligible_from_unit || durationUnits.eligibleFrom || \"days\",\n eligibleTo:\n dose.eligible_to_unit || durationUnits.eligibleTo || \"days\",\n interval: dose.interval_unit || durationUnits.interval || \"days\",\n overdue: dose.overdue_unit || \"days\",\n };\n return {\n id: dose.id || toStableId(\"dose\", vaccine.id, index),\n isBooster:\n dose.isBooster === true ||\n dose.is_booster === true ||\n (typeof dose.dose === \"string\" &&\n dose.dose.toUpperCase().startsWith(\"B\")),\n alias: dose.alias || dose.booster_alias || \"\",\n eligibleFrom:\n dose.eligible_from !== undefined\n ? `${dose.eligible_from} ${perDoseUnits.eligibleFrom}`\n : \"\",\n eligibleTo:\n dose.eligible_to !== undefined\n ? `${dose.eligible_to} ${perDoseUnits.eligibleTo}`\n : \"\",\n overdue:\n dose.overdue !== undefined && dose.overdue !== null\n ? `${dose.overdue} ${perDoseUnits.overdue}`\n : \"\",\n interval: dose.min_gap || 0,\n units: perDoseUnits,\n };\n });\n\n const regions = safeParseJson(vaccine.location, [])\n .filter((location) => location && typeof location === \"object\")\n .map((location, index) => ({\n id: toStableId(\"region\", vaccine.id, index),\n locationId: location.locationId,\n locationIdArr: location.locationIdArr,\n locationList: location.locationList,\n fullPath: location.locationList?.replaceAll(\" => \", \" → \"),\n }));\n\n const dependencies = safeParseJson(vaccine.validations, []).map(\n (dependency, index) => ({\n id: toStableId(\"dep\", vaccine.id, index),\n vaccine: dependency.vaccine || \"\",\n requirement: dependency.requirement || \"Should be given\",\n minGap: Number.parseInt(dependency.minGap, 10) || 0,\n maxGap: Number.parseInt(dependency.maxGap, 10) || 0,\n message: dependency.message || \"\",\n }),\n );\n\n const parsedFilters = safeParseJson(vaccine.filters, []);\n const filters = Array.isArray(parsedFilters)\n ? parsedFilters\n : parsedFilters?.codes || [];\n\n const parsedCodeSets = safeParseJson(vaccine.code_sets, []);\n const codeSets = Array.isArray(parsedCodeSets) ? parsedCodeSets : [];\n\n return {\n ...vaccine,\n name: vaccine.vaccine_name || vaccine.name || \"N.A.\",\n category:\n vaccine.target_prevention ||\n vaccine.disease ||\n vaccine.category ||\n \"N.A.\",\n doses: vaccine.no_of_doses || 0,\n doseType:\n vaccine.dose_type && vaccine.dose_type !== \"NA\"\n ? vaccine.dose_type\n : \"FIXED\",\n doseDetails,\n eligibility: calculateOverallEligibility(\n doseDetails,\n vaccine.dose_type,\n vaccine.no_of_doses || 0,\n ),\n isActive: vaccine.is_active !== undefined ? vaccine.is_active : true,\n regions,\n dependencies,\n filters,\n codeSets,\n durationUnits,\n baseDateCode: vaccine.base_date_code,\n recipientType: vaccine.recipient_type || \"\",\n };\n};\n\nconst getVaccines = () => {\n return execute({\n code: \"FETCH_IMMUNISATION_MASTER\",\n parameters: {},\n });\n};\n\nconst getBaseDates = () => {\n return execute({\n code: \"FETCH_IMMUNISATION_BASE_DATE\",\n parameters: {},\n });\n};\n\nconst getRecipients = () => {\n return execute({\n code: \"FETCH_IMMUNISATION_RECEPIENT_MASTER\",\n parameters: {},\n });\n};\n\nconst getImmunizationReferenceData = () => {\n return executeAll([\n {\n code: \"FETCH_IMMUNISATION_BASE_DATE\",\n parameters: {},\n sequence: 1,\n },\n {\n code: \"GET_ALL_IMMUNISATION_FILTERS\",\n parameters: {},\n sequence: 2,\n },\n {\n code: \"FETCH_IMMUNISATION_MASTER\",\n parameters: {},\n sequence: 3,\n },\n {\n code: \"FETCH_IMMUNISATION_RECEPIENT_MASTER\",\n parameters: {},\n sequence: 4,\n },\n ]);\n};\n\nconst addImmunization = (data) => {\n return execute({\n code: \"INSERT_IMMUNIZATION_MASTER\",\n parameters: data,\n });\n};\n\nconst updateImmunization = (data) => {\n return execute({\n code: \"UPDATE_IMMUNIZATION_DOSE\",\n ...data,\n });\n};\n\nconst checkImmunizationConfigurationInitiation = (data) => {\n return execute({\n code: \"CHECK_IMMUNIZATION_CONFIGURATION_INITIATION\",\n ...data,\n });\n};\n\nconst updateVaccineStatus = (data) => {\n return execute({\n code: \"UPDATE_IMMUNIZATION_STATUS\",\n ...data,\n });\n};\n\nconst updateVaccineStatusFromArray = (data) => {\n return execute({\n code: \"UPDATE_IMMUNIZATION_STATUS_FOR_ARRAY\",\n ...data,\n });\n};\n\nconst updateImmunizationConfigurationInitiation = (data) => {\n return execute({\n code: \"UPDATE_IMMUNIZATION_CONFIGURATION_INITIATION\",\n ...data,\n });\n};\n\nconst saveBaseDate = (data) => {\n return execute({\n code: \"SAVE_IMMUNISATION_BASE_DATE\",\n parameters: data,\n });\n};\n\nconst saveRecipient = (data) => {\n return execute({\n code: \"SAVE_IMMUNISATION_RECEPIENT_MASTER\",\n parameters: data,\n });\n};\n\nconst updateRecipient = (data) => {\n return execute({\n code: \"UPDATE_IMMUNISATION_RECEPIENT_MASTER\",\n parameters: data,\n });\n};\n\nconst updateBaseDate = (data) => {\n return execute({\n code: \"UPDATE_IMMUNISATION_BASE_DATE\",\n parameters: data,\n });\n};\n\nconst getAllTablesAndColumns = () => {\n return execute({\n code: \"retrieve_all_tables_and_columns\",\n parameters: {},\n });\n};\n\nconst getFilters = () => {\n return execute({\n code: \"GET_ALL_IMMUNISATION_FILTERS\",\n parameters: {},\n });\n};\n\nconst addFilter = (data) => {\n return execute({\n code: \"ADD_IMMUNISATION_FILTER\",\n parameters: data,\n });\n};\n\nconst updateFilter = (data) => {\n return execute({\n code: \"UPDATE_IMMUNISATION_FILTER\",\n parameters: data,\n });\n};\n\nconst getImmunisationV2List = (data) => {\n return api.post(\"/medplatform/v2/immunisation/list\", data);\n};\n\nconst revalidateImmunisationV2List = (data) => {\n return api.post(\"/medplatform/v2/immunisation/revalidate\", data);\n};\n\nexport const ImmunizationUtil = {\n calculateOverallEligibility,\n mapImmunizationVaccineConfig,\n getVaccines,\n getBaseDates,\n getRecipients,\n getImmunizationReferenceData,\n addImmunization,\n updateImmunization,\n checkImmunizationConfigurationInitiation,\n updateVaccineStatus,\n updateVaccineStatusFromArray,\n updateImmunizationConfigurationInitiation,\n saveBaseDate,\n saveRecipient,\n updateRecipient,\n updateBaseDate,\n getAllTablesAndColumns,\n getFilters,\n addFilter,\n updateFilter,\n getImmunisationV2List,\n revalidateImmunisationV2List,\n};\n"],"names":["VerifyRoute","lazy","Roles","QueryBuilder","n","UserList","ManageUser","QueryManagement","FeatureMenu","ActivityAnalytics","NewServerManagement","ManageDynamicFeature","SecurityAuditLogList","EventConfigurations","ManageEventConfiguration","EntityManagement","MobileMenuManagement","AddMenuConfiguration","ManageTranslation","WidgetList","NotificationList","ImmunizationConfigurationsList","ManageImmunization","ImmunizationConfiguration","FhirServerList","FhirServerWizard","FhirServerProfile","FhirRawResourceList","corecustom2Routes","jsx","createInitialState","initialState","upsertByIdOrCode","items","incoming","matchIndex","item","index","immunizationSlice","createSlice","state","action","id","vaccines","vaccine","payload","name","vaccine_name","disease","target_prevention","baseDateCode","base_date_code","recipientType","recipient_type","finalName","finalCategory","validIds","v","nextId","newVaccine","updatedVaccine","code","is_active","vaccineId","status","vIndex","sIndex","errors","toggleVaccine","setVaccines","addCustomVaccine","setCurrentView","updateScheduledVaccine","setBaseDatesMaster","setRecipientMaster","setDbTablesMaster","setFiltersMaster","upsertBaseDateMasterItem","upsertRecipientMasterItem","updateBaseDateMasterStatus","upsertFilterMasterItem","updateFilterMasterStatus","setFeatureRights","setImmunizationConfigLoaded","resetImmunizationState","activateSelectedVaccines","setSelectedVaccineIds","setValidationErrors","clearValidationErrors","setVaccineStatus","immunizationSlice_default","safeParseJson","value","fallback","toStableId","parts","normaliseEligibilityValue","calculateOverallEligibility","doseDetails","doseType","doses","details","eligibleFrom","eligibleTo","first","last","mapImmunizationVaccineConfig","doseTypeLower","isFixed","durationUnits","dose","perDoseUnits","regions","location","_a","dependencies","dependency","parsedFilters","filters","parsedCodeSets","codeSets","getVaccines","execute","getBaseDates","getRecipients","getImmunizationReferenceData","executeAll","addImmunization","data","updateImmunization","checkImmunizationConfigurationInitiation","updateVaccineStatus","updateVaccineStatusFromArray","updateImmunizationConfigurationInitiation","saveBaseDate","saveRecipient","updateRecipient","updateBaseDate","getAllTablesAndColumns","getFilters","addFilter","updateFilter","getImmunisationV2List","api","revalidateImmunisationV2List","ImmunizationUtil"],"mappings":"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"}
@@ -0,0 +1,308 @@
1
+ import { api as l } from "@/common/interceptors/AxiosInterceptor";
2
+ import { jsx as n, jsxs as m } from "react/jsx-runtime";
3
+ import o from "prop-types";
4
+ import { Box as u, Stack as y, Typography as h, Chip as v, Card as E, CardContent as A, LinearProgress as T, TableContainer as I, Table as M, TableRow as k, TableCell as W, Alert as N, Button as O } from "@mui/material";
5
+ import { useTheme as S, alpha as b } from "@mui/material/styles";
6
+ import F from "@/views/custom-components/CustomConfirmationModal";
7
+ import { useMemo as D } from "react";
8
+ import { useSelector as w } from "react-redux";
9
+ import B from "@mui/icons-material/LockOutlined";
10
+ import { useNavigate as H } from "react-router";
11
+ const c = "/fhir", ce = () => l.get(`${c}/servers`), de = (e) => l.get(`${c}/servers/${e}`), pe = (e) => l.post(`${c}/servers`, e), ue = (e, t) => l.put(`${c}/servers/${e}`, t), he = (e) => l.delete(`${c}/servers/${e}`), f = { showLoader: !1 }, me = (e) => l.post(`${c}/servers/${e}/refresh-capability`, null, f), L = (e, t) => l.post(`${c}/servers/${e}/sync`, { resourceTypes: t }, f), be = (e, t, r) => l.post(`${c}/servers/${e}/sync-one`, { resourceType: t, fhirId: r }, f), fe = async (e, t, { alsoProcess: r = !0, onProgress: s } = {}) => {
12
+ var i;
13
+ let a = 0;
14
+ for (let p = 0; p < t.length; p++) {
15
+ s == null || s({ phase: "sync", type: t[p], done: p, total: t.length });
16
+ const d = await L(e, [t[p]]);
17
+ a += Object.values(((i = d == null ? void 0 : d.data) == null ? void 0 : i.counts) ?? {}).reduce((C, R) => C + R, 0);
18
+ }
19
+ return r && (s == null || s({ phase: "process", done: t.length, total: t.length }), await _(e)), s == null || s({ phase: "done", done: t.length, total: t.length }), a;
20
+ }, _ = (e) => l.post(`${c}/servers/${e}/process`, null, f), ye = (e, t = "FAILED") => l.post(`${c}/servers/${e}/reprocess?mode=${t}`, null, f), ge = (e) => l.post(`${c}/raw/${e}/reprocess`, null, f), xe = (e, { page: t = 0, size: r = 10, search: s, resourceType: a, downloadStatus: i, processingStatus: p } = {}) => {
21
+ const d = new URLSearchParams({ page: t, size: r });
22
+ return s && d.set("search", s), a && d.set("resourceType", a), i && d.set("downloadStatus", i), p && d.set("processingStatus", p), l.get(`${c}/servers/${e}/raw?${d.toString()}`);
23
+ }, ve = (e) => l.get(`${c}/servers/${e}/raw/resource-types`), $e = (e) => l.get(`${c}/raw/${e}/sync-events`, f), Te = (e) => l.get(`${c}/raw/sync-events/${e}`, f), g = "#0f766e", x = "#115e59";
24
+ function j({ title: e, subtitle: t, chips: r = [], actions: s }) {
25
+ const a = S();
26
+ return /* @__PURE__ */ n(
27
+ u,
28
+ {
29
+ sx: {
30
+ position: "relative",
31
+ mb: 2,
32
+ p: { xs: 2, md: 2.5 },
33
+ borderRadius: 1.5,
34
+ border: `1px solid ${b(g, 0.18)}`,
35
+ background: `linear-gradient(135deg, ${b(a.palette.background.paper, 0.98)} 0%, ${b(g, 0.07)} 100%)`,
36
+ boxShadow: `0 18px 44px ${b("#0f172a", 0.06)}`,
37
+ overflow: "hidden",
38
+ "&::before": {
39
+ content: '""',
40
+ position: "absolute",
41
+ left: 0,
42
+ top: 0,
43
+ bottom: 0,
44
+ width: 4,
45
+ background: `linear-gradient(180deg, ${g} 0%, ${x} 100%)`
46
+ }
47
+ },
48
+ children: /* @__PURE__ */ m(
49
+ y,
50
+ {
51
+ direction: { xs: "column", md: "row" },
52
+ justifyContent: "space-between",
53
+ alignItems: { xs: "flex-start", md: "center" },
54
+ spacing: 1.5,
55
+ children: [
56
+ /* @__PURE__ */ m(u, { sx: { minWidth: 0 }, children: [
57
+ /* @__PURE__ */ n(h, { variant: "overline", sx: { color: x, fontWeight: 800, letterSpacing: 1.1, lineHeight: 1 }, children: "FHIR Terminology Sync" }),
58
+ /* @__PURE__ */ n(h, { variant: "h5", sx: { fontWeight: 800, lineHeight: 1.2 }, children: e }),
59
+ t ? /* @__PURE__ */ n(h, { variant: "body2", sx: { mt: 0.75, maxWidth: 900, color: "text.secondary" }, children: t }) : null,
60
+ r != null && r.length ? /* @__PURE__ */ n(y, { direction: "row", spacing: 1, useFlexGap: !0, flexWrap: "wrap", sx: { mt: 1.5 }, children: r.map((i) => /* @__PURE__ */ n(
61
+ v,
62
+ {
63
+ label: i,
64
+ size: "small",
65
+ sx: { borderRadius: 2, backgroundColor: b(g, 0.1), color: x, fontWeight: 700, border: `1px solid ${b(g, 0.2)}` }
66
+ },
67
+ i
68
+ )) }) : null
69
+ ] }),
70
+ s ? /* @__PURE__ */ n(u, { children: s }) : null
71
+ ]
72
+ }
73
+ )
74
+ }
75
+ );
76
+ }
77
+ j.propTypes = {
78
+ title: o.node,
79
+ subtitle: o.node,
80
+ chips: o.arrayOf(o.string),
81
+ actions: o.node
82
+ };
83
+ function V({ title: e, subtitle: t, actions: r, children: s }) {
84
+ return /* @__PURE__ */ n(E, { sx: { borderRadius: 1.5, border: "1px solid", borderColor: "divider", boxShadow: "0 12px 32px rgba(15, 23, 42, 0.045)", overflow: "hidden" }, children: /* @__PURE__ */ m(A, { sx: { p: 0, "&:last-child": { pb: 0 } }, children: [
85
+ e || r ? /* @__PURE__ */ n(u, { sx: { px: 2.5, pt: 2, pb: 1.5 }, children: /* @__PURE__ */ m(y, { direction: { xs: "column", md: "row" }, justifyContent: "space-between", alignItems: { xs: "flex-start", md: "center" }, spacing: 1.5, children: [
86
+ /* @__PURE__ */ m(u, { sx: { minWidth: 0 }, children: [
87
+ e ? /* @__PURE__ */ n(h, { variant: "h6", sx: { fontWeight: 800, lineHeight: 1.2 }, children: e }) : null,
88
+ t ? /* @__PURE__ */ n(h, { variant: "caption", color: "text.secondary", children: t }) : null
89
+ ] }),
90
+ r ? /* @__PURE__ */ n(u, { children: r }) : null
91
+ ] }) }) : null,
92
+ /* @__PURE__ */ n(u, { sx: { p: 2.5, pt: e ? 0 : 2.5 }, children: s })
93
+ ] }) });
94
+ }
95
+ V.propTypes = {
96
+ title: o.node,
97
+ subtitle: o.node,
98
+ actions: o.node,
99
+ children: o.node
100
+ };
101
+ function z({ children: e }) {
102
+ const t = S();
103
+ return /* @__PURE__ */ n(I, { sx: { borderRadius: 1.5, border: `1px solid ${b(t.palette.divider, 0.55)}`, overflow: "auto" }, children: /* @__PURE__ */ n(
104
+ M,
105
+ {
106
+ size: "medium",
107
+ sx: {
108
+ "& thead .MuiTableRow-root": {
109
+ background: `linear-gradient(180deg, ${t.palette.grey[50]} 0%, ${t.palette.grey[100]} 100%)`
110
+ },
111
+ "& thead .MuiTableCell-root": {
112
+ fontWeight: 800,
113
+ fontSize: "0.7rem",
114
+ textTransform: "uppercase",
115
+ letterSpacing: "0.65px",
116
+ color: t.palette.text.secondary,
117
+ borderBottom: `1px solid ${t.palette.divider}`,
118
+ py: 1.25,
119
+ whiteSpace: "nowrap"
120
+ },
121
+ "& tbody .MuiTableRow-root": { transition: "background-color 140ms ease" },
122
+ "& tbody .MuiTableRow-root:hover": { backgroundColor: b(t.palette.primary.main, 0.04) },
123
+ "& tbody .MuiTableCell-root": { py: 1.4, borderBottom: `1px solid ${b(t.palette.divider, 0.5)}`, verticalAlign: "middle" },
124
+ "& tbody .MuiTableRow-root:last-of-type .MuiTableCell-root": { borderBottom: "none" }
125
+ },
126
+ children: e
127
+ }
128
+ ) });
129
+ }
130
+ z.propTypes = { children: o.node };
131
+ function G({ colSpan: e, title: t, hint: r, action: s }) {
132
+ return /* @__PURE__ */ n(k, { hover: !1, children: /* @__PURE__ */ n(W, { colSpan: e, sx: { py: 5, textAlign: "center", borderBottom: "none !important" }, children: /* @__PURE__ */ m(y, { alignItems: "center", spacing: 1.25, children: [
133
+ /* @__PURE__ */ n(h, { variant: "body2", sx: { fontWeight: 700 }, children: t }),
134
+ r ? /* @__PURE__ */ n(h, { variant: "caption", color: "text.secondary", sx: { maxWidth: 380 }, children: r }) : null,
135
+ s ? /* @__PURE__ */ n(u, { children: s }) : null
136
+ ] }) }) });
137
+ }
138
+ G.propTypes = {
139
+ colSpan: o.number.isRequired,
140
+ title: o.node,
141
+ hint: o.node,
142
+ action: o.node
143
+ };
144
+ const q = {
145
+ // active/inactive
146
+ ACTIVE: { label: "Active", color: "success" },
147
+ INACTIVE: { label: "Inactive", color: "default" },
148
+ // sync lifecycle
149
+ DISCOVERED: { label: "Discovered (definition only)", color: "warning" },
150
+ CONTENT_DOWNLOADED: { label: "Content synced", color: "success" },
151
+ // processing lifecycle
152
+ NOT_STARTED: { label: "Not processed", color: "default" },
153
+ PROCESSING: { label: "Processing", color: "warning" },
154
+ PROCESSED: { label: "Processed", color: "success" },
155
+ // shared
156
+ FAILED: { label: "Failed", color: "error" }
157
+ };
158
+ function U({ value: e, short: t = !1 }) {
159
+ if (!e) return /* @__PURE__ */ n(v, { label: "—", size: "small", variant: "outlined", sx: { borderRadius: 1.5, height: 22 } });
160
+ const r = q[e] ?? { label: e, color: "default" };
161
+ return /* @__PURE__ */ n(
162
+ v,
163
+ {
164
+ size: "small",
165
+ label: t ? (e.charAt(0) + e.slice(1).toLowerCase()).replace(/_/g, " ") : r.label,
166
+ color: r.color,
167
+ variant: r.color === "default" ? "outlined" : "filled",
168
+ sx: { fontWeight: 700, borderRadius: 1.5, height: 22 }
169
+ }
170
+ );
171
+ }
172
+ U.propTypes = {
173
+ value: o.string,
174
+ short: o.bool
175
+ };
176
+ function Y({ children: e, muted: t = !1 }) {
177
+ return /* @__PURE__ */ n(u, { component: "span", sx: {
178
+ fontFamily: "monospace",
179
+ fontSize: "0.75rem",
180
+ color: t ? "text.disabled" : "text.primary",
181
+ wordBreak: "break-all"
182
+ }, children: e ?? "—" });
183
+ }
184
+ Y.propTypes = { children: o.node, muted: o.bool };
185
+ function J({ confirm: e, onClose: t }) {
186
+ return /* @__PURE__ */ n(
187
+ F,
188
+ {
189
+ open: !!e,
190
+ title: (e == null ? void 0 : e.title) ?? "Please confirm",
191
+ description: (e == null ? void 0 : e.description) ?? "",
192
+ handleClose: t,
193
+ handleClick: async () => {
194
+ const r = e == null ? void 0 : e.onConfirm;
195
+ t(), r && await r();
196
+ },
197
+ dataTestId: "fhir-confirm-modal"
198
+ }
199
+ );
200
+ }
201
+ J.propTypes = {
202
+ confirm: o.shape({
203
+ title: o.node,
204
+ description: o.node,
205
+ onConfirm: o.func
206
+ }),
207
+ onClose: o.func.isRequired
208
+ };
209
+ function K({ progress: e }) {
210
+ if (!e) return null;
211
+ const { phase: t, type: r, done: s = 0, total: a = 0 } = e, i = a ? Math.round(s / a * 100) : 0, p = t === "process" || t === "done", d = t === "process" ? "Processing synced resources…" : t === "done" ? "Finishing up…" : `Syncing ${r}… (${Math.min(s + 1, a)} of ${a})`;
212
+ return /* @__PURE__ */ m(u, { sx: { py: 1.5 }, children: [
213
+ /* @__PURE__ */ m(y, { direction: "row", justifyContent: "space-between", alignItems: "baseline", sx: { mb: 0.75 }, children: [
214
+ /* @__PURE__ */ n(h, { variant: "body2", sx: { fontWeight: 700 }, children: d }),
215
+ !p && /* @__PURE__ */ m(h, { variant: "body2", color: "text.secondary", sx: { fontVariantNumeric: "tabular-nums" }, children: [
216
+ i,
217
+ "%"
218
+ ] })
219
+ ] }),
220
+ /* @__PURE__ */ n(
221
+ T,
222
+ {
223
+ variant: p ? "indeterminate" : "determinate",
224
+ value: i,
225
+ sx: { height: 8, borderRadius: 999 }
226
+ }
227
+ ),
228
+ /* @__PURE__ */ n(h, { variant: "caption", color: "text.secondary", sx: { mt: 1, display: "block" }, children: "Each resource is fetched at its best representation — this can take a moment for large terminologies." })
229
+ ] });
230
+ }
231
+ K.propTypes = {
232
+ progress: o.shape({
233
+ phase: o.oneOf(["sync", "process", "done"]),
234
+ type: o.string,
235
+ done: o.number,
236
+ total: o.number
237
+ })
238
+ };
239
+ const P = "techo.admin.fhirResource", $ = {
240
+ VIEW: "view.core.fhirResourceSync",
241
+ MANAGE: "update.core.fhirResourceSync"
242
+ };
243
+ function Q() {
244
+ const e = w((t) => {
245
+ var r;
246
+ return (r = t.Authenticate) == null ? void 0 : r.linearMenuItems;
247
+ });
248
+ return D(() => {
249
+ const t = e == null ? void 0 : e[P];
250
+ let r = t == null ? void 0 : t.featureJson;
251
+ if (typeof r == "string")
252
+ try {
253
+ r = JSON.parse(r);
254
+ } catch {
255
+ r = {};
256
+ }
257
+ const s = r && typeof r == "object" ? r : {}, a = (i) => !!i && s[i] === !0;
258
+ return {
259
+ has: a,
260
+ canView: a($.VIEW),
261
+ canManage: a($.MANAGE)
262
+ };
263
+ }, [e]);
264
+ }
265
+ function X({ perm: e = $.VIEW, children: t }) {
266
+ const r = Q(), s = H(), a = w((p) => {
267
+ var d;
268
+ return (d = p.Authenticate) == null ? void 0 : d.linearMenuItems;
269
+ });
270
+ return a != null ? r.has(e) ? t : /* @__PURE__ */ n(u, { sx: { p: 3 }, children: /* @__PURE__ */ n(N, { severity: "warning", icon: /* @__PURE__ */ n(B, {}), sx: { borderRadius: 1.5, alignItems: "flex-start" }, children: /* @__PURE__ */ m(y, { spacing: 1.25, children: [
271
+ /* @__PURE__ */ n(h, { sx: { fontWeight: 800 }, children: "You don’t have access to this page" }),
272
+ /* @__PURE__ */ n(h, { variant: "body2", color: "text.secondary", children: "Your account doesn’t have the required permission for FHIR Sync. Ask an admin to grant it via the role / user permission assignment." }),
273
+ /* @__PURE__ */ n(u, { children: /* @__PURE__ */ n(O, { size: "small", variant: "contained", onClick: () => s("/ui/"), children: "Back to Home" }) })
274
+ ] }) }) }) : /* @__PURE__ */ n(u, { sx: { p: 3 }, children: /* @__PURE__ */ n(T, {}) });
275
+ }
276
+ X.propTypes = {
277
+ perm: o.string,
278
+ children: o.node
279
+ };
280
+ export {
281
+ J as C,
282
+ G as E,
283
+ X as F,
284
+ z as G,
285
+ Y as M,
286
+ U as S,
287
+ j as a,
288
+ $ as b,
289
+ V as c,
290
+ K as d,
291
+ pe as e,
292
+ me as f,
293
+ ue as g,
294
+ de as h,
295
+ he as i,
296
+ be as j,
297
+ ge as k,
298
+ $e as l,
299
+ Te as m,
300
+ ve as n,
301
+ xe as o,
302
+ _ as p,
303
+ ye as q,
304
+ ce as r,
305
+ fe as s,
306
+ Q as u
307
+ };
308
+ //# sourceMappingURL=permissions-DEWACxJN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions-DEWACxJN.js","sources":["../src/services/FhirResource.js","../src/views/FhirResource/components/FhirUi.jsx","../src/views/FhirResource/components/permissions.jsx"],"sourcesContent":["import { api } from \"@/common/interceptors/AxiosInterceptor\";\n\nconst BASE = \"/fhir\";\n\n// ---- Servers ----\nexport const retrieveAllServers = () => api.get(`${BASE}/servers`);\nexport const retrieveServerById = (id) => api.get(`${BASE}/servers/${id}`);\nexport const createServer = (data) => api.post(`${BASE}/servers`, data);\nexport const updateServer = (id, data) => api.put(`${BASE}/servers/${id}`, data);\nexport const deleteServer = (id) => api.delete(`${BASE}/servers/${id}`);\n// These long-running operations render their own progress UI (progress bar / row\n// spinner), so the global page loader is suppressed with { showLoader: false }.\nconst NO_LOADER = { showLoader: false };\n\nexport const refreshCapability = (id) =>\n api.post(`${BASE}/servers/${id}/refresh-capability`, null, NO_LOADER);\n\n// ---- Synchronization ----\nexport const syncResourceTypes = (serverId, resourceTypes) =>\n api.post(`${BASE}/servers/${serverId}/sync`, { resourceTypes }, NO_LOADER);\nexport const syncSingleResource = (serverId, resourceType, fhirId) =>\n api.post(`${BASE}/servers/${serverId}/sync-one`, { resourceType, fhirId }, NO_LOADER);\n\n/**\n * Syncs the given resource types one at a time so callers can render real progress.\n * Optionally processes afterwards. `onProgress` receives { phase, type, done, total }.\n * Returns the total number of resources synced.\n */\nexport const syncTypesSequentially = async (serverId, types, { alsoProcess = true, onProgress } = {}) => {\n let total = 0;\n for (let i = 0; i < types.length; i++) {\n onProgress?.({ phase: \"sync\", type: types[i], done: i, total: types.length });\n const res = await syncResourceTypes(serverId, [types[i]]);\n total += Object.values(res?.data?.counts ?? {}).reduce((a, b) => a + b, 0);\n }\n if (alsoProcess) {\n onProgress?.({ phase: \"process\", done: types.length, total: types.length });\n await processPending(serverId);\n }\n onProgress?.({ phase: \"done\", done: types.length, total: types.length });\n return total;\n};\n\n// ---- Processing ----\nexport const processPending = (serverId) =>\n api.post(`${BASE}/servers/${serverId}/process`, null, NO_LOADER);\nexport const reprocess = (serverId, mode = \"FAILED\") =>\n api.post(`${BASE}/servers/${serverId}/reprocess?mode=${mode}`, null, NO_LOADER);\nexport const reprocessOne = (rawId) =>\n api.post(`${BASE}/raw/${rawId}/reprocess`, null, NO_LOADER);\n\n// ---- Staging inbox ----\nexport const retrieveRawResources = (serverId, { page = 0, size = 10, search, resourceType, downloadStatus, processingStatus } = {}) => {\n const params = new URLSearchParams({ page, size });\n if (search) params.set(\"search\", search);\n if (resourceType) params.set(\"resourceType\", resourceType);\n if (downloadStatus) params.set(\"downloadStatus\", downloadStatus);\n if (processingStatus) params.set(\"processingStatus\", processingStatus);\n return api.get(`${BASE}/servers/${serverId}/raw?${params.toString()}`);\n};\nexport const retrieveRawResourceTypes = (serverId) =>\n api.get(`${BASE}/servers/${serverId}/raw/resource-types`);\nexport const retrieveRawById = (rawId) => api.get(`${BASE}/raw/${rawId}`, NO_LOADER);\n\n// ---- Timeline (append-only history) ----\nexport const retrieveSyncEvents = (rawId) =>\n api.get(`${BASE}/raw/${rawId}/sync-events`, NO_LOADER);\nexport const retrieveSyncEventDetail = (syncEventId) =>\n api.get(`${BASE}/raw/sync-events/${syncEventId}`, NO_LOADER);\n","import PropTypes from \"prop-types\";\nimport {\n Box, Card, CardContent, Chip, Stack, Table, TableCell,\n TableContainer, TableRow, Typography, LinearProgress,\n} from \"@mui/material\";\nimport { alpha, useTheme } from \"@mui/material/styles\";\nimport CustomConfirmationModal from \"@/views/custom-components/CustomConfirmationModal\";\n\nconst ACCENT = \"#0f766e\"; // teal — the FHIR sync workspace accent\nconst ACCENT_DARK = \"#115e59\";\n\n// ------------------------------------------------------------------ Page header\n\nexport function FhirPageHeader({ title, subtitle, chips = [], actions }) {\n const theme = useTheme();\n return (\n <Box\n sx={{\n position: \"relative\",\n mb: 2,\n p: { xs: 2, md: 2.5 },\n borderRadius: 1.5,\n border: `1px solid ${alpha(ACCENT, 0.18)}`,\n background: `linear-gradient(135deg, ${alpha(theme.palette.background.paper, 0.98)} 0%, ${alpha(ACCENT, 0.07)} 100%)`,\n boxShadow: `0 18px 44px ${alpha(\"#0f172a\", 0.06)}`,\n overflow: \"hidden\",\n \"&::before\": {\n content: '\"\"',\n position: \"absolute\",\n left: 0, top: 0, bottom: 0, width: 4,\n background: `linear-gradient(180deg, ${ACCENT} 0%, ${ACCENT_DARK} 100%)`,\n },\n }}\n >\n <Stack\n direction={{ xs: \"column\", md: \"row\" }}\n justifyContent=\"space-between\"\n alignItems={{ xs: \"flex-start\", md: \"center\" }}\n spacing={1.5}\n >\n <Box sx={{ minWidth: 0 }}>\n <Typography variant=\"overline\" sx={{ color: ACCENT_DARK, fontWeight: 800, letterSpacing: 1.1, lineHeight: 1 }}>\n FHIR Terminology Sync\n </Typography>\n <Typography variant=\"h5\" sx={{ fontWeight: 800, lineHeight: 1.2 }}>{title}</Typography>\n {subtitle ? (\n <Typography variant=\"body2\" sx={{ mt: 0.75, maxWidth: 900, color: \"text.secondary\" }}>\n {subtitle}\n </Typography>\n ) : null}\n {chips?.length ? (\n <Stack direction=\"row\" spacing={1} useFlexGap flexWrap=\"wrap\" sx={{ mt: 1.5 }}>\n {chips.map((c) => (\n <Chip key={c} label={c} size=\"small\"\n sx={{ borderRadius: 2, backgroundColor: alpha(ACCENT, 0.1), color: ACCENT_DARK, fontWeight: 700, border: `1px solid ${alpha(ACCENT, 0.2)}` }} />\n ))}\n </Stack>\n ) : null}\n </Box>\n {actions ? <Box>{actions}</Box> : null}\n </Stack>\n </Box>\n );\n}\nFhirPageHeader.propTypes = {\n title: PropTypes.node,\n subtitle: PropTypes.node,\n chips: PropTypes.arrayOf(PropTypes.string),\n actions: PropTypes.node,\n};\n\n// ------------------------------------------------------------------ Section card\n\nexport function SectionCard({ title, subtitle, actions, children }) {\n return (\n <Card sx={{ borderRadius: 1.5, border: \"1px solid\", borderColor: \"divider\", boxShadow: \"0 12px 32px rgba(15, 23, 42, 0.045)\", overflow: \"hidden\" }}>\n <CardContent sx={{ p: 0, \"&:last-child\": { pb: 0 } }}>\n {(title || actions) ? (\n <Box sx={{ px: 2.5, pt: 2, pb: 1.5 }}>\n <Stack direction={{ xs: \"column\", md: \"row\" }} justifyContent=\"space-between\" alignItems={{ xs: \"flex-start\", md: \"center\" }} spacing={1.5}>\n <Box sx={{ minWidth: 0 }}>\n {title ? <Typography variant=\"h6\" sx={{ fontWeight: 800, lineHeight: 1.2 }}>{title}</Typography> : null}\n {subtitle ? <Typography variant=\"caption\" color=\"text.secondary\">{subtitle}</Typography> : null}\n </Box>\n {actions ? <Box>{actions}</Box> : null}\n </Stack>\n </Box>\n ) : null}\n <Box sx={{ p: 2.5, pt: title ? 0 : 2.5 }}>{children}</Box>\n </CardContent>\n </Card>\n );\n}\nSectionCard.propTypes = {\n title: PropTypes.node,\n subtitle: PropTypes.node,\n actions: PropTypes.node,\n children: PropTypes.node,\n};\n\n// ------------------------------------------------------------------ Gradient table\n\nexport function GradientTable({ children }) {\n const theme = useTheme();\n return (\n <TableContainer sx={{ borderRadius: 1.5, border: `1px solid ${alpha(theme.palette.divider, 0.55)}`, overflow: \"auto\" }}>\n <Table\n size=\"medium\"\n sx={{\n \"& thead .MuiTableRow-root\": {\n background: `linear-gradient(180deg, ${theme.palette.grey[50]} 0%, ${theme.palette.grey[100]} 100%)`,\n },\n \"& thead .MuiTableCell-root\": {\n fontWeight: 800, fontSize: \"0.7rem\", textTransform: \"uppercase\", letterSpacing: \"0.65px\",\n color: theme.palette.text.secondary, borderBottom: `1px solid ${theme.palette.divider}`,\n py: 1.25, whiteSpace: \"nowrap\",\n },\n \"& tbody .MuiTableRow-root\": { transition: \"background-color 140ms ease\" },\n \"& tbody .MuiTableRow-root:hover\": { backgroundColor: alpha(theme.palette.primary.main, 0.04) },\n \"& tbody .MuiTableCell-root\": { py: 1.4, borderBottom: `1px solid ${alpha(theme.palette.divider, 0.5)}`, verticalAlign: \"middle\" },\n \"& tbody .MuiTableRow-root:last-of-type .MuiTableCell-root\": { borderBottom: \"none\" },\n }}\n >\n {children}\n </Table>\n </TableContainer>\n );\n}\nGradientTable.propTypes = { children: PropTypes.node };\n\n// ------------------------------------------------------------------ Empty row\n\nexport function EmptyRow({ colSpan, title, hint, action }) {\n return (\n <TableRow hover={false}>\n <TableCell colSpan={colSpan} sx={{ py: 5, textAlign: \"center\", borderBottom: \"none !important\" }}>\n <Stack alignItems=\"center\" spacing={1.25}>\n <Typography variant=\"body2\" sx={{ fontWeight: 700 }}>{title}</Typography>\n {hint ? <Typography variant=\"caption\" color=\"text.secondary\" sx={{ maxWidth: 380 }}>{hint}</Typography> : null}\n {action ? <Box>{action}</Box> : null}\n </Stack>\n </TableCell>\n </TableRow>\n );\n}\nEmptyRow.propTypes = {\n colSpan: PropTypes.number.isRequired,\n title: PropTypes.node,\n hint: PropTypes.node,\n action: PropTypes.node,\n};\n\n// ------------------------------------------------------------------ Status chip\n\nconst STATUS_META = {\n // active/inactive\n ACTIVE: { label: \"Active\", color: \"success\" },\n INACTIVE: { label: \"Inactive\", color: \"default\" },\n // sync lifecycle\n DISCOVERED: { label: \"Discovered (definition only)\", color: \"warning\" },\n CONTENT_DOWNLOADED: { label: \"Content synced\", color: \"success\" },\n // processing lifecycle\n NOT_STARTED: { label: \"Not processed\", color: \"default\" },\n PROCESSING: { label: \"Processing\", color: \"warning\" },\n PROCESSED: { label: \"Processed\", color: \"success\" },\n // shared\n FAILED: { label: \"Failed\", color: \"error\" },\n};\n\nexport function StatusChip({ value, short = false }) {\n if (!value) return <Chip label=\"—\" size=\"small\" variant=\"outlined\" sx={{ borderRadius: 1.5, height: 22 }} />;\n const meta = STATUS_META[value] ?? { label: value, color: \"default\" };\n return (\n <Chip\n size=\"small\"\n label={short ? (value.charAt(0) + value.slice(1).toLowerCase()).replace(/_/g, \" \") : meta.label}\n color={meta.color}\n variant={meta.color === \"default\" ? \"outlined\" : \"filled\"}\n sx={{ fontWeight: 700, borderRadius: 1.5, height: 22 }}\n />\n );\n}\nStatusChip.propTypes = {\n value: PropTypes.string,\n short: PropTypes.bool,\n};\n\n// ------------------------------------------------------------------ Mono cell\n\nexport function MonoText({ children, muted = false }) {\n return (\n <Box component=\"span\" sx={{\n fontFamily: \"monospace\", fontSize: \"0.75rem\",\n color: muted ? \"text.disabled\" : \"text.primary\", wordBreak: \"break-all\",\n }}>\n {children ?? \"—\"}\n </Box>\n );\n}\nMonoText.propTypes = { children: PropTypes.node, muted: PropTypes.bool };\n\n// ------------------------------------------------------------------ Confirm modal\n\n/**\n * Controlled confirmation modal. Pass a `confirm` object of shape\n * { title, description, onConfirm } to open it; pass null to close.\n */\nexport function ConfirmModal({ confirm, onClose }) {\n return (\n <CustomConfirmationModal\n open={Boolean(confirm)}\n title={confirm?.title ?? \"Please confirm\"}\n description={confirm?.description ?? \"\"}\n handleClose={onClose}\n handleClick={async () => {\n const fn = confirm?.onConfirm;\n onClose();\n if (fn) await fn();\n }}\n dataTestId=\"fhir-confirm-modal\"\n />\n );\n}\nConfirmModal.propTypes = {\n confirm: PropTypes.shape({\n title: PropTypes.node,\n description: PropTypes.node,\n onConfirm: PropTypes.func,\n }),\n onClose: PropTypes.func.isRequired,\n};\n\n// ------------------------------------------------------------------ Sync progress\n\n/**\n * Determinate/indeterminate progress panel for the per-type sync flow.\n * `progress` shape: { phase: \"sync\"|\"process\"|\"done\", type, done, total }.\n */\nexport function SyncProgress({ progress }) {\n if (!progress) return null;\n const { phase, type, done = 0, total = 0 } = progress;\n const pct = total ? Math.round((done / total) * 100) : 0;\n const indeterminate = phase === \"process\" || phase === \"done\";\n const label = phase === \"process\"\n ? \"Processing synced resources…\"\n : phase === \"done\"\n ? \"Finishing up…\"\n : `Syncing ${type}… (${Math.min(done + 1, total)} of ${total})`;\n\n return (\n <Box sx={{ py: 1.5 }}>\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"baseline\" sx={{ mb: 0.75 }}>\n <Typography variant=\"body2\" sx={{ fontWeight: 700 }}>{label}</Typography>\n {!indeterminate && (\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ fontVariantNumeric: \"tabular-nums\" }}>{pct}%</Typography>\n )}\n </Stack>\n <LinearProgress\n variant={indeterminate ? \"indeterminate\" : \"determinate\"}\n value={pct}\n sx={{ height: 8, borderRadius: 999 }}\n />\n <Typography variant=\"caption\" color=\"text.secondary\" sx={{ mt: 1, display: \"block\" }}>\n Each resource is fetched at its best representation — this can take a moment for large terminologies.\n </Typography>\n </Box>\n );\n}\nSyncProgress.propTypes = {\n progress: PropTypes.shape({\n phase: PropTypes.oneOf([\"sync\", \"process\", \"done\"]),\n type: PropTypes.string,\n done: PropTypes.number,\n total: PropTypes.number,\n }),\n};\n","import { useMemo } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Alert, Box, Button, LinearProgress, Stack, Typography } from \"@mui/material\";\nimport LockOutlinedIcon from \"@mui/icons-material/LockOutlined\";\nimport { useNavigate } from \"react-router\";\nimport PropTypes from \"prop-types\";\n\n// menu_config.navigation_state for this feature. The backend serialises the\n// granted (parent) permission_ids onto this node's featureJson at login.\nexport const FHIR_MENU_KEY = \"techo.admin.fhirResource\";\n\nexport const FHIR_PERMS = {\n VIEW: \"view.core.fhirResourceSync\",\n MANAGE: \"update.core.fhirResourceSync\",\n};\n\n/**\n * Permission set for the current user for the FHIR Sync feature.\n * Reads `linearMenuItems['techo.admin.fhirResource'].featureJson` from the\n * Authenticate slice (populated at login). Default-deny when the node/featureJson\n * is missing.\n */\nexport function useFhirPermissions() {\n const linearMenuItems = useSelector((state) => state.Authenticate?.linearMenuItems);\n return useMemo(() => {\n const node = linearMenuItems?.[FHIR_MENU_KEY];\n let grants = node?.featureJson;\n if (typeof grants === \"string\") {\n try { grants = JSON.parse(grants); } catch { grants = {}; }\n }\n const grantSet = grants && typeof grants === \"object\" ? grants : {};\n const has = (permId) => !!permId && grantSet[permId] === true;\n return {\n has,\n canView: has(FHIR_PERMS.VIEW),\n canManage: has(FHIR_PERMS.MANAGE),\n };\n }, [linearMenuItems]);\n}\n\n/**\n * Page-level guard. Renders children only when the current user has {@code perm};\n * otherwise shows a friendly no-access panel. Shows a loader while the menu tree\n * is still loading so the alert doesn't flash on first paint.\n */\nexport function FhirGuard({ perm = FHIR_PERMS.VIEW, children }) {\n const perms = useFhirPermissions();\n const navigate = useNavigate();\n const linearMenuItems = useSelector((state) => state.Authenticate?.linearMenuItems);\n const menuReady = linearMenuItems !== null && linearMenuItems !== undefined;\n\n if (!menuReady) {\n return <Box sx={{ p: 3 }}><LinearProgress /></Box>;\n }\n if (perms.has(perm)) return children;\n\n return (\n <Box sx={{ p: 3 }}>\n <Alert severity=\"warning\" icon={<LockOutlinedIcon />} sx={{ borderRadius: 1.5, alignItems: \"flex-start\" }}>\n <Stack spacing={1.25}>\n <Typography sx={{ fontWeight: 800 }}>You don’t have access to this page</Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n Your account doesn’t have the required permission for FHIR Sync.\n Ask an admin to grant it via the role / user permission assignment.\n </Typography>\n <Box>\n <Button size=\"small\" variant=\"contained\" onClick={() => navigate(\"/ui/\")}>\n Back to Home\n </Button>\n </Box>\n </Stack>\n </Alert>\n </Box>\n );\n}\n\nFhirGuard.propTypes = {\n perm: PropTypes.string,\n children: PropTypes.node,\n};\n"],"names":["BASE","retrieveAllServers","api","retrieveServerById","id","createServer","data","updateServer","deleteServer","NO_LOADER","refreshCapability","syncResourceTypes","serverId","resourceTypes","syncSingleResource","resourceType","fhirId","syncTypesSequentially","types","alsoProcess","onProgress","total","i","res","_a","a","b","processPending","reprocess","mode","reprocessOne","rawId","retrieveRawResources","page","size","search","downloadStatus","processingStatus","params","retrieveRawResourceTypes","retrieveSyncEvents","retrieveSyncEventDetail","syncEventId","ACCENT","ACCENT_DARK","FhirPageHeader","title","subtitle","chips","actions","theme","useTheme","jsx","Box","alpha","jsxs","Stack","Typography","c","Chip","PropTypes","SectionCard","children","Card","CardContent","GradientTable","TableContainer","Table","EmptyRow","colSpan","hint","action","TableRow","TableCell","STATUS_META","StatusChip","value","short","meta","MonoText","muted","ConfirmModal","confirm","onClose","CustomConfirmationModal","fn","SyncProgress","progress","phase","type","done","pct","indeterminate","label","LinearProgress","FHIR_MENU_KEY","FHIR_PERMS","useFhirPermissions","linearMenuItems","useSelector","state","useMemo","node","grants","grantSet","has","permId","FhirGuard","perm","perms","navigate","useNavigate","Alert","LockOutlinedIcon","Button"],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "author": "Argusoft",
4
4
  "description": "Medplat Core Module",
5
5
  "main": "dist/index.js",
6
- "version": "1.0.22",
6
+ "version": "1.0.24",
7
7
  "type": "module",
8
8
  "license": "MIT",
9
9
  "exports": {