Files
satusehat-service/internal/satusehat/usecase/encounter/dto.go
T
2026-04-14 01:23:34 +00:00

45 lines
2.1 KiB
Go

package encounter
import (
"database/sql"
"time"
)
// EncounterRequest merepresentasikan data input untuk membuat atau memperbarui Encounter.
type EncounterRequest struct {
EncounterID string `json:"encounter_id" binding:"required"`
OrganizationID string `json:"organization_id" binding:"required"`
EpisodeOfCareID string `json:"episode_of_care_id,omitempty"`
PatientID string `json:"patient_id" binding:"required"`
PatientName string `json:"patient_name" binding:"required"`
PractitionerID string `json:"practitioner_id" binding:"required"`
PractitionerName string `json:"practitioner_name" binding:"required"`
LocationID string `json:"location_id" binding:"required"`
LocationName string `json:"location_name" binding:"required"`
Status string `json:"status" binding:"required,oneof=arrived in-progress finished cancelled"` // arrived, in-progress, finished, cancelled
Class string `json:"class" binding:"required,oneof=AMB IMP EMER"` // AMB (ambulatory), IMP (inpatient), EMER (emergency)
PeriodStart time.Time `json:"period_start" binding:"required"`
PeriodEnd *time.Time `json:"period_end,omitempty"`
}
// EncounterPatchRequest merepresentasikan payload operasi JSON Patch.
type EncounterPatchRequest []map[string]interface{}
// PendaftaranDB merepresentasikan baris data dari tabel t_pendaftaran
type PendaftaranDB struct {
IdxDaftar int64 `db:"idxdaftar"`
NoMR sql.NullString `db:"nomr"`
JamReg sql.NullTime `db:"jamreg"`
MasukPoly sql.NullTime `db:"masukpoly"`
KeluarPoly sql.NullTime `db:"keluarpoly"`
Batal sql.NullString `db:"batal"`
KdPoly sql.NullInt64 `db:"kdpoly"`
PoliNameHFIS sql.NullString `db:"poli_name_hfis"`
DokterIDHFIS sql.NullString `db:"dokter_id_hfis"`
DokterNameHFIS sql.NullString `db:"dokter_name_hfis"`
PasienNIK sql.NullString `db:"pasien_nik"`
DokterNIK sql.NullString `db:"dokter_nik"`
PatientIHS sql.NullString `db:"patient_ihs"`
PractitionerIHS sql.NullString `db:"practitioner_ihs"`
}