Files
simrsx-be/internal/domain/bpjs-entities/vclaim-sep/dto.go
T
2025-11-28 16:10:35 +07:00

205 lines
5.2 KiB
Go

package vclaimsep
import (
"encoding/json"
ecore "simrs-vx/internal/domain/base-entities/core"
evsh "simrs-vx/internal/domain/bpjs-entities/vclaim-sep-hist"
)
type CreateDto struct {
Encounter_Id *uint `json:"encounter_id"`
Number *string `json:"number" validate:"maxLength=19"`
RequestPayload string `json:"requestPayload" validate:"maxLength=1024"`
VclaimSepHist evsh.CreateDto
}
type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Sort string `json:"sort"`
Pagination ecore.Pagination
}
type FilterDto struct {
Number *string `json:"number"`
}
type ReadDetailDto struct {
Id uint `json:"id"`
Number *string `json:"number"`
Encounter_Id *uint `json:"encounter_id"`
}
type UpdateDto struct {
Id uint `json:"id"`
CreateDto
}
type DeleteDto struct {
Id uint `json:"id"`
Number *string `json:"number"`
}
type MetaDto struct {
PageNumber int `json:"page_number"`
PageSize int `json:"page_size"`
Count int `json:"count"`
}
type ResponseDto struct {
ecore.Main
Encounter_Id *uint `json:"encounter_id"`
Number *string `json:"number"`
Detail *SepDetail `json:"detail,omitempty"`
}
func (d VclaimSep) ToResponse() ResponseDto {
resp := ResponseDto{
Encounter_Id: d.Encounter_Id,
Number: d.Number,
Detail: d.Detail,
}
resp.Main = d.Main
return resp
}
func ToResponseList(data []VclaimSep) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
func (c CreateDto) IsMessageSuccess() bool {
return c.VclaimSepHist.Message == "Sukses"
}
func (c CreateDto) RequestPayloadIntoJson() ([]byte, error) {
payload := map[string]interface{}{}
err := json.Unmarshal([]byte(c.RequestPayload), &payload)
if err != nil {
return nil, err
}
return json.Marshal(payload)
}
func (c CreateDto) RequestPayloadWithEncounterId() ([]byte, error) {
payload := map[string]interface{}{}
err := json.Unmarshal([]byte(c.RequestPayload), &payload)
if err != nil {
return nil, err
}
payload["encounter_id"] = c.Encounter_Id
return json.Marshal(payload)
}
type SepResponse struct {
MetaData MetaData `json:"metaData"`
Response *SepDetail `json:"response"`
}
type MetaData struct {
Code string `json:"code"`
Message string `json:"message"`
}
type SepDetail struct {
AssestmenPel AssestmenPel `json:"assestmenPel"`
Catatan string `json:"catatan"`
Cob string `json:"cob"`
Diagnosa string `json:"diagnosa"`
Dpjp Dpjp `json:"dpjp"`
ESep string `json:"eSEP"`
FlagProcedure FlagProcedure `json:"flagProcedure"`
Informasi any `json:"informasi"` // null = interface{}
JnsPelayanan string `json:"jnsPelayanan"`
Katarak string `json:"katarak"`
KdPenunjang KdPenunjang `json:"kdPenunjang"`
KdStatusKecelakaan string `json:"kdStatusKecelakaan"`
KelasRawat string `json:"kelasRawat"`
KlsRawat KlsRawat `json:"klsRawat"`
Kontrol Kontrol `json:"kontrol"`
LokasiKejadian LokasiKejadian `json:"lokasiKejadian"`
NmStatusKecelakaan string `json:"nmstatusKecelakaan"`
NoRujukan string `json:"noRujukan"`
NoSep string `json:"noSep"`
Penjamin any `json:"penjamin"` // null
Peserta Peserta `json:"peserta"`
Poli string `json:"poli"`
PoliEksekutif string `json:"poliEksekutif"`
TglSep string `json:"tglSep"`
TujuanKunj TujuanKunj `json:"tujuanKunj"`
}
type AssestmenPel struct {
Kode string `json:"kode"`
Nama string `json:"nama"`
}
type Dpjp struct {
KdDPJP string `json:"kdDPJP"`
NmDPJP string `json:"nmDPJP"`
}
type FlagProcedure struct {
Kode string `json:"kode"`
Nama string `json:"nama"`
}
type KdPenunjang struct {
Kode string `json:"kode"`
Nama string `json:"nama"`
}
type KlsRawat struct {
KlsRawatHak string `json:"klsRawatHak"`
KlsRawatNaik *string `json:"klsRawatNaik"` // nullable
Pembiayaan *string `json:"pembiayaan"` // nullable
PenanggungJawab *string `json:"penanggungJawab"` // nullable
}
type Kontrol struct {
KdDokter *string `json:"kdDokter"` // null
NmDokter *string `json:"nmDokter"` // null
NoSurat *string `json:"noSurat"` // null
}
type LokasiKejadian struct {
KdKab *string `json:"kdKab"`
KdKec *string `json:"kdKec"`
KdProp *string `json:"kdProp"`
KetKejadian *string `json:"ketKejadian"`
Lokasi *string `json:"lokasi"`
TglKejadian *string `json:"tglKejadian"`
}
type Peserta struct {
Asuransi any `json:"asuransi"`
HakKelas string `json:"hakKelas"`
JnsPeserta string `json:"jnsPeserta"`
Kelamin string `json:"kelamin"`
Nama string `json:"nama"`
NoKartu string `json:"noKartu"`
NoMR string `json:"noMr"`
TglLahir string `json:"tglLahir"`
}
type TujuanKunj struct {
Kode string `json:"kode"`
Nama string `json:"nama"`
}
type SepDeleteRequest struct {
Request struct {
TSep struct {
NoSep string `json:"noSep"`
User string `json:"user"`
} `json:"t_sep"`
} `json:"request"`
}