Files
satusehat-service/internal/satusehat/usecase/encounter/dto.go
T

41 lines
1.7 KiB
Go

package encounter
import (
"service/internal/satusehat/common"
"service/pkg/utils/custom"
)
type EncounterRequest struct {
OrganizationID string `json:"organization_id,omitempty"`
EncounterID string `json:"encounter_id,omitempty"`
Status string `json:"status" binding:"required,oneof=planned arrived triaged in-progress onleave finished cancelled entered-in-error unknown"`
Class string `json:"class" binding:"required,oneof=AMB EMER IMP"`
Subject *common.ReferenceDTO `json:"subject" binding:"required"`
Participant []common.ReferenceDTO `json:"participant,omitempty"`
Location []LocationDTO `json:"location,omitempty"`
PeriodStart *custom.CustomTime `json:"period_start" binding:"required"`
PeriodEnd *custom.CustomTime `json:"period_end,omitempty"`
Diagnosis []DiagnosisDTO `json:"diagnosis,omitempty"`
StatusHistory []StatusHistoryDTO `json:"status_history,omitempty"`
}
type LocationDTO struct {
Location *common.ReferenceDTO `json:"location,omitempty"`
PeriodStart *custom.CustomTime `json:"period_start,omitempty"`
PeriodEnd *custom.CustomTime `json:"period_end,omitempty"`
}
type DiagnosisDTO struct {
Condition *common.ReferenceDTO `json:"condition,omitempty"`
Use *common.CodeableConceptDTO `json:"use,omitempty"`
Rank int `json:"rank,omitempty"`
}
type StatusHistoryDTO struct {
Status string `json:"status,omitempty"`
PeriodStart *custom.CustomTime `json:"period_start,omitempty"`
PeriodEnd *custom.CustomTime `json:"period_end,omitempty"`
}
type EncounterPatchRequest []map[string]interface{}