108 lines
3.2 KiB
Vue
108 lines
3.2 KiB
Vue
<script setup lang="ts">
|
|
import * as DE from '~/components/pub/my-ui/doc-entry'
|
|
import { genderCodes } from '~/const/key-val/person';
|
|
import type { Encounter } from '~/models/encounter'
|
|
|
|
const props = defineProps<{
|
|
data: Encounter
|
|
}>()
|
|
|
|
let address = ref('')
|
|
if (props.data.patient.person.addresses) {
|
|
address.value = props.data.patient.person.addresses.map((a) => a.address).join(', ')
|
|
}
|
|
|
|
let dpjp = ref('')
|
|
if (props.data.responsible_doctor) {
|
|
const dp = props.data.responsible_doctor.employee.person
|
|
dpjp.value = `${dp.frontTitle} ${dp.name} ${dp.endTitle}`
|
|
} else if (props.data.appointment_doctor) {
|
|
dpjp.value = props.data.appointment_doctor.employee.person.name
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<div class="w-full">
|
|
<!-- Data Pasien -->
|
|
<h2 class="mb-2 font-semibold md:text-base 2xl:text-lg">
|
|
{{ data.patient.person.name }} - {{ data.patient.number }}
|
|
</h2>
|
|
<div class="grid grid-cols-3">
|
|
<div>
|
|
<DE.Block mode="preview">
|
|
<DE.Cell>
|
|
<DE.Label class="font-semibold">No. RM</DE.Label>
|
|
<DE.Colon />
|
|
<DE.Field>
|
|
{{ data.patient.person.birthDate?.substring(0, 10) }}
|
|
</DE.Field>
|
|
</DE.Cell>
|
|
<DE.Cell>
|
|
<DE.Label class="font-semibold">Jns. Kelamin</DE.Label>
|
|
<DE.Colon />
|
|
<DE.Field>
|
|
{{ genderCodes[data.patient.person.gender_code as keyof typeof genderCodes] }}
|
|
</DE.Field>
|
|
</DE.Cell>
|
|
<DE.Cell>
|
|
<DE.Label class="font-semibold">Alamat</DE.Label>
|
|
<DE.Colon />
|
|
<DE.Field>
|
|
<div v-html="address"></div>
|
|
</DE.Field>
|
|
</DE.Cell>
|
|
</DE.Block>
|
|
</div>
|
|
<div>
|
|
<DE.Block mode="preview">
|
|
<DE.Cell>
|
|
<DE.Label position="dynamic" class="font-semibold">Tgl. Masuk</DE.Label>
|
|
<DE.Colon />
|
|
<DE.Field>
|
|
{{ data.visitDate.substring(0, 10) }}
|
|
</DE.Field>
|
|
</DE.Cell>
|
|
<DE.Cell>
|
|
<DE.Label position="dynamic" class="font-semibold">Poliklinik</DE.Label>
|
|
<DE.Colon />
|
|
<DE.Field>
|
|
{{ data.unit?.name }}
|
|
</DE.Field>
|
|
</DE.Cell>
|
|
<DE.Cell>
|
|
<DE.Label position="dynamic" class="font-semibold">Klinik</DE.Label>
|
|
<DE.Colon />
|
|
<DE.Field>
|
|
{{ data.unit?.name }}
|
|
</DE.Field>
|
|
</DE.Cell>
|
|
</DE.Block>
|
|
</div>
|
|
<div>
|
|
<DE.Block mode="preview">
|
|
<DE.Cell>
|
|
<DE.Label position="dynamic" class="font-semibold">DPJP</DE.Label>
|
|
<DE.Colon />
|
|
<DE.Field>
|
|
{{ dpjp }}
|
|
</DE.Field>
|
|
</DE.Cell>
|
|
<DE.Cell>
|
|
<DE.Label
|
|
position="dynamic"
|
|
class="!text-base font-semibold 2xl:!text-lg"
|
|
>
|
|
Billing
|
|
</DE.Label>
|
|
<DE.Colon class="pt-1" />
|
|
<DE.Field class="text-base 2xl:text-lg">
|
|
Rp. 000.000
|
|
<!-- {{ data }} -->
|
|
</DE.Field>
|
|
</DE.Cell>
|
|
</DE.Block>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|