niki/patientapp/service/analytic/param.go

72 lines
2.1 KiB
Go

package analytic
import (
"git.gocasts.ir/ebhomengo/niki/patientapp/service/entity"
)
type ListPatientAnalyticRequest struct {
// All fields are optional
MinAge *int `query:"minAge,omitempty"`
MaxAge *int `query:"maxAge,omitempty"`
Sex *string `query:"sex,omitempty"`
City *uint16 `query:"city,omitempty"`
Province *uint16 `query:"province,omitempty"`
Search *string `query:"search,omitempty"`
Pagination *Pagination `query:"pagination,omitempty"`
}
type PatientAnalyticItem struct {
ID uint64 `json:"id"`
FirstName string `json:"first_name"`
LastName string `json:"Last_name"`
DateOfBirth string `json:"dob,omitempty"`
Sex string `json:"sex"`
Phone string `json:"phone"`
Address entity.Address `json:"address"`
}
type PatientAnalyticResponse struct {
Items []PatientAnalyticItem `json:"items"`
Pagination *Pagination `json:"pagination"`
Total int `json:"total"`
}
func ToPatientResponse(patient entity.UserMeta) PatientAnalyticItem {
return PatientAnalyticItem{
ID: patient.ID,
FirstName: patient.Name,
LastName: patient.LastName,
DateOfBirth: patient.BirthDate,
Sex: patient.Gender,
Phone: *patient.Mobile,
Address: entity.Address{
ProvinceID: patient.AddressState,
CityID: patient.AddressCity,
},
}
}
// GetPatientMapSummaryRequest =========================== Map ==================================
type GetPatientMapSummaryRequest struct {
Level entity.MapLevel `query:"level"`
ParentID *int `query:"parentID"`
MinAge *int `query:"minAge,omitempty"`
MaxAge *int `query:"maxAge,omitempty"`
Sex *entity.Sex `query:"sex,omitempty"`
Search *string `query:"search,omitempty"`
}
type GetPatientMapSummaryResponse struct {
Level entity.MapLevel `json:"level"`
Items map[uint][]entity.MapSummaryItem `json:"items"`
}
// Pagination ================================ Pagination =============================
type Pagination struct {
Limit int `query:"limit,omitempty"`
Offset int `query:"offset,omitempty"`
}