@@ -687,6 +814,7 @@ onMounted(() => {
v-model="cataract"
v-bind="cataractAttrs"
class="flex items-center gap-2"
+ :disabled="isLoading || isReadonly"
>
{
id="accidentDate"
v-model="accidentDate"
v-bind="accidentDateAttrs"
- :disabled="true"
+ :disabled="isLoading || isReadonly"
placeholder="Pilih tanggal kejadian"
/>
@@ -966,6 +1094,7 @@ onMounted(() => {
+
+
diff --git a/app/components/app/sep/list-cfg.history.ts b/app/components/app/sep/list-cfg.history.ts
index 35bb656c..5e46a335 100644
--- a/app/components/app/sep/list-cfg.history.ts
+++ b/app/components/app/sep/list-cfg.history.ts
@@ -9,21 +9,25 @@ export interface SepHistoryData {
careClass: string
}
+const ActionHistory = defineAsyncComponent(() => import('~/components/app/sep/action-history.vue'))
+
+const keysDefault = ['sepNumber', 'sepDate', 'referralNumber', 'diagnosis', 'serviceType', 'careClass']
+const colsDefault = [{ width: 100 }, { width: 100 }, { width: 100 }, { width: 100 }, { width: 100 }, { width: 100 }]
+const headersDefault = [
+ { label: 'NO. SEP' },
+ { label: 'TGL. SEP' },
+ { label: 'NO. RUJUKAN' },
+ { label: 'DIAGNOSIS AWAL' },
+ { label: 'JENIS PELAYANAN' },
+ { label: 'KELAS RAWAT' },
+]
+
export const config: Config = {
- cols: [{ width: 100 }, { width: 100 }, { width: 100 }, { width: 100 }, { width: 100 }, { width: 100 }],
+ cols: [...colsDefault],
- headers: [
- [
- { label: 'NO. SEP' },
- { label: 'TGL. SEP' },
- { label: 'NO. RUJUKAN' },
- { label: 'DIAGNOSIS AWAL' },
- { label: 'JENIS PELAYANAN' },
- { label: 'KELAS RAWAT' },
- ],
- ],
+ headers: [[...headersDefault]],
- keys: ['sepNumber', 'sepDate', 'referralNumber', 'diagnosis', 'serviceType', 'careClass'],
+ keys: [...keysDefault],
delKeyNames: [{ key: 'code', label: 'Kode' }],
@@ -33,3 +37,27 @@ export const config: Config = {
htmls: {},
}
+
+export const configDetail: Config = {
+ cols: [...colsDefault, { width: 50 }],
+
+ headers: [[...headersDefault, { label: 'AKSI' }]],
+
+ keys: [...keysDefault, 'action'],
+
+ delKeyNames: [{ key: 'code', label: 'Kode' }],
+
+ parses: {},
+
+ components: {
+ action(rec, idx) {
+ return {
+ idx,
+ rec: { ...(rec as object) },
+ component: ActionHistory,
+ }
+ },
+ },
+
+ htmls: {},
+}
diff --git a/app/components/app/sep/list-cfg.ts b/app/components/app/sep/list-cfg.ts
index e2257954..2c3e7af8 100644
--- a/app/components/app/sep/list-cfg.ts
+++ b/app/components/app/sep/list-cfg.ts
@@ -1,9 +1,7 @@
import type { Config } from '~/components/pub/my-ui/data-table'
import { defineAsyncComponent } from 'vue'
-type SepDto = any
-
-const action = defineAsyncComponent(() => import('~/components/pub/my-ui/data/dropdown-action-dud.vue'))
+const action = defineAsyncComponent(() => import('~/components/pub/my-ui/data/dropdown-action-dd.vue'))
export const config: Config = {
cols: [
diff --git a/app/components/app/sep/list-history.vue b/app/components/app/sep/list-history.vue
index fdad0791..cea58e3d 100644
--- a/app/components/app/sep/list-history.vue
+++ b/app/components/app/sep/list-history.vue
@@ -7,9 +7,10 @@ import type { SepHistoryData } from './list-cfg.history'
import type { PaginationMeta } from '~/components/pub/my-ui/pagination/pagination.type'
// Configs
-import { config } from './list-cfg.history'
+import { config, configDetail } from './list-cfg.history'
const props = defineProps<{
+ isAction?: boolean
data: SepHistoryData[]
paginationMeta?: PaginationMeta
}>()
@@ -25,7 +26,7 @@ function handlePageChange(page: number) {
paginationMeta?: PaginationMeta
}>()
@@ -37,7 +38,7 @@ const emit = defineEmits<{
-
+
diff --git a/app/components/app/vaccine-data/_common/select-date.vue b/app/components/app/vaccine-data/_common/select-date.vue
new file mode 100644
index 00000000..d94d04eb
--- /dev/null
+++ b/app/components/app/vaccine-data/_common/select-date.vue
@@ -0,0 +1,119 @@
+
+
+
+
+
+ {{ label }}
+
+
+
+
+
+ {
+ const dateStr = typeof value === 'number' ? String(value) : value
+ patientAge = calculateAge(dateStr)
+ }
+ "
+ />
+
+
+
+
+
+
+
diff --git a/app/components/app/vaccine-data/_common/select-vaccine-type.vue b/app/components/app/vaccine-data/_common/select-vaccine-type.vue
new file mode 100644
index 00000000..cde3fb66
--- /dev/null
+++ b/app/components/app/vaccine-data/_common/select-vaccine-type.vue
@@ -0,0 +1,77 @@
+
+
+
+
+
+ {{ label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/components/app/vaccine-data/detail.vue b/app/components/app/vaccine-data/detail.vue
new file mode 100644
index 00000000..2c79e461
--- /dev/null
+++ b/app/components/app/vaccine-data/detail.vue
@@ -0,0 +1,68 @@
+
+
+
+
+ {{ props.instance?.date ? props.instance?.date : '-' }}
+ {{ props.instance?.date ? props.instance?.date : '-' }}
+ {{ props.instance?.date ? props.instance?.date : '-' }}
+ {{ props.instance?.date ? props.instance?.date : '-' }}
+ {{ props.instance?.date ? props.instance?.date : '-' }}
+ {{ props.instance?.date ? props.instance?.date : '-' }}
+ {{ props.instance?.date ? props.instance?.date : '-' }}
+ {{ props.instance?.date ? props.instance?.date : '-' }}
+
+
+
+
+
+
diff --git a/app/components/app/vaccine-data/entry.vue b/app/components/app/vaccine-data/entry.vue
new file mode 100644
index 00000000..4b8f291b
--- /dev/null
+++ b/app/components/app/vaccine-data/entry.vue
@@ -0,0 +1,82 @@
+
+
+
+
+
diff --git a/app/components/app/vaccine-data/list-doctor.cfg.ts b/app/components/app/vaccine-data/list-doctor.cfg.ts
new file mode 100644
index 00000000..be938aa5
--- /dev/null
+++ b/app/components/app/vaccine-data/list-doctor.cfg.ts
@@ -0,0 +1,53 @@
+import type { Config } from '~/components/pub/my-ui/data-table'
+import { defineAsyncComponent } from 'vue'
+import actionDoctor from '~/components/pub/my-ui/data/dropdown-action-dd.vue'
+import actionNursePhysio from '~/components/pub/my-ui/data/dropdown-action-detail.vue'
+
+const action = defineAsyncComponent(() => import('~/components/pub/my-ui/data/dropdown-action-dd.vue'))
+
+export const config: Config = {
+ cols: [{}, {}, {}, {}, {width: 50}, ],
+
+ headers: [
+ [
+ { label: 'Jenis Vaksin' },
+ { label: 'Tanggal Pemberian Vaksin' },
+ { label: 'Tanggal Kedaluwarsa Vaksin' },
+ { label: 'Dosis Ke' },
+ { label: 'Action' },
+ ],
+ ],
+
+ keys: ['name1', 'date', 'date', 'name2', 'action'],
+
+ delKeyNames: [
+ { key: 'code', label: 'Kode' },
+ { key: 'name', label: 'Nama' },
+ ],
+
+ parses: {
+ date: (rec: unknown): unknown => {
+ const date = (rec as any).date
+ if (typeof date == 'object' && date) {
+ return (date as Date).toLocaleDateString('id-ID')
+ } else if (typeof date == 'string') {
+ return (date as string).substring(0, 10)
+ }
+ return date
+ },
+ },
+
+ components: {
+ action(rec, idx) {
+ return {
+ idx,
+ rec: rec as object,
+ component: action,
+ }
+ },
+ },
+
+ htmls: {
+
+ },
+}
diff --git a/app/components/app/vaccine-data/list-nurse-physio.cfg.ts b/app/components/app/vaccine-data/list-nurse-physio.cfg.ts
new file mode 100644
index 00000000..acfc698c
--- /dev/null
+++ b/app/components/app/vaccine-data/list-nurse-physio.cfg.ts
@@ -0,0 +1,53 @@
+import type { Config } from '~/components/pub/my-ui/data-table'
+import { defineAsyncComponent } from 'vue'
+import actionDoctor from '~/components/pub/my-ui/data/dropdown-action-dd.vue'
+import actionNursePhysio from '~/components/pub/my-ui/data/dropdown-action-detail.vue'
+
+const action = defineAsyncComponent(() => import('~/components/pub/my-ui/data/dropdown-action-detail.vue'))
+
+export const config: Config = {
+ cols: [{}, {}, {}, {}, {width: 50}, ],
+
+ headers: [
+ [
+ { label: 'Jenis Vaksin' },
+ { label: 'Tanggal Pemberian Vaksin' },
+ { label: 'Tanggal Kedaluwarsa Vaksin' },
+ { label: 'Dosis Ke' },
+ { label: 'Action' },
+ ],
+ ],
+
+ keys: ['name1', 'date', 'date', 'name2', 'action'],
+
+ delKeyNames: [
+ { key: 'code', label: 'Kode' },
+ { key: 'name', label: 'Nama' },
+ ],
+
+ parses: {
+ date: (rec: unknown): unknown => {
+ const date = (rec as any).date
+ if (typeof date == 'object' && date) {
+ return (date as Date).toLocaleDateString('id-ID')
+ } else if (typeof date == 'string') {
+ return (date as string).substring(0, 10)
+ }
+ return date
+ },
+ },
+
+ components: {
+ action(rec, idx) {
+ return {
+ idx,
+ rec: rec as object,
+ component: action,
+ }
+ },
+ },
+
+ htmls: {
+
+ },
+}
diff --git a/app/components/app/vaccine-data/list.vue b/app/components/app/vaccine-data/list.vue
new file mode 100644
index 00000000..7960112b
--- /dev/null
+++ b/app/components/app/vaccine-data/list.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
diff --git a/app/components/content/control-letter/list.vue b/app/components/content/control-letter/list.vue
index 9be22012..5a879eb4 100644
--- a/app/components/content/control-letter/list.vue
+++ b/app/components/content/control-letter/list.vue
@@ -143,7 +143,7 @@ watch([recId, recAction, timestamp], () => {
break
case ActionEvents.showEdit:
- if(pagePermission.canUpdate){
+ if(pagePermission.canUpdate){
navigateTo({
name: 'rehab-encounter-id-control-letter-control_letter_id-edit',
params: { id: encounterId, "control_letter_id": recId.value },
@@ -186,7 +186,7 @@ watch([recId, recAction, timestamp], () => {
@click="isHistoryDialogOpen = true">
Riwayat Program Nasional
-
+