diff --git a/.gitignore b/.gitignore index 5bdfc11f..a3d94e0b 100644 --- a/.gitignore +++ b/.gitignore @@ -23,4 +23,6 @@ logs .env.* !.env.example -.vscode \ No newline at end of file +# editor +.vscode +*.swp diff --git a/app/assets/css/main.css b/app/assets/css/main.css index 17502027..a25bddcb 100644 --- a/app/assets/css/main.css +++ b/app/assets/css/main.css @@ -16,8 +16,8 @@ --primary-hover: 26, 92%, 65%; /* Secondary - Clean Blue */ - --secondary: 210 50% 96%; - --secondary-foreground: 210 20% 20%; + --secondary: 40 70% 60%; + --secondary-foreground: 210 20% 100%; --muted: 210 25% 95%; --muted-foreground: 210 15% 50%; diff --git a/app/components/app/encounter/check-in-entry.vue b/app/components/app/encounter/check-in-entry.vue new file mode 100644 index 00000000..ad7de5d6 --- /dev/null +++ b/app/components/app/encounter/check-in-entry.vue @@ -0,0 +1,107 @@ + + + + + \ No newline at end of file diff --git a/app/components/app/encounter/check-in-view.vue b/app/components/app/encounter/check-in-view.vue new file mode 100644 index 00000000..a3b6ab53 --- /dev/null +++ b/app/components/app/encounter/check-in-view.vue @@ -0,0 +1,56 @@ + + + + + \ No newline at end of file diff --git a/app/components/app/encounter/check-out-entry.vue b/app/components/app/encounter/check-out-entry.vue new file mode 100644 index 00000000..fb8b4333 --- /dev/null +++ b/app/components/app/encounter/check-out-entry.vue @@ -0,0 +1,187 @@ + + + + + \ No newline at end of file diff --git a/app/components/app/encounter/check-out-view.vue b/app/components/app/encounter/check-out-view.vue new file mode 100644 index 00000000..37cd2bbe --- /dev/null +++ b/app/components/app/encounter/check-out-view.vue @@ -0,0 +1,90 @@ + + + + + \ No newline at end of file diff --git a/app/components/app/encounter/status.vue b/app/components/app/encounter/status.vue deleted file mode 100644 index e45c0a78..00000000 --- a/app/components/app/encounter/status.vue +++ /dev/null @@ -1,6 +0,0 @@ - - - \ No newline at end of file diff --git a/app/components/app/icd/list-cfg.ts b/app/components/app/icd/list-cfg.ts index c413e737..44a43eb4 100644 --- a/app/components/app/icd/list-cfg.ts +++ b/app/components/app/icd/list-cfg.ts @@ -7,94 +7,18 @@ const action = defineAsyncComponent(() => import('~/components/pub/my-ui/data/dr const statusBadge = defineAsyncComponent(() => import('./status-badge.vue')) export const config: Config = { - cols: [ - {}, - {}, - {}, - { width: 100 }, - { width: 120 }, - {}, - {}, - {}, - { width: 100 }, - { width: 100 }, - {}, - { width: 50 }, - ], + cols: [{}, {}, {}, {}], - headers: [ - [ - { label: 'Nama' }, - { label: 'Rekam Medis' }, - { label: 'KTP' }, - { label: 'Tgl Lahir' }, - { label: 'Umur' }, - { label: 'JK' }, - { label: 'Pendidikan' }, - { label: 'Status' }, - { label: '' }, - ], - ], + headers: [[{ label: 'Kode' }, { label: 'Nama (FHIR)' }, { label: 'Nama (ID)' }, { label: '' }]], - keys: [ - 'name', - 'medicalRecord_number', - 'identity_number', - 'birth_date', - 'patient_age', - 'gender', - 'education', - 'status', - 'action', - ], + keys: ['code', 'name', 'indName', 'action'], delKeyNames: [ { key: 'code', label: 'Kode' }, { key: 'name', label: 'Nama' }, ], - parses: { - 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 '-' - }, - }, + parses: {}, components: { action(rec, idx) { diff --git a/app/components/app/icd/multiselect-picker.vue b/app/components/app/icd/multiselect-picker.vue index ce4dbd80..e8f03084 100644 --- a/app/components/app/icd/multiselect-picker.vue +++ b/app/components/app/icd/multiselect-picker.vue @@ -2,7 +2,7 @@ import { config } from './list-cfg' defineProps<{ data: any[] }>() -const modelValue = defineModel() +const modelValue = defineModel('modelValue', { default: [] }) diff --git a/app/components/pub/my-ui/confirmation/record-confirmation.vue b/app/components/pub/my-ui/confirmation/record-confirmation.vue index a0455066..cff54b2b 100644 --- a/app/components/pub/my-ui/confirmation/record-confirmation.vue +++ b/app/components/pub/my-ui/confirmation/record-confirmation.vue @@ -1,5 +1,5 @@ + + diff --git a/app/components/pub/my-ui/nav-footer/ba-de-ed-pri.vue b/app/components/pub/my-ui/nav-footer/ba-de-ed-pri.vue new file mode 100644 index 00000000..0d8fcfb2 --- /dev/null +++ b/app/components/pub/my-ui/nav-footer/ba-de-ed-pri.vue @@ -0,0 +1,50 @@ + + + diff --git a/app/components/pub/my-ui/nav-footer/ba-de-su.vue b/app/components/pub/my-ui/nav-footer/ba-de-su.vue new file mode 100644 index 00000000..47246c4c --- /dev/null +++ b/app/components/pub/my-ui/nav-footer/ba-de-su.vue @@ -0,0 +1,44 @@ + + + diff --git a/app/components/pub/my-ui/nav-footer/ba-dr-su-pr.vue b/app/components/pub/my-ui/nav-footer/ba-dr-su-pr.vue index 78034463..67d5aec5 100644 --- a/app/components/pub/my-ui/nav-footer/ba-dr-su-pr.vue +++ b/app/components/pub/my-ui/nav-footer/ba-dr-su-pr.vue @@ -1,5 +1,15 @@ diff --git a/app/components/pub/my-ui/nav-footer/ba-dr-su.vue b/app/components/pub/my-ui/nav-footer/ba-dr-su.vue index e5bbc8f1..8ea3f5ba 100644 --- a/app/components/pub/my-ui/nav-footer/ba-dr-su.vue +++ b/app/components/pub/my-ui/nav-footer/ba-dr-su.vue @@ -1,5 +1,17 @@ diff --git a/app/components/pub/my-ui/nav-footer/ba-ed-de-pri.vue b/app/components/pub/my-ui/nav-footer/ba-ed-de-pri.vue deleted file mode 100644 index 4a9d5268..00000000 --- a/app/components/pub/my-ui/nav-footer/ba-ed-de-pri.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/app/components/pub/my-ui/nav-footer/ba-ed-de.vue b/app/components/pub/my-ui/nav-footer/ba-ed-de.vue index fabaa425..cc607ac0 100644 --- a/app/components/pub/my-ui/nav-footer/ba-ed-de.vue +++ b/app/components/pub/my-ui/nav-footer/ba-ed-de.vue @@ -1,5 +1,15 @@ diff --git a/app/components/pub/my-ui/nav-footer/ba-ed-pri.vue b/app/components/pub/my-ui/nav-footer/ba-ed-pri.vue index 97bf62de..331c30af 100644 --- a/app/components/pub/my-ui/nav-footer/ba-ed-pri.vue +++ b/app/components/pub/my-ui/nav-footer/ba-ed-pri.vue @@ -1,5 +1,15 @@ diff --git a/app/components/pub/my-ui/nav-footer/ba-ed.vue b/app/components/pub/my-ui/nav-footer/ba-ed.vue index ae455a81..aebd4296 100644 --- a/app/components/pub/my-ui/nav-footer/ba-ed.vue +++ b/app/components/pub/my-ui/nav-footer/ba-ed.vue @@ -1,5 +1,15 @@ diff --git a/app/components/pub/my-ui/nav-footer/ba-su.vue b/app/components/pub/my-ui/nav-footer/ba-su.vue index 9db66bb4..613cac85 100644 --- a/app/components/pub/my-ui/nav-footer/ba-su.vue +++ b/app/components/pub/my-ui/nav-footer/ba-su.vue @@ -1,5 +1,15 @@ diff --git a/app/components/pub/my-ui/nav-footer/ca-ed-su.vue b/app/components/pub/my-ui/nav-footer/ca-ed-su.vue new file mode 100644 index 00000000..1f0f5915 --- /dev/null +++ b/app/components/pub/my-ui/nav-footer/ca-ed-su.vue @@ -0,0 +1,55 @@ + + + diff --git a/app/components/pub/my-ui/nav-footer/ca-sa.vue b/app/components/pub/my-ui/nav-footer/ca-sa.vue new file mode 100644 index 00000000..cbd5ef7f --- /dev/null +++ b/app/components/pub/my-ui/nav-footer/ca-sa.vue @@ -0,0 +1,38 @@ + + + diff --git a/app/components/pub/my-ui/nav-footer/cl-sa.vue b/app/components/pub/my-ui/nav-footer/cl-sa.vue new file mode 100644 index 00000000..fea6fc56 --- /dev/null +++ b/app/components/pub/my-ui/nav-footer/cl-sa.vue @@ -0,0 +1,38 @@ + + + diff --git a/app/components/pub/my-ui/nav-footer/ok.vue b/app/components/pub/my-ui/nav-footer/ok.vue new file mode 100644 index 00000000..da2f69ea --- /dev/null +++ b/app/components/pub/my-ui/nav-footer/ok.vue @@ -0,0 +1,32 @@ + + + diff --git a/app/components/pub/ui/button/index.ts b/app/components/pub/ui/button/index.ts index c1aa89a8..c4063089 100644 --- a/app/components/pub/ui/button/index.ts +++ b/app/components/pub/ui/button/index.ts @@ -12,7 +12,7 @@ export const buttonVariants = cva( destructive: 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90', outline: - 'border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground', + 'border border-slate-300 dark:border-slate-600 bg-background shadow-sm hover:bg-accent hover:text-accent-foreground', secondary: 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80', ghost: 'hover:bg-accent hover:text-accent-foreground', diff --git a/app/components/pub/ui/dialog/DialogContent.vue b/app/components/pub/ui/dialog/DialogContent.vue index 5e9e8538..0c0fbf6b 100644 --- a/app/components/pub/ui/dialog/DialogContent.vue +++ b/app/components/pub/ui/dialog/DialogContent.vue @@ -34,7 +34,7 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits) v-bind="forwarded" :class=" cn( - 'fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-5 2xl:p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg', + 'fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-2 2x:gap-3 border bg-background p-5 2xl:p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg', props.class, )" > diff --git a/app/components/pub/ui/dialog/DialogDescription.vue b/app/components/pub/ui/dialog/DialogDescription.vue index 3444c492..c7ac62d1 100644 --- a/app/components/pub/ui/dialog/DialogDescription.vue +++ b/app/components/pub/ui/dialog/DialogDescription.vue @@ -19,7 +19,7 @@ const forwardedProps = useForwardProps(delegatedProps)