58 lines
1.5 KiB
TypeScript
58 lines
1.5 KiB
TypeScript
import { type Base, genBase } from './_base'
|
|
import type { PersonAddress } from './person-address'
|
|
import type { PersonContact } from './person-contact'
|
|
import type { PersonRelative } from './person-relative'
|
|
import type { Ethnic } from './ethnic'
|
|
import type { Language } from './language'
|
|
import type { Regency } from './regency'
|
|
|
|
export interface Person extends Base {
|
|
name: string
|
|
// alias?: string
|
|
frontTitle?: string
|
|
endTitle?: string
|
|
birthDate?: string
|
|
birthRegency_code?: string
|
|
gender_code?: string
|
|
residentIdentityNumber?: string
|
|
passportNumber?: string
|
|
drivingLicenseNumber?: string
|
|
religion_code?: string
|
|
education_code?: string
|
|
occupation_code?: string
|
|
occupation_name?: string
|
|
ethnic_code?: string
|
|
language_code?: string
|
|
nationality?: string
|
|
communicationIssueStatus?: boolean
|
|
disability?: string
|
|
residentIdentityFileUrl?: string
|
|
passportFileUrl?: string
|
|
drivingLicenseFileUrl?: string
|
|
familyIdentityFileUrl?: string
|
|
|
|
// preload data for detail patient
|
|
birthRegency?: Regency | null
|
|
addresses?: PersonAddress[] | null
|
|
contacts?: PersonContact[] | null
|
|
relatives?: PersonRelative[] | null
|
|
ethnic?: Ethnic | null
|
|
language?: Language | null
|
|
}
|
|
|
|
export function genPerson(): Person {
|
|
return {
|
|
...genBase(),
|
|
frontTitle: '[MOCK] dr. ',
|
|
name: 'Agus Iwan Setiawan',
|
|
endTitle: 'Sp.Bo',
|
|
}
|
|
}
|
|
|
|
export function parseName(person: Person): string {
|
|
if (!person) return ''
|
|
const fullName = [person.frontTitle, person.name, person.endTitle].filter(Boolean).join(' ').trim()
|
|
|
|
return fullName
|
|
}
|