From 75bce77a39f93f348a01aa4c66597a0ee7289ece Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Tue, 11 Nov 2025 15:02:41 +0700 Subject: [PATCH] add medicine code on medication related --- cmd/main-migration/migrations/20251111074148.sql | 2 ++ cmd/main-migration/migrations/20251111074652.sql | 10 ++++++++++ cmd/main-migration/migrations/atlas.sum | 4 +++- .../main-entities/medication-item-dist/entity.go | 1 + .../main-entities/medication-item/entity.go | 1 + .../domain/main-entities/medication/entity.go | 15 ++++++++------- .../main-entities/medicine-mix-item/entity.go | 1 + internal/domain/main-entities/medicine/entity.go | 6 ++---- .../main-entities/prescription-item/entity.go | 1 + 9 files changed, 29 insertions(+), 12 deletions(-) create mode 100644 cmd/main-migration/migrations/20251111074148.sql create mode 100644 cmd/main-migration/migrations/20251111074652.sql diff --git a/cmd/main-migration/migrations/20251111074148.sql b/cmd/main-migration/migrations/20251111074148.sql new file mode 100644 index 00000000..e93a1d57 --- /dev/null +++ b/cmd/main-migration/migrations/20251111074148.sql @@ -0,0 +1,2 @@ +-- Modify "Medicine" table +ALTER TABLE "public"."Medicine" DROP CONSTRAINT "fk_Medicine_Infra", DROP CONSTRAINT "fk_Medicine_Item", DROP COLUMN "Infra_Id", DROP COLUMN "Item_Id", ADD CONSTRAINT "fk_Medicine_Infra" FOREIGN KEY ("Infra_Code") REFERENCES "public"."Infra" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION, ADD CONSTRAINT "fk_Medicine_Item" FOREIGN KEY ("Item_Code") REFERENCES "public"."Item" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION; diff --git a/cmd/main-migration/migrations/20251111074652.sql b/cmd/main-migration/migrations/20251111074652.sql new file mode 100644 index 00000000..7ce19236 --- /dev/null +++ b/cmd/main-migration/migrations/20251111074652.sql @@ -0,0 +1,10 @@ +-- Modify "Medication" table +ALTER TABLE "public"."Medication" ADD COLUMN "Pharmacist_Code" text NULL; +-- Modify "MedicationItem" table +ALTER TABLE "public"."MedicationItem" ADD COLUMN "Medicine_Code" text NULL; +-- Modify "MedicationItemDist" table +ALTER TABLE "public"."MedicationItemDist" ADD COLUMN "Nurse_Code" text NULL; +-- Modify "MedicineMixItem" table +ALTER TABLE "public"."MedicineMixItem" ADD COLUMN "Medicine_Code" text NULL; +-- Modify "PrescriptionItem" table +ALTER TABLE "public"."PrescriptionItem" ADD COLUMN "Medicine_Code" text NULL; diff --git a/cmd/main-migration/migrations/atlas.sum b/cmd/main-migration/migrations/atlas.sum index 1e4fb9ef..cd5da8db 100644 --- a/cmd/main-migration/migrations/atlas.sum +++ b/cmd/main-migration/migrations/atlas.sum @@ -1,4 +1,4 @@ -h1:tc4xv8+poy7S/OAXRUIpl126iMf2PuZD9AcgnioQXYo= +h1:9JvrXnwzDDikw08c4mmDuHhj5OIPvvtmKjQ37ETmF1I= 20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k= 20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0= 20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI= @@ -110,3 +110,5 @@ h1:tc4xv8+poy7S/OAXRUIpl126iMf2PuZD9AcgnioQXYo= 20251110100545.sql h1:6/LV7751iyKxE2xI6vO1zly+aHUwxXD/IBwLcVpKxqM= 20251111072601.sql h1:lZlTXC8kHh4S+R5TKx23VQDU/Nj2YF+QrDk9Ta2rNM0= 20251111073546.sql h1:nTM5C+HLpBRPkFAsoSJU1RrnzZqoqnrHGvutInHSnCM= +20251111074148.sql h1:U2hX0ICVFut38Qh1s9664QdJFyNF+eutbqd1ryngSy0= +20251111074652.sql h1:KvTPlFQpwGTFLNls/UwA/JNG58ZNAIkiTq9WiO8ttOQ= diff --git a/internal/domain/main-entities/medication-item-dist/entity.go b/internal/domain/main-entities/medication-item-dist/entity.go index 99e16d48..64c732b7 100644 --- a/internal/domain/main-entities/medication-item-dist/entity.go +++ b/internal/domain/main-entities/medication-item-dist/entity.go @@ -15,5 +15,6 @@ type MedicationItemDist struct { DateTime *time.Time `json:"dateTime"` Remain float64 `json:"remain"` Nurse_Id *uint `json:"nurse_id"` + Nurse_Code *string `json:"nurse_code"` Nurse *en.Nurse `json:"nurse,omitempty" gorm:"foreignKey:Nurse_Id;references:Id"` } diff --git a/internal/domain/main-entities/medication-item/entity.go b/internal/domain/main-entities/medication-item/entity.go index ffef0761..88c53ff8 100644 --- a/internal/domain/main-entities/medication-item/entity.go +++ b/internal/domain/main-entities/medication-item/entity.go @@ -15,6 +15,7 @@ type MedicationItem struct { Medication *eme.Medication `json:"medication,omitempty" gorm:"foreignKey:Medication_Id;references:Id"` IsMix bool `json:"isMix"` Medicine_Id *uint `json:"medicine_id"` + Medicine_Code *string `json:"medicine_code"` Medicine *em.Medicine `json:"medicine,omitempty" gorm:"foreignKey:Medicine_Id;references:Id"` MedicineMix_Id *uint `json:"medicineMix_id"` MedicineMix *emm.MedicineMix `json:"medicineMix,omitempty" gorm:"foreignKey:MedicineMix_Id;references:Id"` diff --git a/internal/domain/main-entities/medication/entity.go b/internal/domain/main-entities/medication/entity.go index 0a59c27b..63ceb792 100644 --- a/internal/domain/main-entities/medication/entity.go +++ b/internal/domain/main-entities/medication/entity.go @@ -11,13 +11,14 @@ import ( ) type Medication 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"` - IssuedAt *time.Time `json:"issuedAt"` - Pharmacist_Id *uint `json:"pharmacist_id"` - Pharmacist *ep.Pharmacist `json:"pharmacist,omitempty" gorm:"foreignKey:Pharmacist_Id;references:Id"` - Status_Code erc.DataStatusCode `json:"status_code"` + 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"` + IssuedAt *time.Time `json:"issuedAt"` + Pharmacist_Id *uint `json:"pharmacist_id"` + Pharmacist_Code *string `json:"pharmacist_code"` + Pharmacist *ep.Pharmacist `json:"pharmacist,omitempty" gorm:"foreignKey:Pharmacist_Id;references:Id"` + Status_Code erc.DataStatusCode `json:"status_code"` } func (d Medication) IsCompleted() bool { diff --git a/internal/domain/main-entities/medicine-mix-item/entity.go b/internal/domain/main-entities/medicine-mix-item/entity.go index a642fce0..f0b760f6 100644 --- a/internal/domain/main-entities/medicine-mix-item/entity.go +++ b/internal/domain/main-entities/medicine-mix-item/entity.go @@ -9,6 +9,7 @@ type MedicineMixItem struct { ecore.Main // adjust this according to the needs MedicineMix_Id *uint `json:"medicineMix_id"` Medicine_Id *uint `json:"medicine_id"` + Medicine_Code *string `json:"medicine_code"` Medicine *em.Medicine `json:"medicine,omitempty" gorm:"foreignKey:Medicine_Id;references:Id"` Dose *uint8 `json:"dose"` Note *string `json:"note" gom:"size:1024"` diff --git a/internal/domain/main-entities/medicine/entity.go b/internal/domain/main-entities/medicine/entity.go index bbcfec78..dda220bc 100644 --- a/internal/domain/main-entities/medicine/entity.go +++ b/internal/domain/main-entities/medicine/entity.go @@ -20,11 +20,9 @@ type Medicine struct { Uom_Code *string `json:"uom_code" gorm:"size:10"` Uom *eu.Uom `json:"uom" gorm:"foreignKey:Uom_Code;references:Code"` Dose uint8 `json:"dose"` - Infra_Id *uint16 `json:"infra_id"` Infra_Code *string `json:"infra_code" gorm:"size:10"` - Infra *ein.Infra `json:"infra,omitempty" gorm:"foreignKey:Infra_Id;references:Id"` + Infra *ein.Infra `json:"infra,omitempty" gorm:"foreignKey:Infra_Code;references:Code"` Stock *int `json:"stock"` - Item_Id *uint `json:"item_id"` Item_Code *string `json:"item_code" gorm:"size:50"` - Item *eit.Item `json:"item,omitempty" gorm:"foreignKey:Item_Id;references:Id"` + Item *eit.Item `json:"item,omitempty" gorm:"foreignKey:Item_Code;references:Code"` } diff --git a/internal/domain/main-entities/prescription-item/entity.go b/internal/domain/main-entities/prescription-item/entity.go index 33696385..345ad07f 100644 --- a/internal/domain/main-entities/prescription-item/entity.go +++ b/internal/domain/main-entities/prescription-item/entity.go @@ -15,6 +15,7 @@ type PrescriptionItem struct { Prescription *ep.Prescription `json:"prescription,omitempty" gorm:"foreignKey:Prescription_Id;references:Id"` IsMix bool `json:"isMix"` Medicine_Id *uint `json:"medicine_id"` + Medicine_Code *string `json:"medicine_code"` Medicine *em.Medicine `json:"medicine,omitempty" gorm:"foreignKey:Medicine_Id;references:Id"` MedicineMix_Id *uint `json:"medicineMix_id"` MedicineMix *emm.MedicineMix `json:"medicineMix,omitempty" gorm:"foreignKey:MedicineMix_Id;references:Id"`