100 lines
3.3 KiB
Go
100 lines
3.3 KiB
Go
package antrianoperasi
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
type DetailPasienOperasiResultQuery struct {
|
|
ResultMain DetailPasienOperasi
|
|
ResultDiagnosa []DiagnosaOperasiModel
|
|
ResultTindakan []TindakanOperasiModel
|
|
ResultTeleponOperasi []TeleponPasienModel
|
|
ResultDokterOperasi []DokterOperasiModel
|
|
}
|
|
|
|
type DetailPasienOperasiResponse struct {
|
|
FormData FormDataRequest `json:"formData"`
|
|
DiagnosisItem []DiagnosisItemRequest `json:"diagnosisItems" binding:"required,min=1,dive"`
|
|
TindakanItems []TindakanItemRequest `json:"tindakanItems" binding:"required,min=1,dive"`
|
|
RencanaOperasiData RencanaOperasiRequest `json:"rencanaOperasiData"`
|
|
DokterPelaksanaItems []DokterPelaksanaItemRequest `json:"dokterPelaksanaItems"`
|
|
StatusPasienData StatusPasienRequest `json:"statusPasienData"`
|
|
}
|
|
|
|
func handleStringPointer(str *string) string {
|
|
var result string
|
|
if str != nil {
|
|
result = *str
|
|
}
|
|
return result
|
|
}
|
|
|
|
func (model DetailPasienOperasiResultQuery) MapToResponse() DetailPasienOperasiResponse {
|
|
var result DetailPasienOperasiResponse
|
|
|
|
// map main data
|
|
var tglLahir string
|
|
if model.ResultMain.TglLahir != nil {
|
|
tglLahir = model.ResultMain.TglLahir.Format("2006-01-02")
|
|
}
|
|
result.FormData = FormDataRequest{
|
|
NoRekamMedis: handleStringPointer(model.ResultMain.NoRekamMedis),
|
|
NoKtp: handleStringPointer(model.ResultMain.NoKtp),
|
|
NamaPasien: handleStringPointer(model.ResultMain.NamaPasien),
|
|
JenisKelamin: handleStringPointer(model.ResultMain.JenisKelamin),
|
|
TglLahir: &tglLahir,
|
|
Umur: model.ResultMain.Umur,
|
|
Alamat: model.ResultMain.Alamat,
|
|
}
|
|
|
|
for _, tlp := range model.ResultTeleponOperasi {
|
|
result.FormData.NoTelepon = append(result.FormData.NoTelepon, tlp.NomorTelepon.String)
|
|
}
|
|
|
|
for _, d := range model.ResultDiagnosa {
|
|
result.DiagnosisItem = append(result.DiagnosisItem, DiagnosisItemRequest{
|
|
KodeDiagnosa: d.KodeDiagnosa.String,
|
|
Diagnosa: d.Diagnosa.String,
|
|
JenisDiagnosa: d.JenisDiagnosa.String,
|
|
})
|
|
}
|
|
|
|
for _, t := range model.ResultTindakan {
|
|
result.TindakanItems = append(result.TindakanItems, TindakanItemRequest{
|
|
KodeTindakan: t.KodeTindakan,
|
|
Tindakan: t.Tindakan,
|
|
TindakanTambahan: t.TindakanTambahan,
|
|
})
|
|
}
|
|
|
|
result.RencanaOperasiData = RencanaOperasiRequest{
|
|
Spesialis: model.ResultMain.IdSpesialis,
|
|
SpesialisName: model.ResultMain.Spesialis,
|
|
SubSpesialis: model.ResultMain.IdSubSpesialis,
|
|
SubSpesialisName: model.ResultMain.SubSpesialis,
|
|
TanggalDaftar: &model.ResultMain.TglDaftar,
|
|
KategoriOperasi: model.ResultMain.IdKategori,
|
|
KategoriName: model.ResultMain.Kategori,
|
|
RencanaOperasi: model.ResultMain.RencanaOperasi,
|
|
Keterangan: model.ResultMain.Keterangan,
|
|
}
|
|
|
|
for _, dk := range model.ResultDokterOperasi {
|
|
joinedName := strings.ToUpper(dk.NamaDepan.String) + " " + strings.ToUpper(dk.NamaBelakang.String)
|
|
result.DokterPelaksanaItems = append(result.DokterPelaksanaItems, DokterPelaksanaItemRequest{
|
|
Id: dk.ID,
|
|
Nip: &dk.Nip.String,
|
|
Nama: &joinedName,
|
|
SatuanKerja: &dk.SatuanKerja,
|
|
})
|
|
}
|
|
|
|
result.StatusPasienData = StatusPasienRequest{
|
|
TglSelesai: model.ResultMain.TglSelesai,
|
|
StatusOperasi: model.ResultMain.StatusOperasi,
|
|
KeteranganStatus: model.ResultMain.KeteranganStatusPasien,
|
|
}
|
|
|
|
return result
|
|
}
|