diff --git a/app/components/app/division/list-cfg.ts b/app/components/app/division/list-cfg.ts
index 079faf52..d5479579 100644
--- a/app/components/app/division/list-cfg.ts
+++ b/app/components/app/division/list-cfg.ts
@@ -12,11 +12,11 @@ type SmallDetailDto = any
const action = defineAsyncComponent(() => import('~/components/pub/my-ui/data/dropdown-action-ud.vue'))
-export const cols: Col[] = [{ width: 100 }, {}, {}, { width: 50 }]
+export const cols: Col[] = [{}, {}, {}, { width: 50 }]
export const header: Th[][] = [[{ label: 'Kode' }, { label: 'Nama' }, { label: 'Divisi Induk' }, { label: '' }]]
-export const keys = ['code', 'name', 'ancestor', 'action']
+export const keys = ['code', 'name', 'parent', 'action']
export const delKeyNames: KeyLabel[] = [
{ key: 'code', label: 'Kode' },
@@ -24,13 +24,9 @@ export const delKeyNames: KeyLabel[] = [
]
export const funcParsed: RecStrFuncUnknown = {
- ancestor: (rec: unknown): unknown => {
+ parent: (rec: unknown): unknown => {
const recX = rec as SmallDetailDto
- if (recX.meta === null) {
- return '-'
- }
-
- return recX.meta.name
+ return recX.parent?.name || '-'
},
}
diff --git a/app/components/app/division/list.vue b/app/components/app/division/list.vue
index 9169bcac..e1b056ce 100644
--- a/app/components/app/division/list.vue
+++ b/app/components/app/division/list.vue
@@ -1,6 +1,11 @@
+
+
+ Hello World!!!
+
\ No newline at end of file
diff --git a/app/components/app/equipment/list.vue b/app/components/app/equipment/list.vue
index 9d655fdf..3af2b398 100644
--- a/app/components/app/equipment/list.vue
+++ b/app/components/app/equipment/list.vue
@@ -1,6 +1,11 @@
+
+
+
+
diff --git a/app/components/app/floor/list-cfg.ts b/app/components/app/floor/list-cfg.ts
new file mode 100644
index 00000000..33b1a8af
--- /dev/null
+++ b/app/components/app/floor/list-cfg.ts
@@ -0,0 +1,44 @@
+import type {
+ Col,
+ KeyLabel,
+ RecComponent,
+ RecStrFuncComponent,
+ RecStrFuncUnknown,
+ Th,
+} from '~/components/pub/my-ui/data/types'
+import { defineAsyncComponent } from 'vue'
+
+type SmallDetailDto = any
+
+const action = defineAsyncComponent(() => import('~/components/pub/my-ui/data/dropdown-action-dud.vue'))
+
+export const cols: Col[] = [{}, {}, {}, { width: 50 }]
+
+export const header: Th[][] = [[{ label: 'Kode' }, { label: 'Nama' }, { label: 'Gedung' }, { label: '' }]]
+
+export const keys = ['code', 'name', 'parent', 'action']
+
+export const delKeyNames: KeyLabel[] = [
+ { key: 'code', label: 'Kode' },
+ { key: 'name', label: 'Nama' },
+]
+
+export const funcParsed: RecStrFuncUnknown = {
+ parent: (rec: unknown): unknown => {
+ const recX = rec as SmallDetailDto
+ return recX.parent?.name || '-'
+ },
+}
+
+export const funcComponent: RecStrFuncComponent = {
+ 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/floor/list.vue b/app/components/app/floor/list.vue
new file mode 100644
index 00000000..e1b056ce
--- /dev/null
+++ b/app/components/app/floor/list.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
diff --git a/app/components/app/icd/entry-form.vue b/app/components/app/icd/entry-form.vue
new file mode 100644
index 00000000..7c850a16
--- /dev/null
+++ b/app/components/app/icd/entry-form.vue
@@ -0,0 +1,43 @@
+
+
+
+
+
diff --git a/app/components/app/icd/list-cfg.ts b/app/components/app/icd/list-cfg.ts
new file mode 100644
index 00000000..c74ef59b
--- /dev/null
+++ b/app/components/app/icd/list-cfg.ts
@@ -0,0 +1,131 @@
+import type {
+ Col,
+ KeyLabel,
+ RecComponent,
+ RecStrFuncComponent,
+ RecStrFuncUnknown,
+ Th,
+} from '~/components/pub/my-ui/data/types'
+import { defineAsyncComponent } from 'vue'
+
+type SmallDetailDto = any
+
+const action = defineAsyncComponent(() => import('~/components/pub/my-ui/data/dropdown-action-dud.vue'))
+const statusBadge = defineAsyncComponent(() => import('./status-badge.vue'))
+
+export const cols: Col[] = [
+ {},
+ {},
+ {},
+ { width: 100 },
+ { width: 120 },
+ {},
+ {},
+ {},
+ { width: 100 },
+ { width: 100 },
+ {},
+ { width: 50 },
+]
+
+export const header: Th[][] = [
+ [
+ { label: 'Nama' },
+ { label: 'Rekam Medis' },
+ { label: 'KTP' },
+ { label: 'Tgl Lahir' },
+ { label: 'Umur' },
+ { label: 'JK' },
+ { label: 'Pendidikan' },
+ { label: 'Status' },
+ { label: '' },
+ ],
+]
+
+export const keys = [
+ 'name',
+ 'medicalRecord_number',
+ 'identity_number',
+ 'birth_date',
+ 'patient_age',
+ 'gender',
+ 'education',
+ 'status',
+ 'action',
+]
+
+export const delKeyNames: KeyLabel[] = [
+ { key: 'code', label: 'Kode' },
+ { key: 'name', label: 'Nama' },
+]
+
+export const funcParsed: RecStrFuncUnknown = {
+ name: (rec: unknown): unknown => {
+ const recX = rec as SmallDetailDto
+ return `${recX.firstName} ${recX.middleName || ''} ${recX.lastName || ''}`
+ },
+ identity_number: (rec: unknown): unknown => {
+ const recX = rec as SmallDetailDto
+ if (recX.identity_number?.substring(0, 5) === 'BLANK') {
+ return '(TANPA NIK)'
+ }
+ return recX.identity_number
+ },
+ birth_date: (rec: unknown): unknown => {
+ const recX = rec as SmallDetailDto
+ if (typeof recX.birth_date == 'object' && recX.birth_date) {
+ return (recX.birth_date as Date).toLocaleDateString()
+ } else if (typeof recX.birth_date == 'string') {
+ return (recX.birth_date as string).substring(0, 10)
+ }
+ return recX.birth_date
+ },
+ patient_age: (rec: unknown): unknown => {
+ const recX = rec as SmallDetailDto
+ return recX.birth_date?.split('T')[0]
+ },
+ gender: (rec: unknown): unknown => {
+ const recX = rec as SmallDetailDto
+ if (typeof recX?.gender_code !== 'number' && recX?.gender_code !== '') {
+ return 'Tidak Diketahui'
+ }
+ return recX.gender_code
+ },
+ education: (rec: unknown): unknown => {
+ const recX = rec as SmallDetailDto
+ if (typeof recX.education_code == 'number' && recX.education_code >= 0) {
+ return recX.education_code
+ } else if (typeof recX.education_code) {
+ return recX.education_code
+ }
+ return '-'
+ },
+}
+
+export const funcComponent: RecStrFuncComponent = {
+ action(rec, idx) {
+ const res: RecComponent = {
+ idx,
+ rec: rec as object,
+ component: action,
+ }
+ return res
+ },
+ status(rec, idx) {
+ if (rec.status === null) {
+ rec.status_code = 0
+ }
+ const res: RecComponent = {
+ idx,
+ rec: rec as object,
+ component: statusBadge,
+ }
+ return res
+ },
+}
+
+export const funcHtml: RecStrFuncUnknown = {
+ patient_address(_rec) {
+ return '-'
+ },
+}
diff --git a/app/components/app/icd/list.vue b/app/components/app/icd/list.vue
new file mode 100644
index 00000000..b9a74929
--- /dev/null
+++ b/app/components/app/icd/list.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
diff --git a/app/components/app/icd/multiselect-picker.vue b/app/components/app/icd/multiselect-picker.vue
new file mode 100644
index 00000000..9a08bb86
--- /dev/null
+++ b/app/components/app/icd/multiselect-picker.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/app/components/app/icd/preview.vue b/app/components/app/icd/preview.vue
new file mode 100644
index 00000000..36bb193c
--- /dev/null
+++ b/app/components/app/icd/preview.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+ NO.
+ DIAGNOSA
+ ICD-X
+ AKSI
+
+
+
+
+
+ {{ i + 1 }}
+ {{ item.diagnosa }}
+ {{ item.icd }}
+
+
+
+
+
+
+
+
diff --git a/app/components/app/icd/search.vue b/app/components/app/icd/search.vue
new file mode 100644
index 00000000..e69de29b
diff --git a/app/components/app/icd/status-badge.vue b/app/components/app/icd/status-badge.vue
new file mode 100644
index 00000000..32cdfbca
--- /dev/null
+++ b/app/components/app/icd/status-badge.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+ {{ statusText }}
+
+
+
diff --git a/app/components/app/installation/entry-form.vue b/app/components/app/installation/entry-form.vue
index 4257b712..9d57b434 100644
--- a/app/components/app/installation/entry-form.vue
+++ b/app/components/app/installation/entry-form.vue
@@ -1,125 +1,119 @@
-
-
+
diff --git a/app/components/app/installation/list-cfg.ts b/app/components/app/installation/list-cfg.ts
index 81de0024..8c3fa5b4 100644
--- a/app/components/app/installation/list-cfg.ts
+++ b/app/components/app/installation/list-cfg.ts
@@ -12,13 +12,11 @@ type SmallDetailDto = any
const action = defineAsyncComponent(() => import('~/components/pub/my-ui/data/dropdown-action-ud.vue'))
-export const cols: Col[] = [{ width: 100 }, {}, {}, {}, { width: 50 }]
+export const cols: Col[] = [{}, {}, {}, { width: 50 }]
-export const header: Th[][] = [
- [{ label: 'Id' }, { label: 'Nama' }, { label: 'Kode' }, { label: 'Encounter Class' }, { label: '' }],
-]
+export const header: Th[][] = [[{ label: 'Kode' }, { label: 'Nama' }, { label: 'Encounter Class' }, { label: '' }]]
-export const keys = ['id', 'name', 'cellphone', 'religion_code', 'action']
+export const keys = ['code', 'name', 'encounterClass_code', 'action']
export const delKeyNames: KeyLabel[] = [
{ key: 'code', label: 'Kode' },
@@ -28,22 +26,7 @@ export const delKeyNames: KeyLabel[] = [
export const funcParsed: RecStrFuncUnknown = {
name: (rec: unknown): unknown => {
const recX = rec as SmallDetailDto
- return `${recX.firstName} ${recX.lastName || ''}`.trim()
- },
- identity_number: (rec: unknown): unknown => {
- const recX = rec as SmallDetailDto
- if (recX.identity_number?.substring(0, 5) === 'BLANK') {
- return '(TANPA NIK)'
- }
- return recX.identity_number
- },
- inPatient_itemPrice: (rec: unknown): unknown => {
- const recX = rec as SmallDetailDto
- return Number(recX.inPatient_itemPrice.price).toLocaleString('id-ID')
- },
- outPatient_itemPrice: (rec: unknown): unknown => {
- const recX = rec as SmallDetailDto
- return Number(recX.outPatient_itemPrice.price).toLocaleString('id-ID')
+ return `${recX.name}`.trim()
},
}
diff --git a/app/components/app/installation/list.vue b/app/components/app/installation/list.vue
index 72973ca3..e1b056ce 100644
--- a/app/components/app/installation/list.vue
+++ b/app/components/app/installation/list.vue
@@ -1,6 +1,11 @@
+
+
+
+
+
+
+
+
+ {
+ const file = (e.target as HTMLInputElement).files?.[0] || null
+ componentField.onChange(file)
+ }
+ "
+ @blur.prevent
+ />
+
+
+
+
+
+
+
diff --git a/app/components/app/patient/_common/input-patient-name.vue b/app/components/app/patient/_common/input-patient-name.vue
new file mode 100644
index 00000000..fbc57351
--- /dev/null
+++ b/app/components/app/patient/_common/input-patient-name.vue
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/components/app/patient/_common/radio-communication-barrier.vue b/app/components/app/patient/_common/radio-communication-barrier.vue
new file mode 100644
index 00000000..463b3659
--- /dev/null
+++ b/app/components/app/patient/_common/radio-communication-barrier.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ option.label }}
+
+
+
+
+
+
+
+
+
+
diff --git a/app/components/app/patient/_common/radio-disability.vue b/app/components/app/patient/_common/radio-disability.vue
new file mode 100644
index 00000000..312c3730
--- /dev/null
+++ b/app/components/app/patient/_common/radio-disability.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ option.label }}
+
+
+
+
+
+
+
+
+
+
diff --git a/app/components/app/patient/_common/radio-gender.vue b/app/components/app/patient/_common/radio-gender.vue
new file mode 100644
index 00000000..108b1d22
--- /dev/null
+++ b/app/components/app/patient/_common/radio-gender.vue
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ option.label }}
+
+
+
+
+
+
+
+
+
+
diff --git a/app/components/app/patient/_common/radio-nationality.vue b/app/components/app/patient/_common/radio-nationality.vue
new file mode 100644
index 00000000..9c0eef1d
--- /dev/null
+++ b/app/components/app/patient/_common/radio-nationality.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ option.label }}
+
+
+
+
+
+
+
+
+
+
diff --git a/app/components/app/patient/_common/select-disability.vue b/app/components/app/patient/_common/select-disability.vue
new file mode 100644
index 00000000..de65a07f
--- /dev/null
+++ b/app/components/app/patient/_common/select-disability.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/components/app/patient/_common/select-dob.vue b/app/components/app/patient/_common/select-dob.vue
new file mode 100644
index 00000000..938bd254
--- /dev/null
+++ b/app/components/app/patient/_common/select-dob.vue
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
+
+
+ {
+ const dateStr = typeof value === 'number' ? String(value) : value
+ patientAge = calculateAge(dateStr)
+ }
+ "
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/components/app/patient/_common/select-education.vue b/app/components/app/patient/_common/select-education.vue
new file mode 100644
index 00000000..33caac16
--- /dev/null
+++ b/app/components/app/patient/_common/select-education.vue
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/components/app/patient/_common/select-ethnicity.vue b/app/components/app/patient/_common/select-ethnicity.vue
new file mode 100644
index 00000000..a4231571
--- /dev/null
+++ b/app/components/app/patient/_common/select-ethnicity.vue
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/components/app/patient/_common/select-job.vue b/app/components/app/patient/_common/select-job.vue
new file mode 100644
index 00000000..b9804bb5
--- /dev/null
+++ b/app/components/app/patient/_common/select-job.vue
@@ -0,0 +1,155 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/components/app/patient/_common/select-lang.vue b/app/components/app/patient/_common/select-lang.vue
new file mode 100644
index 00000000..aadf9313
--- /dev/null
+++ b/app/components/app/patient/_common/select-lang.vue
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/components/app/patient/_common/select-marital-status.vue b/app/components/app/patient/_common/select-marital-status.vue
new file mode 100644
index 00000000..cb3b56fb
--- /dev/null
+++ b/app/components/app/patient/_common/select-marital-status.vue
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/components/app/patient/_common/select-religion.vue b/app/components/app/patient/_common/select-religion.vue
new file mode 100644
index 00000000..069e3575
--- /dev/null
+++ b/app/components/app/patient/_common/select-religion.vue
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/components/app/patient/entry-form.vue b/app/components/app/patient/entry-form.vue
index 7c850a16..e3587988 100644
--- a/app/components/app/patient/entry-form.vue
+++ b/app/components/app/patient/entry-form.vue
@@ -1,43 +1,225 @@
-