forked from ebhomengo/niki
72 lines
2.2 KiB
Go
72 lines
2.2 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 *entity.Sex `query:"sex,omitempty"`
|
|
|
|
City *int64 `query:"city,omitempty"`
|
|
Province *int64 `query:"province,omitempty"`
|
|
|
|
Search *string `query:"search,omitempty"`
|
|
|
|
Pagination *Pagination `query:"pagination,omitempty"`
|
|
}
|
|
|
|
type PatientAnalyticItem struct {
|
|
ID int64 `json:"id"`
|
|
FirstName string `json:"first_name"`
|
|
LastName string `json:"Last_name"`
|
|
DateOfBirth string `json:"dob,omitempty"`
|
|
Sex entity.Sex `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.Patient) PatientAnalyticItem {
|
|
return PatientAnalyticItem{
|
|
ID: patient.ID,
|
|
FirstName: patient.FirstName,
|
|
LastName: patient.LastName,
|
|
DateOfBirth: patient.DateOfBirth,
|
|
Sex: patient.Sex,
|
|
Phone: patient.Phone,
|
|
Address: entity.Address{
|
|
ProvinceID: patient.Address.ProvinceID,
|
|
CityID: patient.Address.CityID,
|
|
},
|
|
}
|
|
}
|
|
|
|
// 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"`
|
|
}
|