Files
simrsx-be/internal/use-case/bpjs-plugin/vclaim-sep-control-letter/tycovar.go
T
dpurbosakti 30fa443e3e wip
2025-12-09 12:46:20 +07:00

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)
}