diff --git a/.gitignore b/.gitignore index 5f88f352..7800ac94 100644 --- a/.gitignore +++ b/.gitignore @@ -31,5 +31,5 @@ config.yml !**/atlas.hcl.example # Editor/IDE -# .idea/ +.idea/ .vscode/* diff --git a/cmd/main-migration/migrations/20251013044536.sql b/cmd/main-migration/migrations/20251013044536.sql new file mode 100644 index 00000000..84bdf0b0 --- /dev/null +++ b/cmd/main-migration/migrations/20251013044536.sql @@ -0,0 +1,14 @@ +-- Create "CheckoutPolies" table +CREATE TABLE "public"."CheckoutPolies" ( + "Id" bigserial NOT NULL, + "CreatedAt" timestamptz NULL, + "UpdatedAt" timestamptz NULL, + "DeletedAt" timestamptz NULL, + "Encounter_Id" bigint NULL, + "Unit_Id" integer NULL, + "Doctor_Id" bigint NULL, + PRIMARY KEY ("Id"), + CONSTRAINT "fk_CheckoutPolies_Doctor" FOREIGN KEY ("Doctor_Id") REFERENCES "public"."Doctor" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION, + CONSTRAINT "fk_CheckoutPolies_Encounter" FOREIGN KEY ("Encounter_Id") REFERENCES "public"."Encounter" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION, + CONSTRAINT "fk_CheckoutPolies_Unit" FOREIGN KEY ("Unit_Id") REFERENCES "public"."Unit" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION +); diff --git a/cmd/main-migration/migrations/20251013051438.sql b/cmd/main-migration/migrations/20251013051438.sql new file mode 100644 index 00000000..791f3384 --- /dev/null +++ b/cmd/main-migration/migrations/20251013051438.sql @@ -0,0 +1,2 @@ +-- Modify "Encounter" table +ALTER TABLE "public"."Encounter" ALTER COLUMN "DischargeMethod_Code" TYPE character varying(16); diff --git a/cmd/main-migration/migrations/atlas.sum b/cmd/main-migration/migrations/atlas.sum index a57cdcab..d8f19f7d 100644 --- a/cmd/main-migration/migrations/atlas.sum +++ b/cmd/main-migration/migrations/atlas.sum @@ -1,4 +1,4 @@ -h1:ZNIY96E0dkcsqT7l3071AqNKR/aee/WJFYKwNWcL+pw= +h1:0s0nd0srbuZbIdiQHvRt1PALWD+XDaCk7Qg/iAk4wY0= 20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k= 20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0= 20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI= @@ -36,4 +36,6 @@ h1:ZNIY96E0dkcsqT7l3071AqNKR/aee/WJFYKwNWcL+pw= 20251009052657.sql h1:EPvdsib5rzCGPryd10HShGKvFPwM/R5S2lIVwtYxpms= 20251010031743.sql h1:T8IZmx8/btRFKLzTe78MzcBsPJNodnLvB0tby9QkirQ= 20251010070721.sql h1:5NQUk/yOV6sABLCB7swx++YIOyJe6MnU+yt1nRzde5w= -20251010072711.sql h1:0xPdW7LNs9vb0g6H4rkNlF4yjjP4rIT6a5rZnDxWBxM= +20251010072711.sql h1:ZJNqR2piyu8xJhBvVABSlnGEoKSKae3wuEs+wshPe4k= +20251013044536.sql h1:0Xjw8fNILiT8nnfrJDZgQnPf3dntmIoilbapnih8AE4= +20251013051438.sql h1:aREcqpdUTiA2T9/f1HOtfa4BUiPRa50RATZ4ETu1syk= diff --git a/internal/domain/main-entities/checkout-polies/entity.go b/internal/domain/main-entities/checkout-polies/entity.go new file mode 100644 index 00000000..d329fc52 --- /dev/null +++ b/internal/domain/main-entities/checkout-polies/entity.go @@ -0,0 +1,18 @@ +package checkout_polies + +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" + eu "simrs-vx/internal/domain/main-entities/unit" +) + +type CheckoutPolies struct { + ecore.Main + Encounter_Id *uint `json:"encounter_id"` + Encounter *ee.Encounter `json:"encounter,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"` + Unit_Id *uint16 `json:"unit_id"` + Unit *eu.Unit `json:"unit,omitempty" gorm:"foreignKey:Unit_Id;references:Id"` + Doctor_Id *uint `json:"doctor_id"` + Doctor *ed.Doctor `json:"doctor,omitempty" gorm:"foreignKey:Doctor_Id;references:Id"` +} diff --git a/internal/domain/main-entities/encounter/entity.go b/internal/domain/main-entities/encounter/entity.go index 0a685611..87833b37 100644 --- a/internal/domain/main-entities/encounter/entity.go +++ b/internal/domain/main-entities/encounter/entity.go @@ -30,7 +30,7 @@ type Encounter struct { Appointment_Doctor *ed.Doctor `json:"appointment_doctor,omitempty" gorm:"foreignKey:Appointment_Doctor_Id;references:Id"` Responsible_Doctor_Id *uint `json:"responsible_doctor_id"` Responsible_Doctor *ed.Doctor `json:"responsible_doctor,omitempty" gorm:"foreignKey:Responsible_Doctor_Id;references:Id"` - DischargeMethod_Code *ere.DischargeMethodCode `json:"dischargeMethod_code" gorm:"size:10"` + DischargeMethod_Code *ere.DischargeMethodCode `json:"dischargeMethod_code" gorm:"size:16"` RefSource_Name *string `json:"refSource_name" gorm:"size:100"` Appointment_Id *uint `json:"appointment_id"` Appointment *ea.Appointment `json:"appointment,omitempty" gorm:"foreignKey:Appointment_Id;references:Id"` diff --git a/internal/domain/references/encounter/encounter.go b/internal/domain/references/encounter/encounter.go index 585a5035..7e6bcf8c 100644 --- a/internal/domain/references/encounter/encounter.go +++ b/internal/domain/references/encounter/encounter.go @@ -25,13 +25,18 @@ const ( QSCCancel QueueStatusCode = "cancel" // Dibatalkan QSCSkip QueueStatusCode = "skip" // Dilewati - DMCHome DischargeMethodCode = "home" // Rumah - DMCHomeReq DischargeMethodCode = "home-request" // Rumah (Dibutuhkan) - DMCConsulation DischargeMethodCode = "consulation" // Konsultasi Lanjutan - DMCInpatient DischargeMethodCode = "inpatient" // Inpatient - DMCExtRef DischargeMethodCode = "external-ref" // Rujuk Eksternal - DMCIntRef DischargeMethodCode = "internal-ref" // Rujuk Internal - DMCDeath DischargeMethodCode = "death" // Meninggal + DMCHome DischargeMethodCode = "home" // Pulang + DMCHomeReq DischargeMethodCode = "home-request" // Pulang Atas Permintaan Sendiri + DMCConsulBack DischargeMethodCode = "consul-back" // Konsultasi Balik / Lanjutan + DMCConsulPoly DischargeMethodCode = "consul-poly" // Konsultasi Poliklinik Lain + DMCConsulExecutive DischargeMethodCode = "consul-executive" // Konsultasi Antar Dokter Eksekutif + DMCConsulChDay DischargeMethodCode = "consul-ch-day" // Konsultasi Hari Lain + DMCEmergency DischargeMethodCode = "emergency" // Rujuk IGD + DMCEmergencyCovid DischargeMethodCode = "emergency-covid" // Rujuk IGD Covid + DMCInpatient DischargeMethodCode = "inpatient" // Rujuk Rawat Inap + DMCExtRef DischargeMethodCode = "external" // Rujuk Faskes Lain + DMCDeath DischargeMethodCode = "death" // Meninggal + DMCDeathOnArrival DischargeMethodCode = "death-on-arrival" // Meninggal Saat Tiba TCAmbulance TransportationCode = "ambulance" // Ambulans TCCar TransportationCode = "car" // Mobil diff --git a/internal/interface/migration/main-entities.go b/internal/interface/migration/main-entities.go index fc3161fa..b1875a8f 100644 --- a/internal/interface/migration/main-entities.go +++ b/internal/interface/migration/main-entities.go @@ -4,6 +4,7 @@ import ( adime "simrs-vx/internal/domain/main-entities/adime" ambulatory "simrs-vx/internal/domain/main-entities/ambulatory" appointment "simrs-vx/internal/domain/main-entities/appointment" + checkoutpolies "simrs-vx/internal/domain/main-entities/checkout-polies" chemo "simrs-vx/internal/domain/main-entities/chemo" consultation "simrs-vx/internal/domain/main-entities/consultation" counter "simrs-vx/internal/domain/main-entities/counter" @@ -151,5 +152,6 @@ func getMainEntities() []any { &chemo.Chemo{}, &midwife.Midwife{}, &postalregion.PostalRegion{}, + &checkoutpolies.CheckoutPolies{}, } }