88 lines
2.6 KiB
Go
88 lines
2.6 KiB
Go
package vclaimsepcontrolletter
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
e "simrs-vx/internal/domain/bpjs-entities/vclaim-sep-control-letter"
|
|
)
|
|
|
|
type SuratKontrol struct {
|
|
NoSuratKontrol string `json:"noSuratKontrol"`
|
|
TglRencanaKontrol string `json:"tglRencanaKontrol"`
|
|
TglTerbit string `json:"tglTerbit"`
|
|
JnsKontrol string `json:"jnsKontrol"`
|
|
PoliTujuan string `json:"poliTujuan"`
|
|
NamaPoliTujuan string `json:"namaPoliTujuan"`
|
|
KodeDokter string `json:"kodeDokter"`
|
|
NamaDokter string `json:"namaDokter"`
|
|
FlagKontrol string `json:"flagKontrol"`
|
|
KodeDokterPembuat *string `json:"kodeDokterPembuat"`
|
|
NamaDokterPembuat *string `json:"namaDokterPembuat"`
|
|
NamaJnsKontrol string `json:"namaJnsKontrol"`
|
|
Sep Sep `json:"sep"`
|
|
}
|
|
|
|
type Sep struct {
|
|
NoSep string `json:"noSep"`
|
|
TglSep string `json:"tglSep"`
|
|
JnsPelayanan string `json:"jnsPelayanan"`
|
|
Poli string `json:"poli"`
|
|
Diagnosa string `json:"diagnosa"`
|
|
Peserta Peserta `json:"peserta"`
|
|
ProvUmum ProvUmum `json:"provUmum"`
|
|
ProvPerujuk ProvPerujuk `json:"provPerujuk"`
|
|
}
|
|
|
|
type Peserta struct {
|
|
NoKartu string `json:"noKartu"`
|
|
Nama string `json:"nama"`
|
|
TglLahir string `json:"tglLahir"`
|
|
Kelamin string `json:"kelamin"`
|
|
HakKelas string `json:"hakKelas"`
|
|
}
|
|
|
|
type ProvUmum struct {
|
|
KdProvider string `json:"kdProvider"`
|
|
NmProvider string `json:"nmProvider"`
|
|
}
|
|
|
|
type ProvPerujuk struct {
|
|
KdProviderPerujuk string `json:"kdProviderPerujuk"`
|
|
NmProviderPerujuk string `json:"nmProviderPerujuk"`
|
|
AsalRujukan string `json:"asalRujukan"`
|
|
NoRujukan string `json:"noRujukan"`
|
|
TglRujukan string `json:"tglRujukan"`
|
|
}
|
|
|
|
type Response struct {
|
|
MetaData MetaData `json:"metaData"`
|
|
Response *SuratKontrol `json:"response"` // nullable
|
|
}
|
|
|
|
type MetaData struct {
|
|
Code string `json:"code"`
|
|
Message string `json:"message"`
|
|
}
|
|
|
|
func (r Response) ToPDFNeeds() ([]byte, error) {
|
|
response := e.ResponseForPDF{
|
|
Number: r.Response.Sep.NoSep,
|
|
PlannedControlDate: r.Response.TglRencanaKontrol,
|
|
IssuedDate: r.Response.TglTerbit,
|
|
Doctor_Name: r.Response.NamaDokter,
|
|
DstUnit_Name: r.Response.NamaPoliTujuan,
|
|
ResponsibleDoctor_Name: *r.Response.NamaDokterPembuat,
|
|
VclaimSep: e.VclaimSep{
|
|
VclaimMember: e.VclaimMember{
|
|
CardNumber: r.Response.Sep.Peserta.NoKartu,
|
|
Name: r.Response.Sep.Peserta.Nama,
|
|
BirthDate: r.Response.Sep.Peserta.TglLahir,
|
|
Gender: r.Response.Sep.Peserta.Kelamin,
|
|
},
|
|
Diagnose: r.Response.Sep.Diagnosa,
|
|
Number: r.Response.Sep.NoSep,
|
|
},
|
|
}
|
|
return json.Marshal(response)
|
|
}
|