feat(patient): add occupation code support and update job selection

- Replace hardcoded job options with dynamic list from constants
- Update patient preview to display occupation by code if available
- Expand occupation codes in constants with comprehensive list
This commit is contained in:
Khafid Prayoga
2025-10-09 19:15:21 +07:00
parent ed972019dc
commit 91da0a1af9
4 changed files with 96 additions and 97 deletions

No files matched your search

+82 -4
View File
@@ -102,13 +102,91 @@ export const educationCodes: Record<string, string> = {
}
export const occupationCodes: Record<string, string> = {
'tidak-bekerja': 'Tidak Bekerja',
unknown: 'Tidak diketahui',
tidak_bekerja: 'Belum/Tidak Bekerja',
mengurus_rumah_tangga: 'Mengurus Rumah Tangga',
pelajar: 'Pelajar/Mahasiswa',
pensiunan: 'Pensiunan',
pns: 'Pegawai Negeri Sipil',
polisi: 'Polisi',
tni: 'TNI',
tni: 'Tentara Nasional Indonesia',
polri: 'Kepolisian RI',
perdagangan: 'Perdagangan',
petani: 'Petani/Pekebun',
peternak: 'Peternak',
nelayan: 'Nelayan/Perikanan',
industri: 'Industri',
konstruksi: 'Konstruksi',
transportasi: 'Transportasi',
karyawan_swasta: 'Karyawan Swasta',
karyawan_bumn: 'Karyawan BUMN',
karyawan_bumd: 'Karyawan BUMD',
karyawan_honorer: 'Karyawan Honorer',
buruh_harian: 'Buruh Harian Lepas',
buruh_tani: 'Buruh Tani/Perkebunan',
buruh_nelayan: 'Buruh Nelayan/Perikanan',
buruh_peternakan: 'Buruh Peternakan',
pembantu_rumah_tangga: 'Pembantu Rumah Tangga',
tukang_cukur: 'Tukang Cukur',
tukang_listrik: 'Tukang Listrik',
tukang_batu: 'Tukang Batu',
tukang_kayu: 'Tukang Kayu',
tukang_sol_sepatu: 'Tukang Sol Sepatu',
tukang_jahit: 'Tukang Jahit',
tukang_gigi: 'Tukang Gigi',
penata_rias: 'Penata Rias',
penata_busana: 'Penata Busana',
penata_rambut: 'Penata Rambut',
mekanik: 'Mekanik',
seniman: 'Seniman',
tabib: 'Tabib',
paraji: 'Paraji',
perancang_busana: 'Perancang Busana',
penterjemah: 'Penterjemah',
imam_mesjid: 'Imam Mesjid',
pendeta: 'Pendeta',
pastor: 'Pastor',
wartawan: 'Wartawan',
ustadz: 'Ustadz/Mubaligh',
juru_masak: 'Juru Masak',
promotor: 'Promotor Acara',
dpr_ri: 'Anggota DPR-RI',
dpd: 'Anggota DPD',
bpk: 'Anggota BPK',
presiden: 'Presiden',
wakil_presiden: 'Wakil Presiden',
mk: 'Anggota Mahkamah Konstitusi',
kabinet: 'Anggota Kabinet/Kementrian',
dubes: 'Duta Besar',
gubernur: 'Gubernur',
wakil_gubernur: 'Wakil Gubernur',
bupati: 'Bupati',
wakil_bupati: 'Wakil Bupati',
walikota: 'Walikota',
wakil_walikota: 'Wakil Walikota',
dprd_provinsi: 'Anggota DPRD Provinsi',
dprd_kabkota: 'Anggota DPRD Kabupaten/Kota',
dosen: 'Dosen',
guru: 'Guru',
pilot: 'Pilot',
pengacara: 'Pengacara',
arsitek: 'Arsitek',
akuntan: 'Akuntan',
konsultan: 'Konsultan',
dokter: 'Dokter',
bidan: 'Bidan',
apoteker: 'Apoteker',
psikolog: 'Psikiater/Psikolog',
penyiar_tv: 'Penyiar Televisi',
penyiar_radio: 'Penyiar Radio',
pelaut: 'Pelaut',
sopir: 'Sopir',
pialang: 'Pialang',
paranormal: 'Paranormal',
pedagang: 'Pedagang',
perangkat_desa: 'Perangkat Desa',
kepala_desa: 'Kepala Desa',
biarawati: 'Biarawati',
wiraswasta: 'Wiraswasta',
'kary-swasta': 'Karyawan Swasta',
lainnya: 'Lainnya',
}
+1
View File
@@ -36,6 +36,7 @@ export function toTitleCase(str: string): string {
return str.toLowerCase().replace(/\b\w/g, (char) => char.toUpperCase())
}
/**
* Menghitung umur berdasarkan tanggal lahir
* @param birthDate - Tanggal lahir dalam format Date atau string