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"` }