feat (therapy-protocol): add verification

This commit is contained in:
dpurbosakti
2025-11-14 14:16:07 +07:00
parent 1c04ff23f6
commit d03c1c7a93
5 changed files with 167 additions and 41 deletions
@@ -4,24 +4,27 @@ import (
ecore "simrs-vx/internal/domain/base-entities/core"
ed "simrs-vx/internal/domain/main-entities/doctor"
ee "simrs-vx/internal/domain/main-entities/encounter"
"simrs-vx/internal/domain/references/common"
erc "simrs-vx/internal/domain/references/common"
pa "simrs-vx/internal/lib/auth"
)
type CreateDto struct {
Encounter_Id *uint `json:"encounter_id"`
Doctor_Code *string `json:"doctor_code"`
Anamnesis *string `json:"anamnesis" validate:"maxLength=2048"`
MedicalDiagnoses *string `json:"medicalDiagnoses"`
FunctionDiagnoses *string `json:"functionDiagnoses"`
Procedures *string `json:"procedures"`
SupportingExams *string `json:"supportingExams" validate:"maxLength=2048"`
Instruction *string `json:"instruction" validate:"maxLength=2048"`
Evaluation *string `json:"evaluation" validate:"maxLength=2048"`
WorkCauseStatus *string `json:"workCauseStatus"`
Frequency *uint `json:"frequency"`
IntervalUnit_Code *common.TimeUnitCode `json:"intervalUnit_code" validate:"maxLength=10"`
Duration *uint `json:"duration"`
DurationUnit_Code *common.TimeUnitCode `json:"durationUnit_code" validate:"maxLength=10"`
Encounter_Id *uint `json:"encounter_id"`
Doctor_Code *string `json:"doctor_code"`
Anamnesis *string `json:"anamnesis" validate:"maxLength=2048"`
MedicalDiagnoses *string `json:"medicalDiagnoses"`
FunctionDiagnoses *string `json:"functionDiagnoses"`
Procedures *string `json:"procedures"`
SupportingExams *string `json:"supportingExams" validate:"maxLength=2048"`
Instruction *string `json:"instruction" validate:"maxLength=2048"`
Evaluation *string `json:"evaluation" validate:"maxLength=2048"`
WorkCauseStatus *string `json:"workCauseStatus"`
Frequency *uint `json:"frequency"`
IntervalUnit_Code *erc.TimeUnitCode `json:"intervalUnit_code" validate:"maxLength=10"`
Duration *uint `json:"duration"`
DurationUnit_Code *erc.TimeUnitCode `json:"durationUnit_code" validate:"maxLength=10"`
Status_Code *erc.DataVerifiedCode `json:"status_code"`
}
type ReadListDto struct {
@@ -49,6 +52,13 @@ type DeleteDto struct {
Id uint `json:"id"`
}
type VerifyDto struct {
Id uint `json:"id"`
Status_Code erc.DataVerifiedCode `json:"status_code"`
pa.AuthInfo
}
type MetaDto struct {
PageNumber int `json:"page_number"`
PageSize int `json:"page_size"`
@@ -57,22 +67,23 @@ type MetaDto struct {
type ResponseDto struct {
ecore.Main
Encounter_Id *uint `json:"encounter_id"`
Encounter *ee.Encounter `json:"encounter,omitempty"`
Doctor_Code *string `json:"doctor_code"`
Doctor *ed.Doctor `json:"doctor,omitempty"`
Anamnesis *string `json:"anamnesis"`
MedicalDiagnoses *string `json:"medicalDiagnoses"`
FunctionDiagnoses *string `json:"functionDiagnoses"`
Procedures *string `json:"procedures"`
SupportingExams *string `json:"supportingExams"`
Instruction *string `json:"instruction"`
Evaluation *string `json:"evaluation"`
WorkCauseStatus *string `json:"workCauseStatus"`
Frequency *uint `json:"frequency"`
IntervalUnit_Code *common.TimeUnitCode `json:"intervalUnit_code"`
Duration *uint `json:"duration"`
DurationUnit_Code *common.TimeUnitCode `json:"durationUnit_code"`
Encounter_Id *uint `json:"encounter_id"`
Encounter *ee.Encounter `json:"encounter,omitempty"`
Doctor_Code *string `json:"doctor_code"`
Doctor *ed.Doctor `json:"doctor,omitempty"`
Anamnesis *string `json:"anamnesis"`
MedicalDiagnoses *string `json:"medicalDiagnoses"`
FunctionDiagnoses *string `json:"functionDiagnoses"`
Procedures *string `json:"procedures"`
SupportingExams *string `json:"supportingExams"`
Instruction *string `json:"instruction"`
Evaluation *string `json:"evaluation"`
WorkCauseStatus *string `json:"workCauseStatus"`
Frequency *uint `json:"frequency"`
IntervalUnit_Code *erc.TimeUnitCode `json:"intervalUnit_code"`
Duration *uint `json:"duration"`
DurationUnit_Code *erc.TimeUnitCode `json:"durationUnit_code"`
Status_Code *erc.DataVerifiedCode `json:"status_code"`
}
func (d TherapyProtocol) ToResponse() ResponseDto {
@@ -93,6 +104,7 @@ func (d TherapyProtocol) ToResponse() ResponseDto {
IntervalUnit_Code: d.IntervalUnit_Code,
Duration: d.Duration,
DurationUnit_Code: d.DurationUnit_Code,
Status_Code: d.Status_Code,
}
resp.Main = d.Main
return resp
@@ -30,3 +30,7 @@ type TherapyProtocol struct {
DurationUnit_Code *common.TimeUnitCode `json:"durationUnit_code" gorm:"size:10"`
Status_Code *common.DataVerifiedCode `json:"status_code" gorm:"size:10"`
}
func (d TherapyProtocol) IsNew() bool {
return d.Status_Code != nil && *d.Status_Code == common.DVCNew
}