145 lines
5.0 KiB
Go
145 lines
5.0 KiB
Go
// internal/models/reference/vclaim.go
|
|
package reference
|
|
|
|
// === PESERTA MODELS ===
|
|
|
|
// PesertaRequest represents peserta lookup request
|
|
type PesertaRequest struct {
|
|
BaseRequest
|
|
NoKartu string `json:"nokartu" validate:"required,min=13,max=13"`
|
|
NIK string `json:"nik,omitempty" validate:"omitempty,min=16,max=16"`
|
|
TanggalSEP string `json:"tglsep" validate:"required" example:"2024-01-15"`
|
|
NoTelepon string `json:"notelp,omitempty" validate:"omitempty,max=15"`
|
|
}
|
|
|
|
// PesertaData represents peserta information from BPJS
|
|
type PesertaData struct {
|
|
NoKartu string `json:"noKartu"`
|
|
NIK string `json:"nik"`
|
|
Nama string `json:"nama"`
|
|
Pisa string `json:"pisa"`
|
|
Sex string `json:"sex"`
|
|
TanggalLahir string `json:"tglLahir"`
|
|
TelephoneMsisdn string `json:"tglTAT"`
|
|
TelephoneAsat string `json:"tglTMT"`
|
|
KodeCabang string `json:"kdCabang"`
|
|
NamaCabang string `json:"nmCabang"`
|
|
KodeJenisPeserta string `json:"kdJnsPst"`
|
|
NamaJenisPeserta string `json:"nmJnsPst"`
|
|
KelasRawat string `json:"klsRawat"`
|
|
Status string `json:"statusPeserta"`
|
|
Aktif string `json:"aktif"`
|
|
KeteranganAktif string `json:"ketAktif"`
|
|
NoSKTM string `json:"noSKTM,omitempty"`
|
|
NoKTP string `json:"noKtp"`
|
|
Asuransi string `json:"asuransi,omitempty"`
|
|
CoB string `json:"cob,omitempty"`
|
|
TunggakanIuran string `json:"tglTunggak,omitempty"`
|
|
MR struct {
|
|
NoMR string `json:"noMR"`
|
|
NamaMR string `json:"nmMR"`
|
|
Sex string `json:"sex"`
|
|
TglLahir string `json:"tglLahir"`
|
|
TglMeninggal string `json:"tglMeninggal,omitempty"`
|
|
} `json:"mr,omitempty"`
|
|
}
|
|
|
|
// PesertaResponse represents peserta API response
|
|
type PesertaResponse struct {
|
|
BaseResponse
|
|
Data *PesertaData `json:"data,omitempty"`
|
|
MetaData interface{} `json:"metaData,omitempty"`
|
|
}
|
|
|
|
// === SEP (Surat Eligibilitas Peserta) MODELS ===
|
|
|
|
// SEPRequest represents SEP creation/update request
|
|
type SEPRequest struct {
|
|
BaseRequest
|
|
NoKartu string `json:"noKartu" validate:"required"`
|
|
TglSep string `json:"tglSep" validate:"required"`
|
|
PPKPelayanan string `json:"ppkPelayanan" validate:"required"`
|
|
JnsPelayanan string `json:"jnsPelayanan" validate:"required,oneof=1 2"`
|
|
KlsRawat string `json:"klsRawat" validate:"required,oneof=1 2 3"`
|
|
NoMR string `json:"noMR" validate:"required"`
|
|
Rujukan *SEPRujukan `json:"rujukan"`
|
|
Catatan string `json:"catatan,omitempty"`
|
|
Diagnosa string `json:"diagnosa" validate:"required"`
|
|
PoliTujuan string `json:"poli" validate:"required"`
|
|
ExternalUser string `json:"user" validate:"required"`
|
|
NoTelp string `json:"noTelp,omitempty"`
|
|
}
|
|
|
|
// SEPRujukan represents rujukan information in SEP
|
|
type SEPRujukan struct {
|
|
AsalRujukan string `json:"asalRujukan" validate:"required,oneof=1 2"`
|
|
TglRujukan string `json:"tglRujukan" validate:"required"`
|
|
NoRujukan string `json:"noRujukan" validate:"required"`
|
|
PPKRujukan string `json:"ppkRujukan" validate:"required"`
|
|
}
|
|
|
|
// SEPData represents SEP response data
|
|
type SEPData struct {
|
|
NoSep string `json:"noSep"`
|
|
TglSep string `json:"tglSep"`
|
|
JnsPelayanan string `json:"jnsPelayanan"`
|
|
PoliTujuan string `json:"poli"`
|
|
KlsRawat string `json:"klsRawat"`
|
|
NoMR string `json:"noMR"`
|
|
Rujukan SEPRujukan `json:"rujukan"`
|
|
Catatan string `json:"catatan"`
|
|
Diagnosa string `json:"diagnosa"`
|
|
Peserta PesertaData `json:"peserta"`
|
|
Informasi struct {
|
|
NoSKDP string `json:"noSKDP,omitempty"`
|
|
DPJPLayan string `json:"dpjpLayan"`
|
|
NoTelepon string `json:"noTelp"`
|
|
SubSpesialis string `json:"subSpesialis,omitempty"`
|
|
} `json:"informasi"`
|
|
}
|
|
|
|
// SEPResponse represents SEP API response
|
|
type SEPResponse struct {
|
|
BaseResponse
|
|
Data *SEPData `json:"data,omitempty"`
|
|
}
|
|
|
|
// === RUJUKAN MODELS ===
|
|
|
|
// RujukanRequest represents rujukan lookup request
|
|
type RujukanRequest struct {
|
|
BaseRequest
|
|
NoRujukan string `json:"noRujukan" validate:"required"`
|
|
NoKartu string `json:"noKartu,omitempty"`
|
|
}
|
|
|
|
// RujukanData represents rujukan information
|
|
type RujukanData struct {
|
|
NoRujukan string `json:"noRujukan"`
|
|
TglRujukan string `json:"tglRujukan"`
|
|
NoKartu string `json:"noKartu"`
|
|
Nama string `json:"nama"`
|
|
KelasRawat string `json:"kelasRawat"`
|
|
Diagnosa struct {
|
|
KodeDiagnosa string `json:"kdDiagnosa"`
|
|
NamaDiagnosa string `json:"nmDiagnosa"`
|
|
} `json:"diagnosa"`
|
|
PoliRujukan struct {
|
|
KodePoli string `json:"kdPoli"`
|
|
NamaPoli string `json:"nmPoli"`
|
|
} `json:"poliRujukan"`
|
|
ProvPerujuk struct {
|
|
KodeProvider string `json:"kdProvider"`
|
|
NamaProvider string `json:"nmProvider"`
|
|
} `json:"provPerujuk"`
|
|
PelayananInfo string `json:"pelayanan"`
|
|
StatusRujukan string `json:"statusRujukan"`
|
|
}
|
|
|
|
// RujukanResponse represents rujukan API response
|
|
type RujukanResponse struct {
|
|
BaseResponse
|
|
Data *RujukanData `json:"data,omitempty"`
|
|
List []RujukanData `json:"list,omitempty"`
|
|
}
|