205 lines
5.2 KiB
Go
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"`
|
|
}
|