diff --git a/app/components/app/satusehat/button-action.vue b/app/components/app/satusehat/button-action.vue new file mode 100644 index 00000000..f8ee85ec --- /dev/null +++ b/app/components/app/satusehat/button-action.vue @@ -0,0 +1,16 @@ + + + diff --git a/app/components/app/satusehat/card-summary.vue b/app/components/app/satusehat/card-summary.vue new file mode 100644 index 00000000..a6bf2457 --- /dev/null +++ b/app/components/app/satusehat/card-summary.vue @@ -0,0 +1,19 @@ + + + diff --git a/app/components/app/satusehat/list-cfg.ts b/app/components/app/satusehat/list-cfg.ts index d7d43cae..961422ea 100644 --- a/app/components/app/satusehat/list-cfg.ts +++ b/app/components/app/satusehat/list-cfg.ts @@ -26,7 +26,6 @@ export const cols: Col[] = [ { width: 100 }, { width: 100 }, { width: 100 }, - { width: 100 }, ] export const header: Th[][] = [ @@ -37,11 +36,10 @@ export const header: Th[][] = [ { label: 'Status' }, { label: 'Terakhir Update' }, { label: 'FHIR ID' }, - { label: '' }, ], ] -export const keys = ['id', 'resource_type', 'patient', 'status', 'updated_at', 'fhir_id', 'action'] +export const keys = ['id', 'resource_type', 'patient', 'status', 'updated_at', 'fhir_id'] export const delKeyNames: KeyLabel[] = [ { key: 'code', label: 'Kode' }, @@ -72,14 +70,6 @@ export const funcComponent: RecStrFuncComponent = { } return res }, - action(rec, idx) { - const res: RecComponent = { - idx, - rec: rec as object, - component: action, - } - return res - }, } export const funcHtml: RecStrFuncUnknown = { diff --git a/app/components/app/satusehat/list.vue b/app/components/app/satusehat/list.vue index 5b8778d9..e2921fef 100644 --- a/app/components/app/satusehat/list.vue +++ b/app/components/app/satusehat/list.vue @@ -7,13 +7,6 @@ defineProps<{ diff --git a/app/components/app/satusehat/picker.vue b/app/components/app/satusehat/picker.vue index e69de29b..3ffaf77f 100644 --- a/app/components/app/satusehat/picker.vue +++ b/app/components/app/satusehat/picker.vue @@ -0,0 +1,260 @@ + + + diff --git a/app/components/app/satusehat/search.vue b/app/components/app/satusehat/search.vue index e69de29b..9e2d2405 100644 --- a/app/components/app/satusehat/search.vue +++ b/app/components/app/satusehat/search.vue @@ -0,0 +1,12 @@ + + + diff --git a/app/components/flow/satusehat/list.vue b/app/components/flow/satusehat/list.vue index 2f3ee437..eb9b9616 100644 --- a/app/components/flow/satusehat/list.vue +++ b/app/components/flow/satusehat/list.vue @@ -2,7 +2,7 @@ import type { ServiceStatus } from '~/components/pub/base/service-status.type' import type { Summary } from '~/components/pub/base/summary-card.type' import type { HeaderPrep, RefSearchNav } from '~/components/pub/nav/types' -import { CircleCheckBig, CircleDashed, CircleX, Send } from 'lucide-vue-next' +import { CircleCheckBig, CircleDashed, CircleX, Download, Ellipsis, ListFilter, Search, Send } from 'lucide-vue-next' const data = ref([ { @@ -38,6 +38,39 @@ const data = ref([ updated_at: '2025-03-11', fhir_id: 'ENC-001236', }, + { + id: 'RSC001', + resource_type: 'Encounter', + patient: { + name: 'Ahmad Wepe', + mrn: 'RM001234', + }, + status: 2, + updated_at: '2025-03-12', + fhir_id: 'ENC-00123', + }, + { + id: 'RSC001', + resource_type: 'Encounter', + patient: { + name: 'Ahmad Wepe', + mrn: 'RM001234', + }, + status: 2, + updated_at: '2025-03-12', + fhir_id: 'ENC-00123', + }, + { + id: 'RSC001', + resource_type: 'Encounter', + patient: { + name: 'Ahmad Wepe', + mrn: 'RM001234', + }, + status: 2, + updated_at: '2025-03-12', + fhir_id: 'ENC-00123', + }, ]) const refSearchNav: RefSearchNav = { @@ -131,20 +164,91 @@ onMounted(() => { provide('rec_id', recId) provide('rec_action', recAction) provide('rec_item', recItem) + +const listTitle = 'FHIR Resource' + +const tabs = [ + { + value: 'all', + label: 'Semua Resource', + }, + { + value: 'patient', + label: 'Patient', + }, + { + value: 'encounter', + label: 'Encounter', + }, + { + value: 'observation', + label: 'Observation', + }, +] + +const form = [ + { + value: 'search', + label: 'Cari pasien' + }, + { + value: 'date-picker', + label: 'Filter berdasarkan tanggal', + }, +] +const actions = [ + { + value: 'filter', + label: 'Filter', + icon: 'i-lucide-list-filter', + }, + { + value: 'export', + label: 'Ekspor', + icon: 'i-lucide-download', + + }, +] + +const activeTabFilter = ref('all') diff --git a/app/components/layout/AppSidebar.vue b/app/components/layout/AppSidebar.vue index 813d9bd8..1e18534a 100644 --- a/app/components/layout/AppSidebar.vue +++ b/app/components/layout/AppSidebar.vue @@ -12,12 +12,12 @@ const teams: { logo: string plan: string }[] = [ - { - name: 'SIMRS - RSSA', - logo: '/rssa-logo.png', - plan: 'Saiful Anwar Hospital', - }, - ] + { + name: 'SIMRS - RSSA', + logo: '/rssa-logo.png', + plan: 'Saiful Anwar Hospital', + }, +] const sidebar = { collapsible: 'offcanvas', // 'offcanvas' | 'icon' | 'none' side: 'left', // 'left' | 'right' @@ -59,8 +59,10 @@ async function setMenu() { {{ navMenu.heading }} - + - + diff --git a/app/components/pub/base/data-table.vue b/app/components/pub/base/data-table.vue index 31fa7050..b0d2748a 100644 --- a/app/components/pub/base/data-table.vue +++ b/app/components/pub/base/data-table.vue @@ -15,10 +15,12 @@ defineProps<{