From b27e49954bca7b0ac6cfa3a5b4666557ef12c590 Mon Sep 17 00:00:00 2001 From: vanilia Date: Fri, 31 Oct 2025 15:28:23 +0700 Subject: [PATCH] update entity --- .../main-entities/ambulatory/base/entity.go | 17 +++++++++++++++++ .../domain/main-entities/ambulatory/entity.go | 10 +++------- .../main-entities/emergency/base/entity.go | 16 ++++++++++++++++ .../domain/main-entities/emergency/entity.go | 10 +++------- .../domain/main-entities/encounter/entity.go | 6 ++++++ .../main-entities/inpatient/base/entity.go | 19 +++++++++++++++++++ .../domain/main-entities/inpatient/entity.go | 13 +++---------- .../domain/main-entities/rehab/base/entity.go | 18 ++++++++++++++++++ internal/domain/main-entities/rehab/entity.go | 11 +++++++++++ .../domain/references/encounter/encounter.go | 4 ++++ 10 files changed, 100 insertions(+), 24 deletions(-) create mode 100644 internal/domain/main-entities/ambulatory/base/entity.go create mode 100644 internal/domain/main-entities/emergency/base/entity.go create mode 100644 internal/domain/main-entities/inpatient/base/entity.go create mode 100644 internal/domain/main-entities/rehab/base/entity.go create mode 100644 internal/domain/main-entities/rehab/entity.go diff --git a/internal/domain/main-entities/ambulatory/base/entity.go b/internal/domain/main-entities/ambulatory/base/entity.go new file mode 100644 index 00000000..2dced5a2 --- /dev/null +++ b/internal/domain/main-entities/ambulatory/base/entity.go @@ -0,0 +1,17 @@ +package base + +import ( + ecore "simrs-vx/internal/domain/base-entities/core" + ere "simrs-vx/internal/domain/references/encounter" +) + +type Basic struct { + ecore.Main // adjust this according to the needs + Encounter_Id *uint `json:"encounter_id"` + Class_Code ere.AmbulatoryClassCode `json:"class_code" gorm:"size:10"` + VisitMode_Code ere.VisitModeCode `json:"visitMode_code"` +} + +func (Basic) TableName() string { + return "Ambulatory" +} diff --git a/internal/domain/main-entities/ambulatory/entity.go b/internal/domain/main-entities/ambulatory/entity.go index 58a9810e..61117c81 100644 --- a/internal/domain/main-entities/ambulatory/entity.go +++ b/internal/domain/main-entities/ambulatory/entity.go @@ -1,15 +1,11 @@ package ambulatory import ( - ecore "simrs-vx/internal/domain/base-entities/core" + ea "simrs-vx/internal/domain/main-entities/ambulatory/base" ee "simrs-vx/internal/domain/main-entities/encounter" - - ere "simrs-vx/internal/domain/references/encounter" ) type Ambulatory struct { - ecore.Main // adjust this according to the needs - Encounter_Id *uint `json:"encounter_id"` - Encounter *ee.Encounter `json:"encounter,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"` - Class_Code ere.AmbulatoryClassCode `json:"class_code" gorm:"size:10"` + ea.Basic + Encounter *ee.Encounter `json:"encounter,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"` } diff --git a/internal/domain/main-entities/emergency/base/entity.go b/internal/domain/main-entities/emergency/base/entity.go new file mode 100644 index 00000000..3ec85f50 --- /dev/null +++ b/internal/domain/main-entities/emergency/base/entity.go @@ -0,0 +1,16 @@ +package base + +import ( + ecore "simrs-vx/internal/domain/base-entities/core" + ere "simrs-vx/internal/domain/references/encounter" +) + +type Basic struct { + ecore.Main // adjust this according to the needs + Encounter_Id *uint `json:"encounter_id"` + Class_Code ere.EmergencyClassCode `json:"class_code" gorm:"size:10"` +} + +func (Basic) TableName() string { + return "Emergency" +} diff --git a/internal/domain/main-entities/emergency/entity.go b/internal/domain/main-entities/emergency/entity.go index 1e6fb078..475a02ca 100644 --- a/internal/domain/main-entities/emergency/entity.go +++ b/internal/domain/main-entities/emergency/entity.go @@ -1,15 +1,11 @@ package emergency import ( - ecore "simrs-vx/internal/domain/base-entities/core" + eeb "simrs-vx/internal/domain/main-entities/emergency/base" ee "simrs-vx/internal/domain/main-entities/encounter" - - ere "simrs-vx/internal/domain/references/encounter" ) type Emergency struct { - ecore.Main // adjust this according to the needs - Encounter_Id *uint `json:"encounter_id"` - Encounter *ee.Encounter `json:"encounter,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"` - Class_Code ere.EmergencyClassCode `json:"class_code" gorm:"size:10"` + eeb.Basic + Encounter *ee.Encounter `json:"encounter,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"` } diff --git a/internal/domain/main-entities/encounter/entity.go b/internal/domain/main-entities/encounter/entity.go index 37779409..423dc3e9 100644 --- a/internal/domain/main-entities/encounter/entity.go +++ b/internal/domain/main-entities/encounter/entity.go @@ -3,10 +3,13 @@ package encounter import ( ecore "simrs-vx/internal/domain/base-entities/core" evs "simrs-vx/internal/domain/bpjs-entities/vclaim-sep" + eam "simrs-vx/internal/domain/main-entities/ambulatory/base" ea "simrs-vx/internal/domain/main-entities/appointment" edc "simrs-vx/internal/domain/main-entities/death-cause" ed "simrs-vx/internal/domain/main-entities/doctor" + eem "simrs-vx/internal/domain/main-entities/emergency/base" ee "simrs-vx/internal/domain/main-entities/employee" + eip "simrs-vx/internal/domain/main-entities/inpatient/base" ei "simrs-vx/internal/domain/main-entities/insurance-company" eir "simrs-vx/internal/domain/main-entities/internal-reference" ep "simrs-vx/internal/domain/main-entities/patient" @@ -61,6 +64,9 @@ type Encounter struct { 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"` + Ambulatory *eam.Basic `json:"ambulatory,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"` + Emergency *eem.Basic `json:"emergency,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"` + Inpatient *eip.Basic `json:"inpatient,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"` } func (d Encounter) IsDone() bool { diff --git a/internal/domain/main-entities/inpatient/base/entity.go b/internal/domain/main-entities/inpatient/base/entity.go new file mode 100644 index 00000000..1f4a94f4 --- /dev/null +++ b/internal/domain/main-entities/inpatient/base/entity.go @@ -0,0 +1,19 @@ +package base + +import ( + ecore "simrs-vx/internal/domain/base-entities/core" + ei "simrs-vx/internal/domain/main-entities/infra" + ere "simrs-vx/internal/domain/references/encounter" +) + +type Basic struct { + ecore.Main // adjust this according to the needs + Encounter_Id *uint `json:"encounter_id"` + Class_Code ere.InpatientClassCode `json:"class_code" gorm:"size:10"` + Infra_Id *uint16 `json:"infra_id"` + Infra *ei.Infra `json:"infra,omitempty" gorm:"foreignKey:Infra_Id;references:Id"` +} + +func (Basic) TableName() string { + return "Inpatient" +} diff --git a/internal/domain/main-entities/inpatient/entity.go b/internal/domain/main-entities/inpatient/entity.go index 328f5d12..e88e7fa0 100644 --- a/internal/domain/main-entities/inpatient/entity.go +++ b/internal/domain/main-entities/inpatient/entity.go @@ -1,18 +1,11 @@ package inpatient import ( - ecore "simrs-vx/internal/domain/base-entities/core" ee "simrs-vx/internal/domain/main-entities/encounter" - ei "simrs-vx/internal/domain/main-entities/infra" - - ere "simrs-vx/internal/domain/references/encounter" + eb "simrs-vx/internal/domain/main-entities/inpatient/base" ) type Inpatient struct { - ecore.Main // adjust this according to the needs - Encounter_Id *uint `json:"encounter_id"` - Encounter *ee.Encounter `json:"encounter,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"` - Class_Code ere.InpatientClassCode `json:"class_code" gorm:"size:10"` - Infra_Id *uint16 `json:"infra_id"` - Infra *ei.Infra `json:"infra,omitempty" gorm:"foreignKey:Infra_Id;references:Id"` + eb.Basic + Encounter *ee.Encounter `json:"encounter,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"` } diff --git a/internal/domain/main-entities/rehab/base/entity.go b/internal/domain/main-entities/rehab/base/entity.go new file mode 100644 index 00000000..b1713811 --- /dev/null +++ b/internal/domain/main-entities/rehab/base/entity.go @@ -0,0 +1,18 @@ +package base + +import ( + ecore "simrs-vx/internal/domain/base-entities/core" + ed "simrs-vx/internal/domain/main-entities/doctor" +) + +type Basic 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" gorm:"foreignKey:Doctor_Id;references:Id"` + AllocatedVisitCount *int `json:"allocatedVisitCount"` +} + +func (Basic) TableName() string { + return "Rehab" +} diff --git a/internal/domain/main-entities/rehab/entity.go b/internal/domain/main-entities/rehab/entity.go new file mode 100644 index 00000000..7293ba9f --- /dev/null +++ b/internal/domain/main-entities/rehab/entity.go @@ -0,0 +1,11 @@ +package rehab + +import ( + ee "simrs-vx/internal/domain/main-entities/encounter" + eb "simrs-vx/internal/domain/main-entities/rehab/base" +) + +type Rehab struct { + eb.Basic + Encounter *ee.Encounter `json:"encounter,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"` +} diff --git a/internal/domain/references/encounter/encounter.go b/internal/domain/references/encounter/encounter.go index eeccb8fe..fb133473 100644 --- a/internal/domain/references/encounter/encounter.go +++ b/internal/domain/references/encounter/encounter.go @@ -18,6 +18,7 @@ type ( RefTypeCode string AllPaymentMethodCode string SEPRefTypeCode string + VisitModeCode string ) const ( @@ -106,6 +107,9 @@ const ( SRTCInternal SEPRefTypeCode = "internal" // Rujukan Internal SRTCExternal SEPRefTypeCode = "external" // Faskes Lain + + VMCAdm VisitModeCode = "adm" + VMCSeries VisitModeCode = "series" ) func (ec EncounterClassCode) Code() string {