Merge branch 'dev' of github.com:dikstub-rssa/simrs-be into fix/anything-moko

This commit is contained in:
dpurbosakti
2025-10-30 13:20:23 +07:00
62 changed files with 2238 additions and 217 deletions
+5 -2
View File
@@ -1,13 +1,16 @@
package adime
import (
// std
"time"
// internal - lib
pa "simrs-vx/internal/lib/auth"
// internal - domain
ecore "simrs-vx/internal/domain/base-entities/core"
eem "simrs-vx/internal/domain/main-entities/employee"
ee "simrs-vx/internal/domain/main-entities/encounter"
pa "simrs-vx/pkg/auth-helper"
)
type CreateDto struct {
@@ -0,0 +1,78 @@
package adm_employee_hist
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ee "simrs-vx/internal/domain/main-entities/employee"
"time"
)
type CreateDto struct {
Encounter_Id *uint `json:"encounter_id"`
Employee_Id *uint `json:"employee_id"`
StartedAt *time.Time `json:"startedAt"`
FinishedAt *time.Time `json:"finishedAt"`
}
type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Sort string `json:"sort"`
Pagination ecore.Pagination
}
type FilterDto struct {
Encounter_Id *uint `json:"encounter-id"`
Employee_Id *uint `json:"employee-id"`
StartedAt *time.Time `json:"startedAt"`
FinishedAt *time.Time `json:"finishedAt"`
}
type ReadDetailDto struct {
Id uint16 `json:"id"`
Code *string `json:"code"`
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 // adjust this according to the needs
Encounter_Id *uint `json:"encounter_id"`
Employee_Id *uint `json:"employee_id"`
Employee *ee.Employee `json:"employee,omitempty"`
StartedAt *time.Time `json:"startedAt"`
FinishedAt *time.Time `json:"finishedAt"`
}
func (d AdmEmployeeHist) ToResponse() ResponseDto {
resp := ResponseDto{
Encounter_Id: d.Encounter_Id,
Employee_Id: d.Employee_Id,
Employee: d.Employee,
StartedAt: d.StartedAt,
FinishedAt: d.FinishedAt,
}
resp.Main = d.Main
return resp
}
func ToResponseList(data []AdmEmployeeHist) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
+8 -4
View File
@@ -1,16 +1,20 @@
package chemo
import (
// std
"time"
// internal - lib
pa "simrs-vx/internal/lib/auth"
// internal - domain - references
erc "simrs-vx/internal/domain/references/common"
// internal - domain - main-entities
ecore "simrs-vx/internal/domain/base-entities/core"
ee "simrs-vx/internal/domain/main-entities/encounter"
eun "simrs-vx/internal/domain/main-entities/unit"
eus "simrs-vx/internal/domain/main-entities/user"
erc "simrs-vx/internal/domain/references/common"
pa "simrs-vx/pkg/auth-helper"
)
type CreateDto struct {
@@ -1,14 +1,19 @@
package consultation
import (
// std
"time"
// internal - lib
pa "simrs-vx/internal/lib/auth"
// internal - domain - base-entities
ecore "simrs-vx/internal/domain/base-entities/core"
// internal - domain - main-entities
ed "simrs-vx/internal/domain/main-entities/doctor"
ee "simrs-vx/internal/domain/main-entities/encounter"
eu "simrs-vx/internal/domain/main-entities/unit"
pa "simrs-vx/pkg/auth-helper"
)
type CreateDto struct {
@@ -1,13 +1,18 @@
package deviceorder
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"
// internal - lib
pa "simrs-vx/internal/lib/auth"
// internal - domain - base-entities
ecore "simrs-vx/internal/domain/base-entities/core"
// internal - domain - references
erc "simrs-vx/internal/domain/references/common"
pa "simrs-vx/pkg/auth-helper"
// internal - domain - main-entities
ed "simrs-vx/internal/domain/main-entities/doctor"
ee "simrs-vx/internal/domain/main-entities/encounter"
)
type CreateDto struct {
+23 -5
View File
@@ -1,9 +1,20 @@
package encounter
import (
// std
"time"
// internal - lib
pa "simrs-vx/internal/lib/auth"
// internal - domain - base-entities
ecore "simrs-vx/internal/domain/base-entities/core"
// internal - domain - references
erc "simrs-vx/internal/domain/references/common"
ere "simrs-vx/internal/domain/references/encounter"
// internal - domain - main-entities
evs "simrs-vx/internal/domain/bpjs-entities/vclaim-sep"
ea "simrs-vx/internal/domain/main-entities/appointment"
ed "simrs-vx/internal/domain/main-entities/doctor"
@@ -13,11 +24,6 @@ import (
es "simrs-vx/internal/domain/main-entities/specialist"
ess "simrs-vx/internal/domain/main-entities/subspecialist"
eu "simrs-vx/internal/domain/main-entities/unit"
erc "simrs-vx/internal/domain/references/common"
ere "simrs-vx/internal/domain/references/encounter"
pa "simrs-vx/pkg/auth-helper"
)
type CreateDto struct {
@@ -40,6 +46,8 @@ type CreateDto struct {
Responsible_Doctor_Id *uint `json:"responsible_doctor_id"`
RefSource_Name *string `json:"refSource_name" validate:"maxLength=100"`
Appointment_Id *uint `json:"appointment_id"`
RefTypeCode ere.RefTypeCode `json:"refTypeCode"`
NewStatus bool `json:"newStatus"`
pa.AuthInfo
}
@@ -48,6 +56,8 @@ type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Pagination ecore.Pagination
pa.AuthInfo
}
type FilterDto struct {
@@ -105,6 +115,14 @@ type DischargeDto struct {
InternalReferences *[]eir.CreateDto `json:"internalReferences,omitempty"`
}
type CheckinDto struct {
Id uint `json:"id"`
Responsible_Doctor_Id *uint `json:"responsible_doctor_id"`
Adm_Employee_Id *uint `json:"adm_employee_id"`
StartedAt *time.Time `json:"startedAt"`
FinishedAt *time.Time `json:"finishedAt"`
}
type ResponseDto struct {
ecore.Main
Patient_Id *uint `json:"patient_id"`
@@ -32,10 +32,13 @@ type Encounter struct {
Subspecialist_Id *uint16 `json:"subspecialist_id"`
Subspecialist *ess.Subspecialist `json:"subspecialist,omitempty" gorm:"foreignKey:Subspecialist_Id;references:Id"`
VisitDate time.Time `json:"visitDate"`
StartedAt *time.Time `json:"startedAt"`
FinishedAt *time.Time `json:"finishedAt"`
PaymentMethod_Code erc.PaymentMethodCode `json:"paymentMethod_code" gorm:"size:10"`
InsuranceCompany_Id *uint `json:"insuranceCompany_id"`
InsuranceCompany *ei.InsuranceCompany `json:"insuranceCompany,omitempty" gorm:"foreignKey:InsuranceCompany_Id;references:Id"`
Member_Number *string `json:"memberNumber" gorm:"unique;size:20"`
RefType_Code *ere.RefTypeCode `json:"refType_code"`
Ref_Number *string `json:"refNumber" gorm:"unique;size:20"`
Trx_Number *string `json:"trxNumber" gorm:"unique;size:20"`
Appointment_Doctor_Id *uint `json:"appointment_doctor_id"`
@@ -57,6 +60,7 @@ type Encounter struct {
Discharge_Date *time.Time `json:"discharge_date"`
InternalReferences *[]eir.InternalReference `json:"internalReferences,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"`
DeathCause *edc.DeathCause `json:"deathCause,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"`
NewStatus bool `json:"newStatus"`
}
func (d Encounter) IsDone() bool {
@@ -1,13 +1,18 @@
package materialorder
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"
// internal - lib
pa "simrs-vx/internal/lib/auth"
// internal - domain - base-entities
ecore "simrs-vx/internal/domain/base-entities/core"
// internal - domain - references
erc "simrs-vx/internal/domain/references/common"
pa "simrs-vx/pkg/auth-helper"
// internal - domain - main-entities
ed "simrs-vx/internal/domain/main-entities/doctor"
ee "simrs-vx/internal/domain/main-entities/encounter"
)
type CreateDto struct {
+13 -6
View File
@@ -1,15 +1,22 @@
package mcuorder
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"
// std
"time"
// internal - lib
pa "simrs-vx/internal/lib/auth"
// internal - domain - base-entities
ecore "simrs-vx/internal/domain/base-entities/core"
// internal - domain - references
ercl "simrs-vx/internal/domain/references/clinical"
erc "simrs-vx/internal/domain/references/common"
pa "simrs-vx/pkg/auth-helper"
// internal - domain - main-entities
ed "simrs-vx/internal/domain/main-entities/doctor"
ee "simrs-vx/internal/domain/main-entities/encounter"
)
type CreateDto struct {
@@ -20,7 +27,7 @@ type CreateDto struct {
ExaminationDate *time.Time `json:"examinationDate"`
Number uint8 `json:"number"`
Temperature float64 `json:"temperature"`
McuUrgencyLevel_Code ercl.McuUrgencyLevelCode `json:"mcuUrgencyLevel_code""`
McuUrgencyLevel_Code ercl.McuUrgencyLevelCode `json:"mcuUrgencyLevel_code"`
pa.AuthInfo
}
@@ -39,7 +46,7 @@ type FilterDto struct {
ExaminationDate *time.Time `json:"examinationDate"`
Number uint8 `json:"number"`
Temperature float64 `json:"temperature"`
McuUrgencyLevel_Code ercl.McuUrgencyLevelCode `json:"mcuUrgencyLevel-code""`
McuUrgencyLevel_Code ercl.McuUrgencyLevelCode `json:"mcuUrgencyLevel-code"`
}
type ReadDetailDto struct {
Id uint `json:"id"`
@@ -1,12 +1,17 @@
package medicationitem
import (
ecore "simrs-vx/internal/domain/base-entities/core"
emi "simrs-vx/internal/domain/main-entities/medication-item"
pa "simrs-vx/pkg/auth-helper"
// std
"time"
// internal - lib
pa "simrs-vx/internal/lib/auth"
// internal - domain - base-entities
ecore "simrs-vx/internal/domain/base-entities/core"
// internal - domain - main-entities
emi "simrs-vx/internal/domain/main-entities/medication-item"
)
type CreateDto struct {
@@ -1,15 +1,21 @@
package medication
import (
// std
"time"
ecore "simrs-vx/internal/domain/base-entities/core"
ee "simrs-vx/internal/domain/main-entities/encounter"
ep "simrs-vx/internal/domain/main-entities/pharmacist"
// internal - lib
pa "simrs-vx/internal/lib/auth"
// internal - domain - base-entities
ecore "simrs-vx/internal/domain/base-entities/core"
// internal - domain - references
erc "simrs-vx/internal/domain/references/common"
pa "simrs-vx/pkg/auth-helper"
// internal - domain - main-entities
ee "simrs-vx/internal/domain/main-entities/encounter"
ep "simrs-vx/internal/domain/main-entities/pharmacist"
)
type CreateDto struct {
@@ -16,4 +16,6 @@ type Patient struct {
RegisteredBy_User_Name *string `json:"registeredBy_user_name" gorm:"size:100"`
Status_Code erc.ActiveStatusCode `json:"status_code" gorm:"not null;size:10"`
Number *string `json:"number" gorm:"unique;size:15"`
Parent_Number *string `json:"parent_number"`
Parent *Patient `json:"parent,omitempty" gorm:"foreignKey:Parent_Number;references:Number"`
}
@@ -7,6 +7,8 @@ import (
ed "simrs-vx/internal/domain/main-entities/doctor"
ee "simrs-vx/internal/domain/main-entities/encounter"
pa "simrs-vx/internal/lib/auth"
erc "simrs-vx/internal/domain/references/common"
)
@@ -15,6 +17,8 @@ type CreateDto struct {
Doctor_Id *uint `json:"doctor_id"`
IssuedAt *time.Time `json:"issuedAt"`
Status_Code erc.DataStatusCode `json:"status_code"`
pa.AuthInfo
}
type ReadListDto struct {
@@ -0,0 +1,78 @@
package responsible_doctor_hist
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ed "simrs-vx/internal/domain/main-entities/doctor"
"time"
)
type CreateDto struct {
Encounter_Id *uint `json:"encounter_id"`
Doctor_Id *uint `json:"doctor_id"`
StartedAt *time.Time `json:"startedAt"`
FinishedAt *time.Time `json:"finishedAt"`
}
type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Sort string `json:"sort"`
Pagination ecore.Pagination
}
type FilterDto struct {
Encounter_Id *uint `json:"encounter-id"`
Doctor_Id *uint `json:"doctor-id"`
StartedAt *time.Time `json:"startedAt"`
FinishedAt *time.Time `json:"finishedAt"`
}
type ReadDetailDto struct {
Id uint16 `json:"id"`
Code *string `json:"code"`
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 // adjust this according to the needs
Encounter_Id *uint `json:"encounter_id"`
Doctor_Id *uint `json:"doctor_id"`
Doctor *ed.Doctor `json:"doctor,omitempty"`
StartedAt *time.Time `json:"startedAt"`
FinishedAt *time.Time `json:"finishedAt"`
}
func (d ResponsibleDoctorHist) ToResponse() ResponseDto {
resp := ResponseDto{
Encounter_Id: d.Encounter_Id,
Doctor_Id: d.Doctor_Id,
Doctor: d.Doctor,
StartedAt: d.StartedAt,
FinishedAt: d.FinishedAt,
}
resp.Main = d.Main
return resp
}
func ToResponseList(data []ResponsibleDoctorHist) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
+7 -2
View File
@@ -1,13 +1,18 @@
package sbar
import (
// std
"time"
// internal - lib
pa "simrs-vx/internal/lib/auth"
// internal - domain - base-entities
ecore "simrs-vx/internal/domain/base-entities/core"
// internal - domain - main-entities
eem "simrs-vx/internal/domain/main-entities/employee"
ee "simrs-vx/internal/domain/main-entities/encounter"
pa "simrs-vx/pkg/auth-helper"
)
type CreateDto struct {
+1 -1
View File
@@ -9,7 +9,7 @@ import (
erc "simrs-vx/internal/domain/references/clinical"
pa "simrs-vx/pkg/auth-helper"
pa "simrs-vx/internal/lib/auth"
)
type CreateDto struct {
@@ -3,6 +3,7 @@ package specialist
import (
ecore "simrs-vx/internal/domain/base-entities/core"
espb "simrs-vx/internal/domain/main-entities/specialist-position/base"
essb "simrs-vx/internal/domain/main-entities/subspecialist/base"
)
type CreateDto struct {
@@ -52,6 +53,7 @@ type ResponseDto struct {
Name string `json:"name"`
Unit_Id *uint16 `json:"unit_id"`
SpecialistPositions []espb.Basic `json:"specialistPositions,omitempty"`
Subspecialists []essb.Basic `json:"subspecialists,omitempty"`
}
func (d Specialist) ToResponse() ResponseDto {
@@ -60,6 +62,7 @@ func (d Specialist) ToResponse() ResponseDto {
Name: d.Name,
Unit_Id: d.Unit_Id,
SpecialistPositions: d.SpecialistPositions,
Subspecialists: d.Subspecialists,
}
resp.SmallMain = d.SmallMain
return resp
@@ -3,14 +3,16 @@ package specialist
import (
ecore "simrs-vx/internal/domain/base-entities/core"
eub "simrs-vx/internal/domain/main-entities/specialist-position/base"
essb "simrs-vx/internal/domain/main-entities/subspecialist/base"
eu "simrs-vx/internal/domain/main-entities/unit"
)
type Specialist struct {
ecore.SmallMain // adjust this according to the needs
Code string `json:"code" gorm:"unique;size:10"`
Name string `json:"name" gorm:"size:50"`
Unit_Id *uint16 `json:"unit_id"`
Unit *eu.Unit `json:"unit,omitempty" gorm:"foreignKey:Unit_Id"`
SpecialistPositions []eub.Basic `json:"specialistPositions,omitempty" gorm:"foreignKey:Specialist_Id;references:Id"`
ecore.SmallMain // adjust this according to the needs
Code string `json:"code" gorm:"unique;size:10"`
Name string `json:"name" gorm:"size:50"`
Unit_Id *uint16 `json:"unit_id"`
Unit *eu.Unit `json:"unit,omitempty" gorm:"foreignKey:Unit_Id"`
SpecialistPositions []eub.Basic `json:"specialistPositions,omitempty" gorm:"foreignKey:Specialist_Id;references:Id"`
Subspecialists []essb.Basic `json:"subspecialists,omitempty" gorm:"foreignKey:Specialist_Id;references:Id"`
}
@@ -0,0 +1,16 @@
package base
import (
ecore "simrs-vx/internal/domain/base-entities/core"
)
type Basic struct {
ecore.SmallMain // adjust this according to the needs
Code string `json:"code" gorm:"unique;size:10"`
Name string `json:"name" gorm:"size:50"`
Specialist_Id *uint16 `json:"specialist_id"`
}
func (Basic) TableName() string {
return "Subspecialist"
}
@@ -1,16 +1,13 @@
package subspecialist
import (
ecore "simrs-vx/internal/domain/base-entities/core"
es "simrs-vx/internal/domain/main-entities/specialist"
espb "simrs-vx/internal/domain/main-entities/subspecialist-position/base"
esb "simrs-vx/internal/domain/main-entities/subspecialist/base"
)
type Subspecialist struct {
ecore.SmallMain // adjust this according to the needs
Code string `json:"code" gorm:"unique;size:10"`
Name string `json:"name" gorm:"size:50"`
Specialist_Id *uint16 `json:"specialist_id"`
esb.Basic
Specialist *es.Specialist `json:"specialist,omitempty" gorm:"foreignKey:Specialist_Id"`
SubspecialistPositions []espb.Basic `json:"subspecialistPositions,omitempty" gorm:"foreignKey:Subspecialist_Id;references:Id"`
}
@@ -15,6 +15,9 @@ type (
ChemoClassCode string
AmbulanceFacilityCode string
AmbulanceNeedsCode string
RefTypeCode string
AllPaymentMethodCode string
SEPRefTypeCode string
)
const (
@@ -90,6 +93,19 @@ const (
ANCAssist AmbulanceNeedsCode = "assist" // Dengan Pendampingan
ANCNonassist AmbulanceNeedsCode = "non-assist" // Tanpa Pendampingan
RTCNone RefTypeCode = "none" // Tidak Ada
RTCGov RefTypeCode = "gov" // Pemerintah
RTCPrivate RefTypeCode = "private" // Swasta
RTCBpjs RefTypeCode = "bpjs" // BPJS
APMCJkn AllPaymentMethodCode = "jkn" // JKN
APMCJkmm AllPaymentMethodCode = "jkmm" // JKMM
APMCSpm AllPaymentMethodCode = "spm" // SPM
APMCPks AllPaymentMethodCode = "pks" // PKS
SRTCInternal SEPRefTypeCode = "internal" // Rujukan Internal
SRTCExternal SEPRefTypeCode = "external" // Faskes Lain
)
func (ec EncounterClassCode) Code() string {