feat/order-things: entity separation finalization

This commit is contained in:
2025-12-08 05:13:04 +07:00
parent 24d216ec56
commit 1036cab53c
20 changed files with 239 additions and 41 deletions
@@ -0,0 +1,99 @@
-- Modify "ApMcuOrder" table
ALTER TABLE "public"."ApMcuOrder" DROP COLUMN "McuOrder_Id", ADD COLUMN "Encounter_Id" bigint NULL, ADD COLUMN "Number" bigint NULL, ADD COLUMN "Doctor_Code" character varying(20) NULL, ADD CONSTRAINT "uni_ApMcuOrder_Doctor_Code" UNIQUE ("Doctor_Code"), ADD CONSTRAINT "fk_ApMcuOrder_Doctor" FOREIGN KEY ("Doctor_Code") REFERENCES "public"."Doctor" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION, ADD CONSTRAINT "fk_ApMcuOrder_Encounter" FOREIGN KEY ("Encounter_Id") REFERENCES "public"."Encounter" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION;
-- Create "CpMcuOrder" table
CREATE TABLE "public"."CpMcuOrder" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Encounter_Id" bigint NULL,
"Number" bigint NULL,
"Doctor_Code" character varying(20) NULL,
"UrgencyLevel_Code" character varying(15) NOT NULL,
"OtherNotes" text NULL,
"ExamScheduleDate" timestamptz NULL,
"Resume" text NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "uni_CpMcuOrder_Doctor_Code" UNIQUE ("Doctor_Code"),
CONSTRAINT "fk_CpMcuOrder_Doctor" FOREIGN KEY ("Doctor_Code") REFERENCES "public"."Doctor" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "fk_CpMcuOrder_Encounter" FOREIGN KEY ("Encounter_Id") REFERENCES "public"."Encounter" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION
);
-- Create "CpMcuOrderItem" table
CREATE TABLE "public"."CpMcuOrderItem" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"CpMcuOrder_Id" bigint NULL,
"McuSrc_Code" character varying(20) NULL,
"Note" character varying(1024) NULL,
"Result" text NULL,
"Status_Code" text NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "fk_CpMcuOrderItem_CpMcuOrder" FOREIGN KEY ("CpMcuOrder_Id") REFERENCES "public"."CpMcuOrder" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "fk_CpMcuOrderItem_McuSrc" FOREIGN KEY ("McuSrc_Code") REFERENCES "public"."McuSrc" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION
);
-- Create "MicroMcuOrder" table
CREATE TABLE "public"."MicroMcuOrder" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Encounter_Id" bigint NULL,
"Number" bigint NULL,
"Doctor_Code" character varying(20) NULL,
"Stage_Code" character varying(10) NOT NULL,
"AxillaryTemp" numeric NULL,
"OtherNotes" text NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "uni_MicroMcuOrder_Doctor_Code" UNIQUE ("Doctor_Code"),
CONSTRAINT "fk_MicroMcuOrder_Doctor" FOREIGN KEY ("Doctor_Code") REFERENCES "public"."Doctor" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "fk_MicroMcuOrder_Encounter" FOREIGN KEY ("Encounter_Id") REFERENCES "public"."Encounter" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION
);
-- Create "MicroMcuOrderItem" table
CREATE TABLE "public"."MicroMcuOrderItem" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"MicroMcuOrder_Id" bigint NULL,
"McuSrc_Code" character varying(20) NULL,
"Note" character varying(1024) NULL,
"Result" text NULL,
"Status_Code" text NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "fk_MicroMcuOrderItem_McuSrc" FOREIGN KEY ("McuSrc_Code") REFERENCES "public"."McuSrc" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "fk_MicroMcuOrderItem_MicroMcuOrder" FOREIGN KEY ("MicroMcuOrder_Id") REFERENCES "public"."MicroMcuOrder" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION
);
-- Create "RadiologyMcuOrder" table
CREATE TABLE "public"."RadiologyMcuOrder" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Encounter_Id" bigint NULL,
"Number" bigint NULL,
"Doctor_Code" character varying(20) NULL,
"ClinicalNotes" text NULL,
"OtherNotes" text NULL,
"Resume" text NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "uni_RadiologyMcuOrder_Doctor_Code" UNIQUE ("Doctor_Code"),
CONSTRAINT "fk_RadiologyMcuOrder_Doctor" FOREIGN KEY ("Doctor_Code") REFERENCES "public"."Doctor" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "fk_RadiologyMcuOrder_Encounter" FOREIGN KEY ("Encounter_Id") REFERENCES "public"."Encounter" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION
);
-- Create "RadiologyMcuOrderItem" table
CREATE TABLE "public"."RadiologyMcuOrderItem" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"RadiologyMcuOrder_Id" bigint NULL,
"McuSrc_Code" character varying(20) NULL,
"Note" character varying(1024) NULL,
"Result" text NULL,
"Status_Code" text NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "fk_RadiologyMcuOrderItem_McuSrc" FOREIGN KEY ("McuSrc_Code") REFERENCES "public"."McuSrc" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "fk_RadiologyMcuOrderItem_RadiologyMcuOrder" FOREIGN KEY ("RadiologyMcuOrder_Id") REFERENCES "public"."RadiologyMcuOrder" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION
);
@@ -0,0 +1,8 @@
-- Modify "ApMcuOrder" table
ALTER TABLE "public"."ApMcuOrder" ADD COLUMN "Status_Code" character varying(10) NOT NULL;
-- Modify "CpMcuOrder" table
ALTER TABLE "public"."CpMcuOrder" ADD COLUMN "Status_Code" character varying(10) NOT NULL;
-- Modify "MicroMcuOrder" table
ALTER TABLE "public"."MicroMcuOrder" ADD COLUMN "Status_Code" character varying(10) NOT NULL;
-- Modify "RadiologyMcuOrder" table
ALTER TABLE "public"."RadiologyMcuOrder" ADD COLUMN "Status_Code" character varying(10) NOT NULL;
+4 -2
View File
@@ -1,4 +1,4 @@
h1:1BOh7w/6hkhDj1PptjXT4tLOgmRtIIofGm3ERJ+EfyM= h1:o4jOACV/QY64oiqrbnZvGei0J65px0JBwAXakl8h+Oc=
20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k= 20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k=
20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0= 20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0=
20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI= 20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI=
@@ -145,4 +145,6 @@ h1:1BOh7w/6hkhDj1PptjXT4tLOgmRtIIofGm3ERJ+EfyM=
20251202180207.sql h1:IHmSMIO3ia+YV5GULixbdlV1joaUAWtnjQHPd8+HKiM= 20251202180207.sql h1:IHmSMIO3ia+YV5GULixbdlV1joaUAWtnjQHPd8+HKiM=
20251202231005.sql h1:lua0KKoeBptSfs/6ehZE6Azo6YUlNkOJwGFyb1HQWkY= 20251202231005.sql h1:lua0KKoeBptSfs/6ehZE6Azo6YUlNkOJwGFyb1HQWkY=
20251203205052.sql h1:nk0VK2Uv4bHE3SBfHo/aevVZxtHzr7zAzvmMU8TCCtk= 20251203205052.sql h1:nk0VK2Uv4bHE3SBfHo/aevVZxtHzr7zAzvmMU8TCCtk=
20251207020537.sql h1:UmtHxX1vZi/BiKxHPOOP7fALRZ3RoRGSGmUma7ttp8w= 20251207020537.sql h1:uqqIQaBoZGoOXVQKkalNXwF2awcA+rhjNVevWEzIIok=
20251207212015.sql h1:muRdWqRKfJQFMfezj2B4n0E6bbjIz1GrzHEyhoxy2mk=
20251207221222.sql h1:+mU/25n3hQLRU6MK8B+Uwzl9YBRezX3xWDtIKnweN78=
@@ -2,22 +2,24 @@ package apmcuorder
import ( import (
ecore "simrs-vx/internal/domain/base-entities/core" ecore "simrs-vx/internal/domain/base-entities/core"
erc "simrs-vx/internal/domain/references/common"
) )
type ApMcuOrder struct { type ApMcuOrder struct {
ecore.BigMain ecore.BigMain
Encounter_Id uint `json:"encounter_id"` Encounter_Id uint `json:"encounter_id"`
Number uint64 `json:"number"` Number uint64 `json:"number"`
Doctor_Code string `json:"doctor_code" gorm:"unique;size:20"` Doctor_Code string `json:"doctor_code" gorm:"unique;size:20"`
Substances string `json:"substances"` Substances string `json:"substances"`
Fictations string `json:"fictations"` Fictations string `json:"fictations"`
Localization string `json:"localization"` Localization string `json:"localization"`
ClinicalDiagnoses string `json:"clinicalDiagnoses"` ClinicalDiagnoses string `json:"clinicalDiagnoses"`
Stadium string `json:"stadium"` Stadium string `json:"stadium"`
ClinicalNotes *string `json:"clinicalNotes"` ClinicalNotes *string `json:"clinicalNotes"`
CurrentHistory string `json:"currentHistory"` CurrentHistory string `json:"currentHistory"`
PastHistory string `json:"pastHistory"` PastHistory string `json:"pastHistory"`
PrevApMcu *string `json:"prevApMcu"` PrevApMcu *string `json:"prevApMcu"`
PrevApMcuNotes *string `json:"prevApMcuNotes"` PrevApMcuNotes *string `json:"prevApMcuNotes"`
SupportingExams *string `json:"supportingExams"` SupportingExams *string `json:"supportingExams"`
Status_Code erc.DataStatusCode `json:"status_code" gorm:"not null;size:10"`
} }
@@ -1,6 +1,8 @@
package apmcuorder package apmcuorder
import ( import (
la "simrs-vx/internal/lib/auth"
ecore "simrs-vx/internal/domain/base-entities/core" ecore "simrs-vx/internal/domain/base-entities/core"
eamob "simrs-vx/internal/domain/main-entities/ap-mcu-order/base" eamob "simrs-vx/internal/domain/main-entities/ap-mcu-order/base"
ed "simrs-vx/internal/domain/main-entities/doctor" ed "simrs-vx/internal/domain/main-entities/doctor"
@@ -9,6 +11,7 @@ import (
type CreateDto struct { type CreateDto struct {
eamob.CreateDto eamob.CreateDto
la.AuthInfo
} }
type ReadListDto struct { type ReadListDto struct {
@@ -4,6 +4,7 @@ import (
eamob "simrs-vx/internal/domain/main-entities/ap-mcu-order/base" eamob "simrs-vx/internal/domain/main-entities/ap-mcu-order/base"
ed "simrs-vx/internal/domain/main-entities/doctor" ed "simrs-vx/internal/domain/main-entities/doctor"
ee "simrs-vx/internal/domain/main-entities/encounter" ee "simrs-vx/internal/domain/main-entities/encounter"
erc "simrs-vx/internal/domain/references/common"
) )
type ApMcuOrder struct { type ApMcuOrder struct {
@@ -11,3 +12,15 @@ type ApMcuOrder struct {
Encounter *ee.Encounter `json:"encounter,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"` Encounter *ee.Encounter `json:"encounter,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"`
Doctor *ed.Doctor `json:"doctor,omitempty" gorm:"foreignKey:Doctor_Code;references:Code"` Doctor *ed.Doctor `json:"doctor,omitempty" gorm:"foreignKey:Doctor_Code;references:Code"`
} }
func (d ApMcuOrder) IsNotNew() bool {
return d.Status_Code != erc.DSCNew
}
func (d ApMcuOrder) IsCompleted() bool {
return d.Status_Code == erc.DSCDone
}
func (d ApMcuOrder) IsSameDoctor(doctor_code *string) bool {
return d.Doctor_Code == *doctor_code
}
@@ -2,7 +2,7 @@ package cpmcuorderitem
import ( import (
ecore "simrs-vx/internal/domain/base-entities/core" ecore "simrs-vx/internal/domain/base-entities/core"
ems "simrs-vx/internal/domain/main-entities/mcu-src"
erc "simrs-vx/internal/domain/references/common" erc "simrs-vx/internal/domain/references/common"
) )
@@ -10,6 +10,7 @@ type CpMcuOrderItem struct {
ecore.BigMain // adjust this according to the needs ecore.BigMain // adjust this according to the needs
CpMcuOrder_Id uint64 `json:"cpMcuOrder_id" gorm:"uniqueIndex:idx_order_src"` CpMcuOrder_Id uint64 `json:"cpMcuOrder_id" gorm:"uniqueIndex:idx_order_src"`
McuSrc_Code string `json:"mcuSrc_code" gorm:"uniqueIndex:idx_order_src"` McuSrc_Code string `json:"mcuSrc_code" gorm:"uniqueIndex:idx_order_src"`
McuSrc *ems.McuSrc `json:"mcuSrc,omitempty" gorm:"foreignKey:McuSrc_Code;references:Code"`
Note *string `json:"note" gorm:"size:1024"` Note *string `json:"note" gorm:"size:1024"`
Result *string `json:"result"` Result *string `json:"result"`
Status_Code erc.DataStatusCode `json:"status_code"` Status_Code erc.DataStatusCode `json:"status_code"`
@@ -4,16 +4,12 @@ import (
emo "simrs-vx/internal/domain/main-entities/cp-mcu-order" emo "simrs-vx/internal/domain/main-entities/cp-mcu-order"
emoib "simrs-vx/internal/domain/main-entities/cp-mcu-order-item/base" emoib "simrs-vx/internal/domain/main-entities/cp-mcu-order-item/base"
emosi "simrs-vx/internal/domain/main-entities/mcu-order-sub-item/base"
ems "simrs-vx/internal/domain/main-entities/mcu-src"
erc "simrs-vx/internal/domain/references/common" erc "simrs-vx/internal/domain/references/common"
) )
type CpMcuOrderItem struct { type CpMcuOrderItem struct {
emoib.CpMcuOrderItem emoib.CpMcuOrderItem
CpMcuOrder *emo.CpMcuOrder `json:"cpMcuOrder,omitempty" gorm:"foreignKey:McuOrder_Id;references:Id"` CpMcuOrder *emo.CpMcuOrder `json:"cpMcuOrder,omitempty" gorm:"foreignKey:CpMcuOrder_Id;references:Id"`
McuSrc *ems.McuSrc `json:"mcuSrc,omitempty" gorm:"foreignKey:McuSrc_Code;references:Code"`
Items []*emosi.McuOrderSubItem `json:"items" gorm:"foreignKey:McuOrderItem_Id;references:Id"`
} }
func (d CpMcuOrderItem) IsCompleted() bool { func (d CpMcuOrderItem) IsCompleted() bool {
@@ -5,6 +5,7 @@ import (
ecore "simrs-vx/internal/domain/base-entities/core" ecore "simrs-vx/internal/domain/base-entities/core"
ercl "simrs-vx/internal/domain/references/clinical" ercl "simrs-vx/internal/domain/references/clinical"
erc "simrs-vx/internal/domain/references/common"
) )
type CpMcuOrder struct { type CpMcuOrder struct {
@@ -16,4 +17,5 @@ type CpMcuOrder struct {
OtherNotes *string `json:"otherNotes"` OtherNotes *string `json:"otherNotes"`
ExamScheduleDate *time.Time `json:"examinationDate"` ExamScheduleDate *time.Time `json:"examinationDate"`
Resume *string `json:"resume"` Resume *string `json:"resume"`
Status_Code erc.DataStatusCode `json:"status_code" gorm:"not null;size:10"`
} }
@@ -1,6 +1,8 @@
package cpmcuorder package cpmcuorder
import ( import (
la "simrs-vx/internal/lib/auth"
ecore "simrs-vx/internal/domain/base-entities/core" ecore "simrs-vx/internal/domain/base-entities/core"
ed "simrs-vx/internal/domain/main-entities/doctor" ed "simrs-vx/internal/domain/main-entities/doctor"
ee "simrs-vx/internal/domain/main-entities/encounter" ee "simrs-vx/internal/domain/main-entities/encounter"
@@ -11,6 +13,7 @@ type CreateDto struct {
Number uint64 `json:"number"` // SHOULD BE AUTOMATIC WITHOUT SYNC Number uint64 `json:"number"` // SHOULD BE AUTOMATIC WITHOUT SYNC
UrgencyLevel_Code string `json:"urgencyLevel_code" validate:"required"` UrgencyLevel_Code string `json:"urgencyLevel_code" validate:"required"`
OtherNotes string `json:"otherNotes"` OtherNotes string `json:"otherNotes"`
la.AuthInfo
} }
type ReadListDto struct { type ReadListDto struct {
@@ -26,7 +29,8 @@ type FilterDto struct {
} }
type ReadDetailDto struct { type ReadDetailDto struct {
Id uint64 `json:"id"` Id uint64 `json:"id"`
Includes string `json:"includes"`
} }
type UpdateDto struct { type UpdateDto struct {
@@ -1,13 +1,28 @@
package cpmcuorder package cpmcuorder
import ( import (
ecmoi "simrs-vx/internal/domain/main-entities/cp-mcu-order-item/base"
eamob "simrs-vx/internal/domain/main-entities/cp-mcu-order/base" eamob "simrs-vx/internal/domain/main-entities/cp-mcu-order/base"
ed "simrs-vx/internal/domain/main-entities/doctor" ed "simrs-vx/internal/domain/main-entities/doctor"
ee "simrs-vx/internal/domain/main-entities/encounter" ee "simrs-vx/internal/domain/main-entities/encounter"
erc "simrs-vx/internal/domain/references/common"
) )
type CpMcuOrder struct { type CpMcuOrder struct {
eamob.CpMcuOrder eamob.CpMcuOrder
Encounter *ee.Encounter `json:"encounter,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"` Encounter *ee.Encounter `json:"encounter,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"`
Doctor *ed.Doctor `json:"doctor,omitempty" gorm:"foreignKey:Doctor_Code;references:Code"` Doctor *ed.Doctor `json:"doctor,omitempty" gorm:"foreignKey:Doctor_Code;references:Code"`
Items []*ecmoi.CpMcuOrderItem `json:"items" gorm:"foreignKey:CpMcuOrder_Id;references:Id"`
}
func (d CpMcuOrder) IsNotNew() bool {
return d.Status_Code != erc.DSCNew
}
func (d CpMcuOrder) IsCompleted() bool {
return d.Status_Code == erc.DSCDone
}
func (d CpMcuOrder) IsSameDoctor(doctor_code *string) bool {
return d.Doctor_Code == *doctor_code
} }
@@ -1,15 +1,16 @@
package micromcuorderitem package micromcuorderitem
import ( import (
ems "simrs-vx/internal/domain/main-entities/mcu-src"
emo "simrs-vx/internal/domain/main-entities/micro-mcu-order" emo "simrs-vx/internal/domain/main-entities/micro-mcu-order"
emoib "simrs-vx/internal/domain/main-entities/micro-mcu-order-item/base" emoib "simrs-vx/internal/domain/main-entities/micro-mcu-order-item/base"
erc "simrs-vx/internal/domain/references/common" erc "simrs-vx/internal/domain/references/common"
) )
type MicroMcuOrderItem struct { type MicroMcuOrderItem struct {
emoib.MicroMcuOrderItem emoib.MicroMcuOrderItem
MicroMcuOrder *emo.MicroMcuOrder `json:"microMcuOrder,omitempty" gorm:"foreignKey:McuOrder_Id;references:Id"` MicroMcuOrder *emo.MicroMcuOrder `json:"microMcuOrder,omitempty" gorm:"foreignKey:MicroMcuOrder_Id;references:Id"`
McuSrc *ems.McuSrc `json:"mcuSrc,omitempty" gorm:"foreignKey:McuSrc_Code;references:Code"`
} }
func (d MicroMcuOrderItem) IsCompleted() bool { func (d MicroMcuOrderItem) IsCompleted() bool {
@@ -3,6 +3,7 @@ package micromcuorder
import ( import (
ecore "simrs-vx/internal/domain/base-entities/core" ecore "simrs-vx/internal/domain/base-entities/core"
ercl "simrs-vx/internal/domain/references/clinical" ercl "simrs-vx/internal/domain/references/clinical"
erc "simrs-vx/internal/domain/references/common"
) )
type MicroMcuOrder struct { type MicroMcuOrder struct {
@@ -13,4 +14,5 @@ type MicroMcuOrder struct {
Stage_Code ercl.McuOrderStageCode `json:"stage_code" gorm:"not null;size:10"` Stage_Code ercl.McuOrderStageCode `json:"stage_code" gorm:"not null;size:10"`
AxillaryTemp float64 `json:"axillaryTemp"` AxillaryTemp float64 `json:"axillaryTemp"`
OtherNotes *string `json:"otherNotes"` OtherNotes *string `json:"otherNotes"`
Status_Code erc.DataStatusCode `json:"status_code" gorm:"not null;size:10"`
} }
@@ -1,6 +1,8 @@
package micromcuorder package micromcuorder
import ( import (
la "simrs-vx/internal/lib/auth"
ecore "simrs-vx/internal/domain/base-entities/core" ecore "simrs-vx/internal/domain/base-entities/core"
ed "simrs-vx/internal/domain/main-entities/doctor" ed "simrs-vx/internal/domain/main-entities/doctor"
ee "simrs-vx/internal/domain/main-entities/encounter" ee "simrs-vx/internal/domain/main-entities/encounter"
@@ -13,6 +15,7 @@ type CreateDto struct {
OrderStage_Code string `json:"orderStage_code" gorm:"not null;size:10"` OrderStage_Code string `json:"orderStage_code" gorm:"not null;size:10"`
AxillaryTemp float64 `json:"axillaryTemp"` AxillaryTemp float64 `json:"axillaryTemp"`
OtherNotes string `json:"otherNotes"` OtherNotes string `json:"otherNotes"`
la.AuthInfo
} }
type ReadListDto struct { type ReadListDto struct {
@@ -28,7 +31,8 @@ type FilterDto struct {
} }
type ReadDetailDto struct { type ReadDetailDto struct {
Id uint64 `json:"id"` Id uint64 `json:"id"`
Includes string `json:"includes"`
} }
type UpdateDto struct { type UpdateDto struct {
@@ -3,11 +3,26 @@ package micromcuorder
import ( import (
ed "simrs-vx/internal/domain/main-entities/doctor" ed "simrs-vx/internal/domain/main-entities/doctor"
ee "simrs-vx/internal/domain/main-entities/encounter" ee "simrs-vx/internal/domain/main-entities/encounter"
emmoi "simrs-vx/internal/domain/main-entities/micro-mcu-order-item/base"
eamob "simrs-vx/internal/domain/main-entities/micro-mcu-order/base" eamob "simrs-vx/internal/domain/main-entities/micro-mcu-order/base"
erc "simrs-vx/internal/domain/references/common"
) )
type MicroMcuOrder struct { type MicroMcuOrder struct {
eamob.MicroMcuOrder eamob.MicroMcuOrder
Encounter *ee.Encounter `json:"encounter,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"` Encounter *ee.Encounter `json:"encounter,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"`
Doctor *ed.Doctor `json:"doctor,omitempty" gorm:"foreignKey:Doctor_Code;references:Code"` Doctor *ed.Doctor `json:"doctor,omitempty" gorm:"foreignKey:Doctor_Code;references:Code"`
Items []*emmoi.MicroMcuOrderItem `json:"items" gorm:"foreignKey:MicroMcuOrder_Id;references:Id"`
}
func (d MicroMcuOrder) IsNotNew() bool {
return d.Status_Code != erc.DSCNew
}
func (d MicroMcuOrder) IsCompleted() bool {
return d.Status_Code == erc.DSCDone
}
func (d MicroMcuOrder) IsSameDoctor(doctor_code *string) bool {
return d.Doctor_Code == *doctor_code
} }
@@ -9,7 +9,7 @@ import (
type RadiologyMcuOrderItem struct { type RadiologyMcuOrderItem struct {
emoib.RadiologyMcuOrderItem emoib.RadiologyMcuOrderItem
RadiologyMcuOrder *emo.RadiologyMcuOrder `json:"radiologyMcuOrder,omitempty" gorm:"foreignKey:McuOrder_Id;references:Id"` RadiologyMcuOrder *emo.RadiologyMcuOrder `json:"radiologyMcuOrder,omitempty" gorm:"foreignKey:RadiologyMcuOrder_Id;references:Id"`
} }
func (d RadiologyMcuOrderItem) IsCompleted() bool { func (d RadiologyMcuOrderItem) IsCompleted() bool {
@@ -2,14 +2,16 @@ package radiologymcuorder
import ( import (
ecore "simrs-vx/internal/domain/base-entities/core" ecore "simrs-vx/internal/domain/base-entities/core"
erc "simrs-vx/internal/domain/references/common"
) )
type RadiologyMcuOrder struct { type RadiologyMcuOrder struct {
ecore.BigMain ecore.BigMain
Encounter_Id uint `json:"encounter_id"` Encounter_Id uint `json:"encounter_id"`
Number uint64 `json:"number"` Number uint64 `json:"number"`
Doctor_Code string `json:"doctor_code" gorm:"unique;size:20"` Doctor_Code string `json:"doctor_code" gorm:"unique;size:20"`
ClinicalNotes *string `json:"clinicalNotes"` ClinicalNotes *string `json:"clinicalNotes"`
OtherNotes *string `json:"otherNotes"` OtherNotes *string `json:"otherNotes"`
Resume *string `json:"resume"` Resume *string `json:"resume"`
Status_Code erc.DataStatusCode `json:"status_code" gorm:"not null;size:10"`
} }
@@ -1,6 +1,8 @@
package radiologymcuorder package radiologymcuorder
import ( import (
la "simrs-vx/internal/lib/auth"
ecore "simrs-vx/internal/domain/base-entities/core" ecore "simrs-vx/internal/domain/base-entities/core"
ed "simrs-vx/internal/domain/main-entities/doctor" ed "simrs-vx/internal/domain/main-entities/doctor"
ee "simrs-vx/internal/domain/main-entities/encounter" ee "simrs-vx/internal/domain/main-entities/encounter"
@@ -11,9 +13,10 @@ type CreateDto struct {
Encounter_Id uint `json:"encounter_id"` Encounter_Id uint `json:"encounter_id"`
Number *uint64 `json:"number"` // SHOULD BE AUTOMATIC WITHOUT SYNC Number *uint64 `json:"number"` // SHOULD BE AUTOMATIC WITHOUT SYNC
Doctor_Code string `json:"-" validate:"required"` Doctor_Code string `json:"-" validate:"required"`
ClinicalNotes string `json:"clinicalNotes"` ClinicalNotes *string `json:"clinicalNotes"`
OtherNotes string `json:"otherNotes"` OtherNotes *string `json:"otherNotes"`
Items []ermoi.SubCreateDto `json:"items" validate:"required"` Items []ermoi.SubCreateDto `json:"items" validate:"required"`
la.AuthInfo
} }
type ReadListDto struct { type ReadListDto struct {
@@ -29,7 +32,8 @@ type FilterDto struct {
} }
type ReadDetailDto struct { type ReadDetailDto struct {
Id uint64 `json:"id"` Id uint64 `json:"id"`
Includes string `json:"includes"`
} }
type UpdateDto struct { type UpdateDto struct {
@@ -5,6 +5,7 @@ import (
ee "simrs-vx/internal/domain/main-entities/encounter" ee "simrs-vx/internal/domain/main-entities/encounter"
ermoi "simrs-vx/internal/domain/main-entities/radiology-mcu-order-item/base" ermoi "simrs-vx/internal/domain/main-entities/radiology-mcu-order-item/base"
eamob "simrs-vx/internal/domain/main-entities/radiology-mcu-order/base" eamob "simrs-vx/internal/domain/main-entities/radiology-mcu-order/base"
erc "simrs-vx/internal/domain/references/common"
) )
type RadiologyMcuOrder struct { type RadiologyMcuOrder struct {
@@ -13,3 +14,15 @@ type RadiologyMcuOrder struct {
Doctor *ed.Doctor `json:"doctor,omitempty" gorm:"foreignKey:Doctor_Code;references:Code"` Doctor *ed.Doctor `json:"doctor,omitempty" gorm:"foreignKey:Doctor_Code;references:Code"`
Items []*ermoi.RadiologyMcuOrderItem `json:"items" gorm:"foreignKey:RadiologyMcuOrder_Id;references:Id"` Items []*ermoi.RadiologyMcuOrderItem `json:"items" gorm:"foreignKey:RadiologyMcuOrder_Id;references:Id"`
} }
func (d RadiologyMcuOrder) IsNotNew() bool {
return d.Status_Code != erc.DSCNew
}
func (d RadiologyMcuOrder) IsCompleted() bool {
return d.Status_Code == erc.DSCDone
}
func (d RadiologyMcuOrder) IsSameDoctor(doctor_code *string) bool {
return d.Doctor_Code == *doctor_code
}
+13 -1
View File
@@ -16,6 +16,8 @@ import (
consultation "simrs-vx/internal/domain/main-entities/consultation" consultation "simrs-vx/internal/domain/main-entities/consultation"
controlletter "simrs-vx/internal/domain/main-entities/control-letter" controlletter "simrs-vx/internal/domain/main-entities/control-letter"
counter "simrs-vx/internal/domain/main-entities/counter" counter "simrs-vx/internal/domain/main-entities/counter"
cpmcuorder "simrs-vx/internal/domain/main-entities/cp-mcu-order"
cpmcuorderitem "simrs-vx/internal/domain/main-entities/cp-mcu-order-item"
deathcause "simrs-vx/internal/domain/main-entities/death-cause" deathcause "simrs-vx/internal/domain/main-entities/death-cause"
device "simrs-vx/internal/domain/main-entities/device" device "simrs-vx/internal/domain/main-entities/device"
deviceorder "simrs-vx/internal/domain/main-entities/device-order" deviceorder "simrs-vx/internal/domain/main-entities/device-order"
@@ -68,6 +70,8 @@ import (
medicinemethod "simrs-vx/internal/domain/main-entities/medicine-method" medicinemethod "simrs-vx/internal/domain/main-entities/medicine-method"
medicinemix "simrs-vx/internal/domain/main-entities/medicine-mix" medicinemix "simrs-vx/internal/domain/main-entities/medicine-mix"
medicinemixitem "simrs-vx/internal/domain/main-entities/medicine-mix-item" medicinemixitem "simrs-vx/internal/domain/main-entities/medicine-mix-item"
micromcuorder "simrs-vx/internal/domain/main-entities/micro-mcu-order"
micromcuorderitem "simrs-vx/internal/domain/main-entities/micro-mcu-order-item"
midwife "simrs-vx/internal/domain/main-entities/midwife" midwife "simrs-vx/internal/domain/main-entities/midwife"
nurse "simrs-vx/internal/domain/main-entities/nurse" nurse "simrs-vx/internal/domain/main-entities/nurse"
nutritionist "simrs-vx/internal/domain/main-entities/nutritionist" nutritionist "simrs-vx/internal/domain/main-entities/nutritionist"
@@ -88,6 +92,8 @@ import (
procedureroomorderitem "simrs-vx/internal/domain/main-entities/procedure-room-order-item" procedureroomorderitem "simrs-vx/internal/domain/main-entities/procedure-room-order-item"
proceduresrc "simrs-vx/internal/domain/main-entities/procedure-src" proceduresrc "simrs-vx/internal/domain/main-entities/procedure-src"
province "simrs-vx/internal/domain/main-entities/province" province "simrs-vx/internal/domain/main-entities/province"
radiologymcuorder "simrs-vx/internal/domain/main-entities/radiology-mcu-order"
radiologymcuorderitem "simrs-vx/internal/domain/main-entities/radiology-mcu-order-item"
regency "simrs-vx/internal/domain/main-entities/regency" regency "simrs-vx/internal/domain/main-entities/regency"
rehab "simrs-vx/internal/domain/main-entities/rehab" rehab "simrs-vx/internal/domain/main-entities/rehab"
responsibledoctorhist "simrs-vx/internal/domain/main-entities/responsible-doctor-hist" responsibledoctorhist "simrs-vx/internal/domain/main-entities/responsible-doctor-hist"
@@ -122,7 +128,6 @@ import (
func getMainEntities() []any { func getMainEntities() []any {
return []any{ return []any{
&authpartner.AuthPartner{}, &authpartner.AuthPartner{},
&apmcuorder.ApMcuOrder{},
&user.User{}, &user.User{},
&userfes.UserFes{}, &userfes.UserFes{},
&division.Division{}, &division.Division{},
@@ -202,6 +207,13 @@ func getMainEntities() []any {
&mcuorderitem.McuOrderItem{}, &mcuorderitem.McuOrderItem{},
&mcusubsrc.McuSubSrc{}, &mcusubsrc.McuSubSrc{},
&mcuordersubitem.McuOrderSubItem{}, &mcuordersubitem.McuOrderSubItem{},
&apmcuorder.ApMcuOrder{},
&radiologymcuorder.RadiologyMcuOrder{},
&radiologymcuorderitem.RadiologyMcuOrderItem{},
&cpmcuorder.CpMcuOrder{},
&cpmcuorderitem.CpMcuOrderItem{},
&micromcuorder.MicroMcuOrder{},
&micromcuorderitem.MicroMcuOrderItem{},
&antibioticsrccategory.AntibioticSrcCategory{}, &antibioticsrccategory.AntibioticSrcCategory{},
&antibioticinuse.AntibioticInUse{}, &antibioticinuse.AntibioticInUse{},
&consultation.Consultation{}, &consultation.Consultation{},