From 0b0676214c097806009cab99bda8028fe584fcd5 Mon Sep 17 00:00:00 2001 From: vanilia Date: Fri, 21 Nov 2025 10:39:37 +0700 Subject: [PATCH 1/4] add vclaimreference --- .../migrations/20251121033803.sql | 14 +++++++ cmd/main-migration/migrations/atlas.sum | 5 ++- .../{vclaim-sep => vclaim-reference}/dto.go | 40 +++++++++---------- .../bpjs-entities/vclaim-reference/entity.go | 15 +++++++ .../domain/main-entities/encounter/entity.go | 11 +++-- internal/interface/migration/main-entities.go | 2 + 6 files changed, 61 insertions(+), 26 deletions(-) create mode 100644 cmd/main-migration/migrations/20251121033803.sql rename internal/domain/bpjs-entities/{vclaim-sep => vclaim-reference}/dto.go (51%) create mode 100644 internal/domain/bpjs-entities/vclaim-reference/entity.go diff --git a/cmd/main-migration/migrations/20251121033803.sql b/cmd/main-migration/migrations/20251121033803.sql new file mode 100644 index 00000000..48cb7f47 --- /dev/null +++ b/cmd/main-migration/migrations/20251121033803.sql @@ -0,0 +1,14 @@ +-- Create "VclaimReference" table +CREATE TABLE "public"."VclaimReference" ( + "Id" bigserial NOT NULL, + "CreatedAt" timestamptz NULL, + "UpdatedAt" timestamptz NULL, + "DeletedAt" timestamptz NULL, + "Encounter_Id" bigint NULL, + "Date" timestamptz NULL, + "SrcCode" text NULL, + "SrcName" text NULL, + "Number" text NULL, + PRIMARY KEY ("Id"), + CONSTRAINT "fk_Encounter_VclaimReference" FOREIGN KEY ("Encounter_Id") REFERENCES "public"."Encounter" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION +); diff --git a/cmd/main-migration/migrations/atlas.sum b/cmd/main-migration/migrations/atlas.sum index 0d9edc98..87b0571b 100644 --- a/cmd/main-migration/migrations/atlas.sum +++ b/cmd/main-migration/migrations/atlas.sum @@ -1,4 +1,4 @@ -h1:4U2KWXwY59v9g8NqCRfUlRU8S0gFHP+2zZo3VIYCy80= +h1:9o177sOy5hbZmLRLBxkW8WN1dveIe0pyAXoU84eeq0Y= 20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k= 20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0= 20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI= @@ -126,4 +126,5 @@ h1:4U2KWXwY59v9g8NqCRfUlRU8S0gFHP+2zZo3VIYCy80= 20251119072302.sql h1:qCuI2WMEMF/XNbjV+RXPjBnuCKLu1Fia+mR9HiLWBIs= 20251119072450.sql h1:Xg+bTwqGyKPNFEQhJylvpz1wifdfmDJvcAq6vmNf0Ng= 20251120005512.sql h1:Ek6qpacAI/qVuTYxKno+uJyzn7s5z9pf3t7VA8gTzm4= -20251120074415.sql h1:4gmYBcmga1SBxRwrVaovGVvpRZFMV7vYzce0/IalryY= +20251120074415.sql h1:NNUeJVA03EeBHJhHqPXEZoDv/PnC6yK1/cRhmukyaJo= +20251121033803.sql h1:1s3DvgbqF+lh/or9X6WGN2lwnYCZkP8JH6uJFHql15g= diff --git a/internal/domain/bpjs-entities/vclaim-sep/dto.go b/internal/domain/bpjs-entities/vclaim-reference/dto.go similarity index 51% rename from internal/domain/bpjs-entities/vclaim-sep/dto.go rename to internal/domain/bpjs-entities/vclaim-reference/dto.go index 8a174688..027359a3 100644 --- a/internal/domain/bpjs-entities/vclaim-sep/dto.go +++ b/internal/domain/bpjs-entities/vclaim-reference/dto.go @@ -1,16 +1,16 @@ -package vclaimsep +package vclaimreference import ( ecore "simrs-vx/internal/domain/base-entities/core" - evsh "simrs-vx/internal/domain/bpjs-entities/vclaim-sep-hist" + "time" ) type CreateDto struct { - Encounter_Id *uint `json:"encounter_id"` - Number *string `json:"number" validate:"maxLength=19"` - RequestPayload []byte `json:"requestPayload" validate:"maxLength=1024"` - - VclaimSepHist evsh.CreateDto + Encounter_Id *uint `json:"encounter_id"` + Date *time.Time `json:"date"` + SrcCode *string `json:"src_code"` + SrcName *string `json:"src_name"` + Number *string `json:"number"` } type ReadListDto struct { @@ -21,12 +21,11 @@ type ReadListDto struct { } type FilterDto struct { - Number *string `json:"number"` + Encounter_Id *uint `json:"encounter-id"` } type ReadDetailDto struct { - Id uint `json:"id"` - Number *string `json:"number"` + Id uint `json:"id"` } type UpdateDto struct { @@ -35,8 +34,7 @@ type UpdateDto struct { } type DeleteDto struct { - Id uint `json:"id"` - Number *string `json:"number"` + Id uint `json:"id"` } type MetaDto struct { @@ -47,27 +45,29 @@ type MetaDto struct { type ResponseDto struct { ecore.Main - Encounter_Id *uint `json:"encounter_id"` - Number *string `json:"number"` + Encounter_Id *uint `json:"encounter_id"` + Date *time.Time `json:"date"` + SrcCode *string `json:"src_code"` + SrcName *string `json:"src_name"` + Number *string `json:"number"` } -func (d VclaimSep) ToResponse() ResponseDto { +func (d VclaimReference) ToResponse() ResponseDto { resp := ResponseDto{ Encounter_Id: d.Encounter_Id, + Date: d.Date, + SrcCode: d.SrcCode, + SrcName: d.SrcName, Number: d.Number, } resp.Main = d.Main return resp } -func ToResponseList(data []VclaimSep) []ResponseDto { +func ToResponseList(data []VclaimReference) []ResponseDto { resp := make([]ResponseDto, len(data)) for i, u := range data { resp[i] = u.ToResponse() } return resp } - -func (c CreateDto) IsMessageSuccess() bool { - return c.VclaimSepHist.Message == "Sukses" -} diff --git a/internal/domain/bpjs-entities/vclaim-reference/entity.go b/internal/domain/bpjs-entities/vclaim-reference/entity.go new file mode 100644 index 00000000..a9a974d7 --- /dev/null +++ b/internal/domain/bpjs-entities/vclaim-reference/entity.go @@ -0,0 +1,15 @@ +package vclaimreference + +import ( + ecore "simrs-vx/internal/domain/base-entities/core" + "time" +) + +type VclaimReference struct { + ecore.Main + Encounter_Id *uint `json:"encounter_id"` + Date *time.Time `json:"date"` + SrcCode *string `json:"src_code"` + SrcName *string `json:"src_name"` + Number *string `json:"number"` +} diff --git a/internal/domain/main-entities/encounter/entity.go b/internal/domain/main-entities/encounter/entity.go index c188bb1a..61496f9e 100644 --- a/internal/domain/main-entities/encounter/entity.go +++ b/internal/domain/main-entities/encounter/entity.go @@ -1,7 +1,13 @@ package encounter import ( + "time" + + erc "simrs-vx/internal/domain/references/common" + ere "simrs-vx/internal/domain/references/encounter" + ecore "simrs-vx/internal/domain/base-entities/core" + evr "simrs-vx/internal/domain/bpjs-entities/vclaim-reference" evs "simrs-vx/internal/domain/bpjs-entities/vclaim-sep" eam "simrs-vx/internal/domain/main-entities/ambulatory" ea "simrs-vx/internal/domain/main-entities/appointment" @@ -19,10 +25,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" - "time" ) type Encounter struct { @@ -74,6 +76,7 @@ type Encounter struct { RehabChildren *[]er.Basic `json:"rehabChildren,omitempty" gorm:"foreignKey:Parent_Encounter_Id;references:Id"` EncounterDocuments *[]eed.EncounterDocument `json:"encounterDocuments,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"` GeneralConsents *[]egc.GeneralConsent `json:"generalConsents,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"` + VclaimReference *evr.VclaimReference `json:"vclaimReference,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"` } func (d Encounter) IsDone() bool { diff --git a/internal/interface/migration/main-entities.go b/internal/interface/migration/main-entities.go index d55a5e27..0b4a62fd 100644 --- a/internal/interface/migration/main-entities.go +++ b/internal/interface/migration/main-entities.go @@ -103,6 +103,7 @@ import ( ///BPJS vclaimmember "simrs-vx/internal/domain/bpjs-entities/vclaim-member" + vclaimreference "simrs-vx/internal/domain/bpjs-entities/vclaim-reference" vclaimsep "simrs-vx/internal/domain/bpjs-entities/vclaim-sep" vclaimsepcontrolletter "simrs-vx/internal/domain/bpjs-entities/vclaim-sep-control-letter" vclaimsephist "simrs-vx/internal/domain/bpjs-entities/vclaim-sep-hist" @@ -215,5 +216,6 @@ func getMainEntities() []any { &fileattachemnt.EncounterDocument{}, &vclaimsepcontrolletter.VclaimSepControlLetter{}, &resume.Resume{}, + &vclaimreference.VclaimReference{}, } } From a4032b5fbad908bbd15416e75c3f576f13957f37 Mon Sep 17 00:00:00 2001 From: vanilia Date: Fri, 21 Nov 2025 20:26:26 +0700 Subject: [PATCH 2/4] apply deleted sep dto --- .../domain/bpjs-entities/vclaim-sep/dto.go | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 internal/domain/bpjs-entities/vclaim-sep/dto.go diff --git a/internal/domain/bpjs-entities/vclaim-sep/dto.go b/internal/domain/bpjs-entities/vclaim-sep/dto.go new file mode 100644 index 00000000..8a174688 --- /dev/null +++ b/internal/domain/bpjs-entities/vclaim-sep/dto.go @@ -0,0 +1,73 @@ +package vclaimsep + +import ( + ecore "simrs-vx/internal/domain/base-entities/core" + evsh "simrs-vx/internal/domain/bpjs-entities/vclaim-sep-hist" +) + +type CreateDto struct { + Encounter_Id *uint `json:"encounter_id"` + Number *string `json:"number" validate:"maxLength=19"` + RequestPayload []byte `json:"requestPayload" validate:"maxLength=1024"` + + VclaimSepHist evsh.CreateDto +} + +type ReadListDto struct { + FilterDto + Includes string `json:"includes"` + Sort string `json:"sort"` + Pagination ecore.Pagination +} + +type FilterDto struct { + Number *string `json:"number"` +} + +type ReadDetailDto struct { + Id uint `json:"id"` + Number *string `json:"number"` +} + +type UpdateDto struct { + Id uint `json:"id"` + CreateDto +} + +type DeleteDto struct { + Id uint `json:"id"` + Number *string `json:"number"` +} + +type MetaDto struct { + PageNumber int `json:"page_number"` + PageSize int `json:"page_size"` + Count int `json:"count"` +} + +type ResponseDto struct { + ecore.Main + Encounter_Id *uint `json:"encounter_id"` + Number *string `json:"number"` +} + +func (d VclaimSep) ToResponse() ResponseDto { + resp := ResponseDto{ + Encounter_Id: d.Encounter_Id, + Number: d.Number, + } + resp.Main = d.Main + return resp +} + +func ToResponseList(data []VclaimSep) []ResponseDto { + resp := make([]ResponseDto, len(data)) + for i, u := range data { + resp[i] = u.ToResponse() + } + return resp +} + +func (c CreateDto) IsMessageSuccess() bool { + return c.VclaimSepHist.Message == "Sukses" +} From f4768490fb5c377df60464b8e1678a7ebec9a1b5 Mon Sep 17 00:00:00 2001 From: vanilia Date: Mon, 24 Nov 2025 10:36:57 +0700 Subject: [PATCH 3/4] add t_pemeriksaan_entity --- .../{installation => m_instalasi}/entity.go | 2 +- .../{patient => m_pasien}/entity.go | 2 +- .../{specialist => m_polihfis}/entity.go | 0 .../{unit => m_poly}/entity.go | 6 ++--- .../{division => m_unit}/entity.go | 2 +- .../t_pemeriksaan_hist/entity.go | 27 +++++++++++++++++++ .../{encounter => t_pendaftaran}/entity.go | 2 +- 7 files changed, 34 insertions(+), 7 deletions(-) rename internal/domain/simgos-entities/{installation => m_instalasi}/entity.go (95%) rename internal/domain/simgos-entities/{patient => m_pasien}/entity.go (99%) rename internal/domain/simgos-entities/{specialist => m_polihfis}/entity.go (100%) rename internal/domain/simgos-entities/{unit => m_poly}/entity.go (75%) rename internal/domain/simgos-entities/{division => m_unit}/entity.go (98%) create mode 100644 internal/domain/simgos-entities/t_pemeriksaan_hist/entity.go rename internal/domain/simgos-entities/{encounter => t_pendaftaran}/entity.go (99%) diff --git a/internal/domain/simgos-entities/installation/entity.go b/internal/domain/simgos-entities/m_instalasi/entity.go similarity index 95% rename from internal/domain/simgos-entities/installation/entity.go rename to internal/domain/simgos-entities/m_instalasi/entity.go index f2b291f5..bbeb3ed7 100644 --- a/internal/domain/simgos-entities/installation/entity.go +++ b/internal/domain/simgos-entities/m_instalasi/entity.go @@ -1,4 +1,4 @@ -package installation +package m_instalasi type MInstalasi struct { No_Instalasi uint `json:"no_instalasi" gorm:"primaryKey;autoIncrement;column:no_instalasi"` diff --git a/internal/domain/simgos-entities/patient/entity.go b/internal/domain/simgos-entities/m_pasien/entity.go similarity index 99% rename from internal/domain/simgos-entities/patient/entity.go rename to internal/domain/simgos-entities/m_pasien/entity.go index 20b7fee6..dce1abbf 100644 --- a/internal/domain/simgos-entities/patient/entity.go +++ b/internal/domain/simgos-entities/m_pasien/entity.go @@ -1,4 +1,4 @@ -package patient +package m_pasien import "time" diff --git a/internal/domain/simgos-entities/specialist/entity.go b/internal/domain/simgos-entities/m_polihfis/entity.go similarity index 100% rename from internal/domain/simgos-entities/specialist/entity.go rename to internal/domain/simgos-entities/m_polihfis/entity.go diff --git a/internal/domain/simgos-entities/unit/entity.go b/internal/domain/simgos-entities/m_poly/entity.go similarity index 75% rename from internal/domain/simgos-entities/unit/entity.go rename to internal/domain/simgos-entities/m_poly/entity.go index 20fa0000..52fe20eb 100644 --- a/internal/domain/simgos-entities/unit/entity.go +++ b/internal/domain/simgos-entities/m_poly/entity.go @@ -1,11 +1,11 @@ -package unit +package m_poly -type MPloy struct { +type MPoly struct { Kode uint `json:"kode" gorm:"primaryKey;autoIncrement;column:kode"` Nama string `json:"nama" gorm:"column:nama"` Jenispoly uint `json:"jenispoly" gorm:"column:jenispoly"` } -func (MPloy) TableName() string { +func (MPoly) TableName() string { return "m_poly" } diff --git a/internal/domain/simgos-entities/division/entity.go b/internal/domain/simgos-entities/m_unit/entity.go similarity index 98% rename from internal/domain/simgos-entities/division/entity.go rename to internal/domain/simgos-entities/m_unit/entity.go index 0cc38494..3d67d8fd 100644 --- a/internal/domain/simgos-entities/division/entity.go +++ b/internal/domain/simgos-entities/m_unit/entity.go @@ -1,4 +1,4 @@ -package division +package m_unit type MUnit struct { KodeUnit uint `json:"kode_unit" gorm:"primaryKey;autoIncrement;column:kode_unit"` diff --git a/internal/domain/simgos-entities/t_pemeriksaan_hist/entity.go b/internal/domain/simgos-entities/t_pemeriksaan_hist/entity.go new file mode 100644 index 00000000..cfb0dda6 --- /dev/null +++ b/internal/domain/simgos-entities/t_pemeriksaan_hist/entity.go @@ -0,0 +1,27 @@ +package t_pemeriksaan_hist + +import "time" + +type TPemeriksaanHist struct { + IdPemeriksaanHist uint `json:"id_pemeriksaanhist" gorm:"primaryKey;column:id_pemeriksaanhist"` + Idxdaftar *uint `json:"idxdaftar" gorm:"column:idxdaftar"` + Kdpoly *uint `json:"kdpoly" gorm:"column:kdpoly"` + DokterPengonsul *uint `json:"dokter_pengonsul" gorm:"column:dokter_pengonsul"` + DokterPenerima *uint `json:"dokter_penerima" gorm:"column:dokter_penerima"` + StartKonsul *time.Time `json:"start_konsul" gorm:"column:start_konsul"` + EndKonsul *time.Time `json:"end_konsul" gorm:"column:end_konsul"` + UserKonsul *string `json:"user_konsul" gorm:"column:user_konsul;size:100"` + TglEntriKonsul *time.Time `json:"tgl_entri_konsul" gorm:"column:tgl_entri_konsul"` + IP *string `json:"ip" gorm:"column:ip;size:50"` + UserPenerima *string `json:"user_penerima" gorm:"column:user_penerima;size:100"` + MasukPoly *time.Time `json:"masuk_poly" gorm:"column:masuk_poly"` + PerawatPenerima *uint `json:"perawat_penerima" gorm:"column:perawat_penerima"` + StAktif *uint16 `json:"st_aktif" gorm:"column:st_aktif"` + UserBatal *string `json:"user_batal" gorm:"column:user_batal;size:100"` + TglBatal *time.Time `json:"tgl_batal" gorm:"column:tgl_batal"` + IdxBillRajal *uint `json:"idxbillrajal" gorm:"column:idxbillrajal"` +} + +func (TPemeriksaanHist) TableName() string { + return "t_pemeriksaan_hist" +} diff --git a/internal/domain/simgos-entities/encounter/entity.go b/internal/domain/simgos-entities/t_pendaftaran/entity.go similarity index 99% rename from internal/domain/simgos-entities/encounter/entity.go rename to internal/domain/simgos-entities/t_pendaftaran/entity.go index 16ba873e..0a510311 100644 --- a/internal/domain/simgos-entities/encounter/entity.go +++ b/internal/domain/simgos-entities/t_pendaftaran/entity.go @@ -1,4 +1,4 @@ -package encounter +package t_pendaftaran import "time" From 6d51f9587574b1411c81d169ae89025ec2cf5863 Mon Sep 17 00:00:00 2001 From: vanilia Date: Mon, 24 Nov 2025 10:50:00 +0700 Subject: [PATCH 4/4] rename entity simgos --- .../domain/simgos-entities/{m_instalasi => m-instalasi}/entity.go | 0 internal/domain/simgos-entities/{m_pasien => m-pasien}/entity.go | 0 .../domain/simgos-entities/{m_polihfis => m-polihfis}/entity.go | 0 internal/domain/simgos-entities/{m_poly => m-poly}/entity.go | 0 internal/domain/simgos-entities/{m_unit => m-unit}/entity.go | 0 .../{t_pemeriksaan_hist => t-pemeriksaan-hist}/entity.go | 0 .../simgos-entities/{t_pendaftaran => t-pendaftaran}/entity.go | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename internal/domain/simgos-entities/{m_instalasi => m-instalasi}/entity.go (100%) rename internal/domain/simgos-entities/{m_pasien => m-pasien}/entity.go (100%) rename internal/domain/simgos-entities/{m_polihfis => m-polihfis}/entity.go (100%) rename internal/domain/simgos-entities/{m_poly => m-poly}/entity.go (100%) rename internal/domain/simgos-entities/{m_unit => m-unit}/entity.go (100%) rename internal/domain/simgos-entities/{t_pemeriksaan_hist => t-pemeriksaan-hist}/entity.go (100%) rename internal/domain/simgos-entities/{t_pendaftaran => t-pendaftaran}/entity.go (100%) diff --git a/internal/domain/simgos-entities/m_instalasi/entity.go b/internal/domain/simgos-entities/m-instalasi/entity.go similarity index 100% rename from internal/domain/simgos-entities/m_instalasi/entity.go rename to internal/domain/simgos-entities/m-instalasi/entity.go diff --git a/internal/domain/simgos-entities/m_pasien/entity.go b/internal/domain/simgos-entities/m-pasien/entity.go similarity index 100% rename from internal/domain/simgos-entities/m_pasien/entity.go rename to internal/domain/simgos-entities/m-pasien/entity.go diff --git a/internal/domain/simgos-entities/m_polihfis/entity.go b/internal/domain/simgos-entities/m-polihfis/entity.go similarity index 100% rename from internal/domain/simgos-entities/m_polihfis/entity.go rename to internal/domain/simgos-entities/m-polihfis/entity.go diff --git a/internal/domain/simgos-entities/m_poly/entity.go b/internal/domain/simgos-entities/m-poly/entity.go similarity index 100% rename from internal/domain/simgos-entities/m_poly/entity.go rename to internal/domain/simgos-entities/m-poly/entity.go diff --git a/internal/domain/simgos-entities/m_unit/entity.go b/internal/domain/simgos-entities/m-unit/entity.go similarity index 100% rename from internal/domain/simgos-entities/m_unit/entity.go rename to internal/domain/simgos-entities/m-unit/entity.go diff --git a/internal/domain/simgos-entities/t_pemeriksaan_hist/entity.go b/internal/domain/simgos-entities/t-pemeriksaan-hist/entity.go similarity index 100% rename from internal/domain/simgos-entities/t_pemeriksaan_hist/entity.go rename to internal/domain/simgos-entities/t-pemeriksaan-hist/entity.go diff --git a/internal/domain/simgos-entities/t_pendaftaran/entity.go b/internal/domain/simgos-entities/t-pendaftaran/entity.go similarity index 100% rename from internal/domain/simgos-entities/t_pendaftaran/entity.go rename to internal/domain/simgos-entities/t-pendaftaran/entity.go