110 lines
3.9 KiB
Go
110 lines
3.9 KiB
Go
package satusehat
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/go-playground/validator/v10"
|
|
)
|
|
|
|
type Visit struct {
|
|
VisitID string
|
|
PatientSatusehatID string
|
|
PatientNIK string
|
|
PatientName string
|
|
PatientSex string
|
|
PatientBirthDate *time.Time
|
|
PatientAddress string
|
|
PractitionerNIK string
|
|
PractitionerSatusehatID string
|
|
PractitionerName string
|
|
ClinicSatusehatID string
|
|
ClinicName string
|
|
Systole string
|
|
Diastole string
|
|
HeartRate string
|
|
RespirationRate string
|
|
OxygenSaturation string
|
|
Temperature string
|
|
PeriodStartDate time.Time
|
|
PeriodEndDate time.Time
|
|
ArrivedStartTime *time.Time
|
|
ArrivedEndTime *time.Time
|
|
InProgressStartTime *time.Time
|
|
InProgressEndTime *time.Time
|
|
FinishStartTime *time.Time
|
|
FinishEndTime *time.Time
|
|
}
|
|
|
|
type VisitDetail struct {
|
|
VisitId string `json:"visit_id" validate:"required"`
|
|
PatientSatusehatId string `json:"patient_satusehat_id" validate:"required"`
|
|
PatientNik string `json:"patient_nik" `
|
|
PatientName string `json:"patient_name" validate:"required"`
|
|
PatientSex string `json:"patient_sex"`
|
|
PatientBirthDate *time.Time `json:"patient_birth_date"`
|
|
PatientAddress string `json:"patient_address"`
|
|
PractitionerNik string `json:"practitioner_nik"`
|
|
PractitionerId string `json:"practitioner_satusehat_id" validate:"required"`
|
|
PractitionerName string `json:"practitioner_name" validate:"required"`
|
|
ClinicName string `json:"clinic_name" validate:"required"`
|
|
ClinicSatuSehatId string `json:"clinic_id" validate:"required"`
|
|
PeriodStartDate time.Time `json:"period_start_date" validate:"required"`
|
|
PeriodEndDate time.Time `json:"period_end_date" validate:"required"`
|
|
ArrivedStartTime *time.Time `json:"arrived_start_time" validate:"required"`
|
|
ArrivedEndTime *time.Time `json:"arrived_end_time" validate:"required"`
|
|
InProgressStartTime *time.Time `json:"in_progress_start_time" validate:"required"`
|
|
InProgressEndTime *time.Time `json:"in_progress_end_time" validate:"required"`
|
|
FinishStartTime *time.Time `json:"finish_start_time" validate:"required"`
|
|
FinishEndTime *time.Time `json:"finish_end_time" validate:"required"`
|
|
}
|
|
|
|
func (v VisitDetail) Invalid() error {
|
|
val := validator.New()
|
|
return val.Struct(v)
|
|
}
|
|
|
|
type VitalSign struct {
|
|
Systole string `json:"sistole"`
|
|
Diastole string `json:"diastole"`
|
|
HeartRate string `json:"heart_rate"`
|
|
RespirationRate string `json:"respiration_rate"`
|
|
Temperature string `json:"temperature"`
|
|
OxygenSaturation string `json:"oxygen_saturation"`
|
|
}
|
|
|
|
func (v *Visit) VitalSign() VitalSign {
|
|
return VitalSign{
|
|
Systole: v.Systole,
|
|
Diastole: v.Diastole,
|
|
HeartRate: v.HeartRate,
|
|
RespirationRate: v.RespirationRate,
|
|
Temperature: v.Temperature,
|
|
OxygenSaturation: v.OxygenSaturation,
|
|
}
|
|
}
|
|
|
|
func (v *Visit) VisitDetail() VisitDetail {
|
|
return VisitDetail{
|
|
VisitId: v.VisitID,
|
|
PatientSatusehatId: v.PatientSatusehatID,
|
|
PatientNik: v.PatientNIK,
|
|
PatientName: v.PatientName,
|
|
PatientSex: v.PatientSex,
|
|
PatientBirthDate: v.PatientBirthDate,
|
|
PatientAddress: v.PatientAddress,
|
|
ClinicName: v.ClinicName,
|
|
ClinicSatuSehatId: v.ClinicSatusehatID,
|
|
PeriodStartDate: v.PeriodStartDate,
|
|
PeriodEndDate: v.PeriodEndDate,
|
|
PractitionerNik: v.PractitionerNIK,
|
|
PractitionerId: v.PractitionerSatusehatID,
|
|
PractitionerName: v.PractitionerName,
|
|
ArrivedStartTime: v.ArrivedStartTime,
|
|
ArrivedEndTime: v.ArrivedEndTime,
|
|
InProgressStartTime: v.InProgressStartTime,
|
|
InProgressEndTime: v.InProgressEndTime,
|
|
FinishStartTime: v.FinishStartTime,
|
|
FinishEndTime: v.FinishEndTime,
|
|
}
|
|
}
|