Merge pull request #89 from dikstub-rssa/feat/ambulance-transport-76

Feat/ambulance transport 76
This commit is contained in:
Dwi Atmoko Purbo Sakti
2025-10-20 14:31:36 +07:00
committed by GitHub
12 changed files with 996 additions and 3 deletions
@@ -0,0 +1,137 @@
package ambulance_transport_req
import (
ecore "simrs-vx/internal/domain/base-entities/core"
eds "simrs-vx/internal/domain/main-entities/district"
ept "simrs-vx/internal/domain/main-entities/patient"
epr "simrs-vx/internal/domain/main-entities/province"
erg "simrs-vx/internal/domain/main-entities/regency"
evl "simrs-vx/internal/domain/main-entities/village"
eren "simrs-vx/internal/domain/references/encounter"
erp "simrs-vx/internal/domain/references/person"
"time"
)
type CreateDto struct {
Patient_Id *uint `json:"patient_id"`
Diagnoses *string `json:"diagnoses" validate:"maxLength=1024"`
RequestDate *time.Time `json:"requestDate"`
UsageDate *time.Time `json:"usageDate"`
Address *string `json:"address" validate:"maxLength=100"`
RtRw *string `json:"rtRw" validate:"maxLength=10"`
Province_Code *string `json:"province_code" validate:"maxLength=2"`
Regency_Code *string `json:"regency_code" validate:"maxLength=4"`
District_Code *string `json:"district_code" validate:"maxLength=6"`
Village_Code *string `json:"village_code" validate:"maxLength=10"`
Facility_Code *eren.AmbulanceFacilityCode `json:"facility_code" validate:"maxLength=10"`
Needs_Code *eren.AmbulanceNeedsCode `json:"needs_code" validate:"maxLength=10"`
Contact_Name *string `json:"contact_name" validate:"maxLength=100"`
Contact_Relationship_Code *erp.RelationshipCode `json:"contact_relationship_code" validate:"maxLength=10"`
Contact_PhoneNumber *string `json:"contact_phoneNumber" validate:"maxLength=20"`
}
type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Pagination ecore.Pagination
}
type FilterDto struct {
Patient_Id *uint `json:"patient-id"`
Facility_Code *eren.AmbulanceFacilityCode `json:"facility-code"`
Needs_Code *eren.AmbulanceNeedsCode `json:"needs-code"`
Province_Code *string `json:"province-code"`
Regency_Code *string `json:"regency-code"`
District_Code *string `json:"district-code"`
Village_Code *string `json:"village-code"`
}
type ReadDetailDto struct {
Id uint16 `json:"id"`
Includes string `json:"includes"`
}
type UpdateDto struct {
Id uint16 `json:"id"`
CreateDto
}
type DeleteDto struct {
Id uint16 `json:"id"`
}
type MetaDto struct {
PageNumber int `json:"page_number"`
PageSize int `json:"page_size"`
Count int `json:"count"`
}
type ResponseDto struct {
ecore.Main
Patient_Id *uint `json:"patient_id"`
Patient *ept.Patient `json:"patient,omitempty"`
Diagnoses *string `json:"diagnoses"`
RequestDate *time.Time `json:"requestDate"`
UsageDate *time.Time `json:"usageDate"`
Address *string `json:"address"`
RtRw *string `json:"rtRw"`
Province_Code *string `json:"province_code"`
Province *epr.Province `json:"province,omitempty"`
Regency_Code *string `json:"regency_code"`
Regency *erg.Regency `json:"regency,omitempty"`
District_Code *string `json:"district_code"`
District *eds.District `json:"district,omitempty"`
Village_Code *string `json:"village_code"`
Village *evl.Village `json:"village,omitempty"`
Facility_Code *eren.AmbulanceFacilityCode `json:"facility_code"`
Needs_Code *eren.AmbulanceNeedsCode `json:"needs_code"`
Contact_Name *string `json:"contact_name"`
Contact_Relationship_Code *erp.RelationshipCode `json:"contact_relationship_code"`
Contact_PhoneNumber *string `json:"contact_phoneNumber"`
}
func (d AmbulanceTransportReq) ToResponse() ResponseDto {
resp := ResponseDto{
Patient_Id: d.Patient_Id,
Patient: d.Patient,
Diagnoses: d.Diagnoses,
RequestDate: d.RequestDate,
UsageDate: d.UsageDate,
Address: d.Address,
RtRw: d.RtRw,
Province_Code: d.Province_Code,
Province: d.Province,
Regency_Code: d.Regency_Code,
Regency: d.Regency,
District_Code: d.District_Code,
District: d.District,
Village_Code: d.Village_Code,
Village: d.Village,
Facility_Code: d.Facility_Code,
Needs_Code: d.Needs_Code,
Contact_Name: d.Contact_Name,
Contact_Relationship_Code: d.Contact_Relationship_Code,
Contact_PhoneNumber: d.Contact_PhoneNumber,
}
resp.Main = d.Main
return resp
}
func ToResponseList(data []AmbulanceTransportReq) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -19,7 +19,7 @@ type AmbulanceTransportReq struct {
Patient *ept.Patient `json:"patient,omitempty" gorm:"foreignKey:Patient_Id;references:Id"`
Diagnoses *string `json:"diagnoses" gorm:"size:1024"`
RequestData *time.Time `json:"requestData"`
RequestDate *time.Time `json:"requestDate"`
UsageDate *time.Time `json:"usageDate"`
Address *string `json:"address" gorm:"size:100"`