feat/order-things: adjust entities

This commit is contained in:
2025-12-02 20:16:42 +07:00
parent 681629f432
commit 9698210fb2
27 changed files with 680 additions and 81 deletions

No files matched your search

@@ -0,0 +1,101 @@
-- Modify "Consultation" table
ALTER TABLE "public"."Consultation" ALTER COLUMN "DstUnit_Code" TYPE character varying(20);
-- Modify "ControlLetter" table
ALTER TABLE "public"."ControlLetter" ALTER COLUMN "Unit_Code" TYPE character varying(20), ALTER COLUMN "Specialist_Code" TYPE character varying(20), ALTER COLUMN "Subspecialist_Code" TYPE character varying(20);
-- Modify "Encounter" table
ALTER TABLE "public"."Encounter" ALTER COLUMN "Specialist_Code" TYPE character varying(20), ALTER COLUMN "Subspecialist_Code" TYPE character varying(20), ALTER COLUMN "Unit_Code" TYPE character varying(20);
-- Modify "Chemo" table
ALTER TABLE "public"."Chemo" ALTER COLUMN "SrcUnit_Code" TYPE character varying(20);
-- Modify "Installation" table
ALTER TABLE "public"."Installation" ALTER COLUMN "Code" TYPE character varying(20);
-- Modify "InternalReference" table
ALTER TABLE "public"."InternalReference" ALTER COLUMN "Unit_Code" TYPE character varying(20);
-- Modify "PracticeSchedule" table
ALTER TABLE "public"."PracticeSchedule" ALTER COLUMN "Unit_Code" TYPE character varying(20);
-- Create "DevicePackage" table
CREATE TABLE "public"."DevicePackage" (
"Id" serial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Code" character varying(20) NOT NULL,
"Name" character varying(50) NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "uni_DevicePackage_Code" UNIQUE ("Code")
);
-- Create "DevicePackageItem" table
CREATE TABLE "public"."DevicePackageItem" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"DevicePackage_Code" character varying(20) NOT NULL,
"Device_Code" character varying(20) NOT NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "fk_DevicePackageItem_Device" FOREIGN KEY ("Device_Code") REFERENCES "public"."Device" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "fk_DevicePackageItem_DevicePackage" FOREIGN KEY ("DevicePackage_Code") REFERENCES "public"."DevicePackage" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION
);
-- Create "MaterialPackage" table
CREATE TABLE "public"."MaterialPackage" (
"Id" serial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Code" character varying(20) NOT NULL,
"Name" character varying(50) NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "uni_MaterialPackage_Code" UNIQUE ("Code")
);
-- Create "MaterialPackageItem" table
CREATE TABLE "public"."MaterialPackageItem" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"MaterialPackage_Code" character varying(20) NOT NULL,
"Material_Code" character varying(20) NOT NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "fk_MaterialPackageItem_Material" FOREIGN KEY ("Material_Code") REFERENCES "public"."Material" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "fk_MaterialPackageItem_MaterialPackage" FOREIGN KEY ("MaterialPackage_Code") REFERENCES "public"."MaterialPackage" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION
);
-- Modify "Infra" table
ALTER TABLE "public"."Infra" ALTER COLUMN "Code" TYPE character varying(20), ALTER COLUMN "InfraGroup_Code" TYPE character varying(20), ALTER COLUMN "Parent_Code" TYPE character varying(20);
-- Modify "Specialist" table
ALTER TABLE "public"."Specialist" ALTER COLUMN "Code" TYPE character varying(20), ALTER COLUMN "Unit_Code" TYPE character varying(20);
-- Modify "Subspecialist" table
ALTER TABLE "public"."Subspecialist" ALTER COLUMN "Code" TYPE character varying(20), ALTER COLUMN "Specialist_Code" TYPE character varying(20);
-- Modify "Unit" table
ALTER TABLE "public"."Unit" ALTER COLUMN "Code" TYPE character varying(20), ALTER COLUMN "Installation_Code" TYPE character varying(20);
-- Create "ProcedureRoom" table
CREATE TABLE "public"."ProcedureRoom" (
"Id" serial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Code" character varying(20) NULL,
"Infra_Code" character varying(20) NULL,
"Type_Code" character varying(10) NULL,
"Unit_Code" character varying(20) NULL,
"Specialist_Code" character varying(20) NULL,
"Subspecialist_Code" character varying(20) NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "uni_ProcedureRoom_Code" UNIQUE ("Code"),
CONSTRAINT "uni_ProcedureRoom_Infra_Code" UNIQUE ("Infra_Code"),
CONSTRAINT "fk_ProcedureRoom_Infra" FOREIGN KEY ("Infra_Code") REFERENCES "public"."Infra" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "fk_ProcedureRoom_Specialist" FOREIGN KEY ("Specialist_Code") REFERENCES "public"."Specialist" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "fk_ProcedureRoom_Subspecialist" FOREIGN KEY ("Subspecialist_Code") REFERENCES "public"."Subspecialist" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "fk_ProcedureRoom_Unit" FOREIGN KEY ("Unit_Code") REFERENCES "public"."Unit" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION
);
-- Create "ProcedureRoomOrder" table
CREATE TABLE "public"."ProcedureRoomOrder" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Encounter_Id" bigint NULL,
"Infra_Code" character varying(20) NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "fk_ProcedureRoomOrder_ProcedureRoom" FOREIGN KEY ("Infra_Code") REFERENCES "public"."ProcedureRoom" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION
);
-- Drop "Room" table
DROP TABLE "public"."Room";
+2 -2
View File
@@ -1,4 +1,4 @@
h1:NjMnBBzNKOW7RxpS7I5LqVv+o/CxGkxhHt/B7CV4/tQ= h1:cyae1SX3YSMX1LZLEsCFxcRKbVxpnp46BqFxWXJqKjs=
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=
@@ -140,4 +140,4 @@ h1:NjMnBBzNKOW7RxpS7I5LqVv+o/CxGkxhHt/B7CV4/tQ=
20251202030445.sql h1:QWBVfTepT7DaXP5E0BYoxNM0JwKIQ2qIMXzI4kbz/qE= 20251202030445.sql h1:QWBVfTepT7DaXP5E0BYoxNM0JwKIQ2qIMXzI4kbz/qE=
20251202044430.sql h1:4QZH9lz0GrQ9rzP1AJ+hJgGalNpp+8FCRckNK7xaTbU= 20251202044430.sql h1:4QZH9lz0GrQ9rzP1AJ+hJgGalNpp+8FCRckNK7xaTbU=
20251202064000.sql h1:/EN7sT1ol/91qW1aXWrzX+Mc3XOC/7f/LtfA0JRHpbg= 20251202064000.sql h1:/EN7sT1ol/91qW1aXWrzX+Mc3XOC/7f/LtfA0JRHpbg=
20251202122413.sql h1:uZpx6oC8BLTECZdMN69u+WTAAzdSWF70RGVB/pIxC84= 20251202130629.sql h1:LjBgQS8tKEwpC3WA0wGeO2Fs2L20kEOB6e5ljO4EdLM=
@@ -0,0 +1,63 @@
package devicepackage
import (
ecore "simrs-vx/internal/domain/base-entities/core"
)
type CreateDto struct {
Code string `json:"code" validate:"maxLength=20"`
Name string `json:"name" validate:"maxLength=50"`
}
type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Pagination ecore.Pagination
}
type FilterDto struct {
Code string `json:"code"`
Name string `json:"name"`
}
type ReadDetailDto struct {
Id uint16 `json:"id"`
}
type UpdateDto struct {
Id uint16 `json:"id"`
CreateDto
}
type DeleteDto struct {
Id uint16 `json:"id"`
}
type MetaDto struct {
PageNumber int `json:"page_number"`
PageSize int `json:"page_size"`
Count int `json:"count"`
}
type ResponseDto struct {
ecore.SmallMain
Code string `json:"code"`
Name string `json:"name"`
}
func (d DevicePackage) ToResponse() ResponseDto {
resp := ResponseDto{
Code: d.Code,
Name: d.Name,
}
resp.SmallMain = d.SmallMain
return resp
}
func ToResponseList(data []DevicePackage) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -0,0 +1,11 @@
package devicepackage
import (
ecore "simrs-vx/internal/domain/base-entities/core"
)
type DevicePackage struct {
ecore.SmallMain
Code string `json:"code" gorm:"unique;size:20;not null"`
Name string `json:"name" gorm:"size:50"`
}
@@ -0,0 +1,69 @@
package devicepackage
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ed "simrs-vx/internal/domain/main-entities/device"
edp "simrs-vx/internal/domain/main-entities/device-package"
)
type CreateDto struct {
DevicePackage_Code string `json:"devicePackage_code" validate:"maxLength=20"`
Device_Code string `json:"code" validate:"maxLength=20"`
}
type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Pagination ecore.Pagination
}
type FilterDto struct {
DevicePackage_Code string `json:"devicePackage-code"`
Device_Code string `json:"code"`
}
type ReadDetailDto struct {
Id uint `json:"id"`
}
type UpdateDto struct {
Id uint `json:"id"`
CreateDto
}
type DeleteDto struct {
Id uint `json:"id"`
}
type MetaDto struct {
PageNumber int `json:"page_number"`
PageSize int `json:"page_size"`
Count int `json:"count"`
}
type ResponseDto struct {
ecore.Main
DevicePackage_Code string `json:"devicePackage_code"`
DevicePackage *edp.DevicePackage `json:"devicePackage,omitempty"`
Device_Code string `json:"code"`
Device *ed.Device `json:"device,omitempty"`
}
func (d DevicePackageItem) ToResponse() ResponseDto {
resp := ResponseDto{
DevicePackage_Code: d.DevicePackage_Code,
DevicePackage: d.DevicePackage,
Device_Code: d.Device_Code,
Device: d.Device,
}
resp.Id = d.Id
return resp
}
func ToResponseList(data []DevicePackageItem) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -0,0 +1,15 @@
package devicepackage
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ed "simrs-vx/internal/domain/main-entities/device"
edp "simrs-vx/internal/domain/main-entities/device-package"
)
type DevicePackageItem struct {
ecore.Main
DevicePackage_Code string `json:"devicePackage_code" gorm:"size:20;not null"`
DevicePackage *edp.DevicePackage `json:"devicePackage" gorm:"foreignKey:DevicePackage_Code;references:Code"`
Device_Code string `json:"code" gorm:"size:20;not null"`
Device *ed.Device `json:"device" gorm:"foreignKey:Device_Code;references:Code"`
}
@@ -0,0 +1,63 @@
package devicepackage
import (
ecore "simrs-vx/internal/domain/base-entities/core"
)
type CreateDto struct {
Code string `json:"code" validate:"maxLength=20"`
Name string `json:"name" validate:"maxLength=50"`
}
type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Pagination ecore.Pagination
}
type FilterDto struct {
Code string `json:"code"`
Name string `json:"name"`
}
type ReadDetailDto struct {
Id uint16 `json:"id"`
}
type UpdateDto struct {
Id uint16 `json:"id"`
CreateDto
}
type DeleteDto struct {
Id uint16 `json:"id"`
}
type MetaDto struct {
PageNumber int `json:"page_number"`
PageSize int `json:"page_size"`
Count int `json:"count"`
}
type ResponseDto struct {
ecore.SmallMain
Code string `json:"code"`
Name string `json:"name"`
}
func (d DevicePackage) ToResponse() ResponseDto {
resp := ResponseDto{
Code: d.Code,
Name: d.Name,
}
resp.SmallMain = d.SmallMain
return resp
}
func ToResponseList(data []DevicePackage) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -0,0 +1,11 @@
package devicepackage
import (
ecore "simrs-vx/internal/domain/base-entities/core"
)
type DevicePackage struct {
ecore.SmallMain
Code string `json:"code" gorm:"unique;size:20;not null"`
Name string `json:"name" gorm:"size:50"`
}
+4 -3
View File
@@ -3,7 +3,8 @@ package infra
import ( import (
ecore "simrs-vx/internal/domain/base-entities/core" ecore "simrs-vx/internal/domain/base-entities/core"
ei "simrs-vx/internal/domain/main-entities/item" ei "simrs-vx/internal/domain/main-entities/item"
erb "simrs-vx/internal/domain/main-entities/room/base"
erb "simrs-vx/internal/domain/main-entities/procedure-room/base"
ero "simrs-vx/internal/domain/references/organization" ero "simrs-vx/internal/domain/references/organization"
) )
@@ -69,7 +70,7 @@ type ResponseDto struct {
Childrens []Infra `json:"childrens,omitempty"` Childrens []Infra `json:"childrens,omitempty"`
Item_Code *string `json:"item_code"` Item_Code *string `json:"item_code"`
Item *ei.Item `json:"item,omitempty"` Item *ei.Item `json:"item,omitempty"`
Rooms []erb.Basic `json:"rooms,omitempty"` ProcedureRooms []erb.ProcedureRoom `json:"rooms,omitempty"`
} }
func (d Infra) ToResponse() ResponseDto { func (d Infra) ToResponse() ResponseDto {
@@ -82,7 +83,7 @@ func (d Infra) ToResponse() ResponseDto {
Childrens: d.Childrens, Childrens: d.Childrens,
Item_Code: d.Item_Code, Item_Code: d.Item_Code,
Item: d.Item, Item: d.Item,
Rooms: d.Rooms, ProcedureRooms: d.ProcedureRooms,
} }
resp.SmallMain = d.SmallMain resp.SmallMain = d.SmallMain
return resp return resp
@@ -4,20 +4,20 @@ import (
ecore "simrs-vx/internal/domain/base-entities/core" ecore "simrs-vx/internal/domain/base-entities/core"
ei "simrs-vx/internal/domain/main-entities/item" ei "simrs-vx/internal/domain/main-entities/item"
erb "simrs-vx/internal/domain/main-entities/room/base" erb "simrs-vx/internal/domain/main-entities/procedure-room/base"
ero "simrs-vx/internal/domain/references/organization" ero "simrs-vx/internal/domain/references/organization"
) )
type Infra struct { type Infra struct {
ecore.SmallMain // adjust this according to the needs ecore.SmallMain // adjust this according to the needs
Code string `json:"code" gorm:"uniqueIndex;size:10;not null"` Code string `json:"code" gorm:"uniqueIndex;size:20;not null"`
Name string `json:"name" gorm:"size:50"` Name string `json:"name" gorm:"size:50"`
InfraGroup_Code ero.InfraGroupCode `json:"infraGroup_code" gorm:"size:15"` InfraGroup_Code ero.InfraGroupCode `json:"infraGroup_code" gorm:"size:20"`
Parent_Code *string `json:"parent_code" gorm:"size:10"` Parent_Code *string `json:"parent_code" gorm:"size:20"`
Parent *Infra `json:"parent" gorm:"foreignKey:Parent_Code;references:Code"` Parent *Infra `json:"parent" gorm:"foreignKey:Parent_Code;references:Code"`
Childrens []Infra `json:"childrens" gorm:"foreignKey:Parent_Code;references:Code"` Childrens []Infra `json:"childrens" gorm:"foreignKey:Parent_Code;references:Code"`
Item_Code *string `json:"item_code" gorm:"size:50"` Item_Code *string `json:"item_code" gorm:"size:50"`
Item *ei.Item `json:"item,omitempty" gorm:"foreignKey:Item_Code;references:Code"` Item *ei.Item `json:"item,omitempty" gorm:"foreignKey:Item_Code;references:Code"`
Rooms []erb.Basic `json:"rooms" gorm:"foreignKey:Infra_Code;references:Code"` ProcedureRooms []erb.ProcedureRoom `json:"rooms" gorm:"foreignKey:Infra_Code;references:Code"`
} }
@@ -8,7 +8,7 @@ import (
type Installation struct { type Installation struct {
ecore.SmallMain // adjust this according to the needs ecore.SmallMain // adjust this according to the needs
Code string `json:"code" gorm:"unique;size:10"` Code string `json:"code" gorm:"unique;size:20"`
Name string `json:"name" gorm:"size:50"` Name string `json:"name" gorm:"size:50"`
EncounterClass_Code ere.EncounterClassCode `json:"encounterClass_code" gorm:"size:10"` EncounterClass_Code ere.EncounterClassCode `json:"encounterClass_code" gorm:"size:10"`
InstallationPositions []eipb.Basic `json:"installationPositions,omitempty" gorm:"foreignKey:Installation_Code;references:Code"` InstallationPositions []eipb.Basic `json:"installationPositions,omitempty" gorm:"foreignKey:Installation_Code;references:Code"`
@@ -0,0 +1,69 @@
package materialpackage
import (
ecore "simrs-vx/internal/domain/base-entities/core"
em "simrs-vx/internal/domain/main-entities/material"
emp "simrs-vx/internal/domain/main-entities/material-package"
)
type CreateDto struct {
MaterialPackage_Code string `json:"materialPackage_code" validate:"maxLength=20"`
Material_Code string `json:"code" validate:"maxLength=20"`
}
type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Pagination ecore.Pagination
}
type FilterDto struct {
MaterialPackage_Code string `json:"materialPackage-code"`
Material_Code string `json:"code"`
}
type ReadDetailDto struct {
Id uint `json:"id"`
}
type UpdateDto struct {
Id uint `json:"id"`
CreateDto
}
type DeleteDto struct {
Id uint `json:"id"`
}
type MetaDto struct {
PageNumber int `json:"page_number"`
PageSize int `json:"page_size"`
Count int `json:"count"`
}
type ResponseDto struct {
ecore.Main
MaterialPackage_Code string `json:"materialPackage_code"`
MaterialPackage *emp.MaterialPackage `json:"materialPackage,omitempty"`
Material_Code string `json:"code"`
Material *em.Material `json:"material,omitempty"`
}
func (d MaterialPackageItem) ToResponse() ResponseDto {
resp := ResponseDto{
MaterialPackage_Code: d.MaterialPackage_Code,
MaterialPackage: d.MaterialPackage,
Material_Code: d.Material_Code,
Material: d.Material,
}
resp.Id = d.Id
return resp
}
func ToResponseList(data []MaterialPackageItem) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -0,0 +1,15 @@
package materialpackage
import (
ecore "simrs-vx/internal/domain/base-entities/core"
em "simrs-vx/internal/domain/main-entities/material"
emp "simrs-vx/internal/domain/main-entities/material-package"
)
type MaterialPackageItem struct {
ecore.Main
MaterialPackage_Code string `json:"materialPackage_code" gorm:"size:20;not null"`
MaterialPackage *emp.MaterialPackage `json:"materialPackage" gorm:"foreignKey:MaterialPackage_Code;references:Code"`
Material_Code string `json:"code" gorm:"size:20;not null"`
Material *em.Material `json:"material" gorm:"foreignKey:Material_Code;references:Code"`
}
@@ -0,0 +1,63 @@
package materialpackage
import (
ecore "simrs-vx/internal/domain/base-entities/core"
)
type CreateDto struct {
Code string `json:"code" validate:"maxLength=20"`
Name string `json:"name" validate:"maxLength=50"`
}
type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Pagination ecore.Pagination
}
type FilterDto struct {
Code string `json:"code"`
Name string `json:"name"`
}
type ReadDetailDto struct {
Id uint16 `json:"id"`
}
type UpdateDto struct {
Id uint16 `json:"id"`
CreateDto
}
type DeleteDto struct {
Id uint16 `json:"id"`
}
type MetaDto struct {
PageNumber int `json:"page_number"`
PageSize int `json:"page_size"`
Count int `json:"count"`
}
type ResponseDto struct {
ecore.SmallMain
Code string `json:"code"`
Name string `json:"name"`
}
func (d MaterialPackage) ToResponse() ResponseDto {
resp := ResponseDto{
Code: d.Code,
Name: d.Name,
}
resp.SmallMain = d.SmallMain
return resp
}
func ToResponseList(data []MaterialPackage) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -0,0 +1,11 @@
package materialpackage
import (
ecore "simrs-vx/internal/domain/base-entities/core"
)
type MaterialPackage struct {
ecore.SmallMain
Code string `json:"code" gorm:"unique;size:20;not null"`
Name string `json:"name" gorm:"size:50"`
}
@@ -0,0 +1,70 @@
package procedureroomorder
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ec "simrs-vx/internal/domain/main-entities/encounter"
epr "simrs-vx/internal/domain/main-entities/procedure-room"
)
type CreateDto struct {
Encounter_Id uint64 `json:"encounter_id"`
Infra_Code string `json:"procedure"`
ProcedureRoom string `json:"procedureRoom"`
}
type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Pagination ecore.Pagination
}
type FilterDto struct {
Encounter_Id uint64 `json:"encounter-id"`
Infra_Code string `json:"procedure-code"`
ProcedureRoom string `json:"procedure-room"`
}
type ReadDetailDto struct {
Id uint `json:"id"`
}
type UpdateDto struct {
Id uint `json:"id"`
CreateDto
}
type DeleteDto struct {
Id uint `json:"id"`
}
type MetaDto struct {
PageNumber int `json:"page_number"`
PageSize int `json:"page_size"`
Count int `json:"count"`
}
type ResponseDto struct {
ecore.Main
Encounter_Id uint64 `json:"encounter_id"`
Encounter *ec.Encounter `json:"encounter,omitempty"`
Infra_Code string `json:"procedure"`
ProcedureRoom *epr.ProcedureRoom `json:"procedureRoom,omitempty"`
}
func (d ProcedureRoomOrder) ToResponse() ResponseDto {
resp := ResponseDto{
Encounter_Id: d.Encounter_Id,
Infra_Code: d.Infra_Code,
// ProcedureRoom: d.ProcedureRoom,
}
resp.Id = d.Id
return resp
}
func ToResponseList(data []ProcedureRoomOrder) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -0,0 +1,13 @@
package procedureroomorder
import (
ecore "simrs-vx/internal/domain/base-entities/core"
epr "simrs-vx/internal/domain/main-entities/procedure-room"
)
type ProcedureRoomOrder struct {
ecore.Main
Encounter_Id uint64 `json:"encounter_id"`
Infra_Code string `json:"infra_code" gorm:"size:20"`
ProcedureRoom *epr.ProcedureRoom `json:"procedureRoom,omitempty" gorm:"foreignKey:Infra_Code;references:Code"`
}
@@ -0,0 +1,21 @@
package procedureroombase
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ero "simrs-vx/internal/domain/references/organization"
)
type ProcedureRoom struct {
ecore.SmallMain
Code string `json:"code" gorm:"unique;size:20"` // copied from infra code
Infra_Code *string `json:"infra_code" gorm:"size:20;unique"`
Type_Code *ero.ProdcedureRoomTypeCode `json:"type_code" gorm:"size:10"`
Unit_Code *string `json:"unit_code" gorm:"size:20"`
Specialist_Code *string `json:"specialist_code" gorm:"size:20"`
Subspecialist_Code *string `json:"subspecialist_code" gorm:"size:20"`
}
// THIS IS ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
// func (ProcedureRoom) TableName() string {
// return "Room"
// }
@@ -1,4 +1,4 @@
package room package procedureroom
import ( import (
ecore "simrs-vx/internal/domain/base-entities/core" ecore "simrs-vx/internal/domain/base-entities/core"
@@ -10,6 +10,7 @@ import (
type CreateDto struct { type CreateDto struct {
Infra_Code *string `json:"infra_code"` Infra_Code *string `json:"infra_code"`
Type_Code string `json:"type_code"`
Unit_Code *string `json:"unit_code"` Unit_Code *string `json:"unit_code"`
Specialist_Code *string `json:"specialist_code"` Specialist_Code *string `json:"specialist_code"`
Subspecialist_Code *string `json:"subspecialist_code"` Subspecialist_Code *string `json:"subspecialist_code"`
@@ -23,6 +24,7 @@ type ReadListDto struct {
type FilterDto struct { type FilterDto struct {
Infra_Code *string `json:"infra-code"` Infra_Code *string `json:"infra-code"`
Type_Code string `json:"type_code"`
Unit_Code *string `json:"unit-code"` Unit_Code *string `json:"unit-code"`
Specialist_Code *string `json:"specialist-code"` Specialist_Code *string `json:"specialist-code"`
Subspecialist_Code *string `json:"subspecialist-code"` Subspecialist_Code *string `json:"subspecialist-code"`
@@ -49,6 +51,7 @@ type MetaDto struct {
type ResponseDto struct { type ResponseDto struct {
ecore.SmallMain ecore.SmallMain
Type_Code *string `json:"type_code"`
Infra_Code *string `json:"infra_code"` Infra_Code *string `json:"infra_code"`
Infra *ei.Infra `json:"infra,omitempty"` Infra *ei.Infra `json:"infra,omitempty"`
Unit_Code *string `json:"unit_code"` Unit_Code *string `json:"unit_code"`
@@ -59,10 +62,11 @@ type ResponseDto struct {
Subspecialist *ess.Subspecialist `json:"subspecialist,omitempty"` Subspecialist *ess.Subspecialist `json:"subspecialist,omitempty"`
} }
func (d Room) ToResponse() ResponseDto { func (d ProcedureRoom) ToResponse() ResponseDto {
resp := ResponseDto{ resp := ResponseDto{
Infra_Code: d.Infra_Code, Infra_Code: d.Infra_Code,
Infra: d.Infra, Infra: d.Infra,
Type_Code: (*string)(d.Type_Code),
Unit_Code: d.Unit_Code, Unit_Code: d.Unit_Code,
Unit: d.Unit, Unit: d.Unit,
Specialist_Code: d.Specialist_Code, Specialist_Code: d.Specialist_Code,
@@ -74,7 +78,7 @@ func (d Room) ToResponse() ResponseDto {
return resp return resp
} }
func ToResponseList(data []Room) []ResponseDto { func ToResponseList(data []ProcedureRoom) []ResponseDto {
resp := make([]ResponseDto, len(data)) resp := make([]ResponseDto, len(data))
for i, u := range data { for i, u := range data {
resp[i] = u.ToResponse() resp[i] = u.ToResponse()
@@ -0,0 +1,17 @@
package procedureroom
import (
ei "simrs-vx/internal/domain/main-entities/infra"
ebase "simrs-vx/internal/domain/main-entities/procedure-room/base"
es "simrs-vx/internal/domain/main-entities/specialist"
ess "simrs-vx/internal/domain/main-entities/subspecialist"
eu "simrs-vx/internal/domain/main-entities/unit"
)
type ProcedureRoom struct {
ebase.ProcedureRoom
Infra *ei.Infra `json:"infra,omitempty" gorm:"foreignKey:Infra_Code;references:Code"`
Unit *eu.Unit `json:"unit,omitempty" gorm:"foreignKey:Unit_Code;references:Code"`
Specialist *es.Specialist `json:"specialist,omitempty" gorm:"foreignKey:Specialist_Code;references:Code"`
Subspecialist *ess.Subspecialist `json:"subspecialist,omitempty" gorm:"foreignKey:Subspecialist_Code;references:Code"`
}
@@ -1,23 +0,0 @@
package base
import (
ecore "simrs-vx/internal/domain/base-entities/core"
es "simrs-vx/internal/domain/main-entities/specialist"
ess "simrs-vx/internal/domain/main-entities/subspecialist"
eu "simrs-vx/internal/domain/main-entities/unit"
)
type Basic struct {
ecore.SmallMain // adjust this according to the needs
Infra_Code *string `json:"infra_code" gorm:"size:10"`
Unit_Code *string `json:"unit_code" gorm:"size:10"`
Unit *eu.Unit `json:"unit,omitempty" gorm:"foreignKey:Unit_Code;references:Code"`
Specialist_Code *string `json:"specialist_code" gorm:"size:10"`
Specialist *es.Specialist `json:"specialist,omitempty" gorm:"foreignKey:Specialist_Code;references:Code"`
Subspecialist_Code *string `json:"subspecialist_code" gorm:"size:10"`
Subspecialist *ess.Subspecialist `json:"subspecialist,omitempty" gorm:"foreignKey:Subspecialist_Code;references:Code"`
}
func (Basic) TableName() string {
return "Room"
}
@@ -1,11 +0,0 @@
package room
import (
ei "simrs-vx/internal/domain/main-entities/infra"
ebase "simrs-vx/internal/domain/main-entities/room/base"
)
type Room struct {
ebase.Basic
Infra *ei.Infra `json:"infra,omitempty" gorm:"foreignKey:Infra_Code;references:Code"`
}
@@ -9,9 +9,9 @@ import (
type Specialist struct { type Specialist struct {
ecore.SmallMain // adjust this according to the needs ecore.SmallMain // adjust this according to the needs
Code string `json:"code" gorm:"unique;size:10"` Code string `json:"code" gorm:"unique;size:20"`
Name string `json:"name" gorm:"size:50"` Name string `json:"name" gorm:"size:50"`
Unit_Code *string `json:"unit_code" gorm:"size:10"` Unit_Code *string `json:"unit_code" gorm:"size:20"`
Unit *eu.Unit `json:"unit,omitempty" gorm:"foreignKey:Unit_Code;references:Code"` Unit *eu.Unit `json:"unit,omitempty" gorm:"foreignKey:Unit_Code;references:Code"`
SpecialistPositions []eub.Basic `json:"specialistPositions,omitempty" gorm:"foreignKey:Specialist_Code;references:Code"` SpecialistPositions []eub.Basic `json:"specialistPositions,omitempty" gorm:"foreignKey:Specialist_Code;references:Code"`
Subspecialists []essb.Basic `json:"subspecialists,omitempty" gorm:"foreignKey:Specialist_Code;references:Code"` Subspecialists []essb.Basic `json:"subspecialists,omitempty" gorm:"foreignKey:Specialist_Code;references:Code"`
@@ -6,9 +6,9 @@ import (
type Basic struct { type Basic struct {
ecore.SmallMain // adjust this according to the needs ecore.SmallMain // adjust this according to the needs
Code string `json:"code" gorm:"unique;size:10"` Code string `json:"code" gorm:"unique;size:20"`
Name string `json:"name" gorm:"size:50"` Name string `json:"name" gorm:"size:50"`
Specialist_Code *string `json:"specialist_code" gorm:"size:10"` Specialist_Code *string `json:"specialist_code" gorm:"size:20"`
} }
func (Basic) TableName() string { func (Basic) TableName() string {
+2 -2
View File
@@ -9,9 +9,9 @@ import (
type Unit struct { type Unit struct {
ecore.SmallMain // adjust this according to the needs ecore.SmallMain // adjust this according to the needs
Installation_Code *string `json:"installation_code" gorm:"size:10"` Installation_Code *string `json:"installation_code" gorm:"size:20"`
Installation *ei.Installation `json:"installation" gorm:"foreignKey:Installation_Code;references:Code"` Installation *ei.Installation `json:"installation" gorm:"foreignKey:Installation_Code;references:Code"`
Code string `json:"code" gorm:"unique;size:10"` Code string `json:"code" gorm:"unique;size:20"`
Name string `json:"name" gorm:"size:50"` Name string `json:"name" gorm:"size:50"`
Type_Code *ero.UnitTypeCode `json:"type_code"` Type_Code *ero.UnitTypeCode `json:"type_code"`
UnitPositions []eub.Basic `json:"unitPositions,omitempty" gorm:"foreignKey:Unit_Code;references:Code"` UnitPositions []eub.Basic `json:"unitPositions,omitempty" gorm:"foreignKey:Unit_Code;references:Code"`
@@ -6,6 +6,7 @@ type (
InternPosisitionCode string InternPosisitionCode string
ItemGroupCode string ItemGroupCode string
InfraGroupCode string InfraGroupCode string
ProdcedureRoomTypeCode string
UnitTypeCode string UnitTypeCode string
DoctorFeeTypeCode string DoctorFeeTypeCode string
ActionBillingCode string ActionBillingCode string
@@ -53,6 +54,9 @@ const (
IFGCCounter InfraGroupCode = "counter" // Counter IFGCCounter InfraGroupCode = "counter" // Counter
IFGCPubScreen InfraGroupCode = "public-screen" // Public Screen IFGCPubScreen InfraGroupCode = "public-screen" // Public Screen
PRTLight ProdcedureRoomTypeCode = "light" // Ringan
PRTSurgery ProdcedureRoomTypeCode = "roomed" // Dikamarkan
UTCReg UnitTypeCode = "reg" // Registrasi UTCReg UnitTypeCode = "reg" // Registrasi
UTCExa UnitTypeCode = "exa" // Pemeriksaan UTCExa UnitTypeCode = "exa" // Pemeriksaan
UTCPay UnitTypeCode = "pay" // Pembayaran UTCPay UnitTypeCode = "pay" // Pembayaran
+14 -2
View File
@@ -19,6 +19,8 @@ import (
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"
deviceorderitem "simrs-vx/internal/domain/main-entities/device-order-item" deviceorderitem "simrs-vx/internal/domain/main-entities/device-order-item"
devicepackage "simrs-vx/internal/domain/main-entities/device-package"
devicepackageitem "simrs-vx/internal/domain/main-entities/device-package-item"
diagnosesrc "simrs-vx/internal/domain/main-entities/diagnose-src" diagnosesrc "simrs-vx/internal/domain/main-entities/diagnose-src"
district "simrs-vx/internal/domain/main-entities/district" district "simrs-vx/internal/domain/main-entities/district"
division "simrs-vx/internal/domain/main-entities/division" division "simrs-vx/internal/domain/main-entities/division"
@@ -46,6 +48,8 @@ import (
material "simrs-vx/internal/domain/main-entities/material" material "simrs-vx/internal/domain/main-entities/material"
materialorder "simrs-vx/internal/domain/main-entities/material-order" materialorder "simrs-vx/internal/domain/main-entities/material-order"
materialorderitem "simrs-vx/internal/domain/main-entities/material-order-item" materialorderitem "simrs-vx/internal/domain/main-entities/material-order-item"
materialpackage "simrs-vx/internal/domain/main-entities/material-package"
materialpackageitem "simrs-vx/internal/domain/main-entities/material-package-item"
mcuorder "simrs-vx/internal/domain/main-entities/mcu-order" mcuorder "simrs-vx/internal/domain/main-entities/mcu-order"
mcuorderitem "simrs-vx/internal/domain/main-entities/mcu-order-item" mcuorderitem "simrs-vx/internal/domain/main-entities/mcu-order-item"
mcuordersubitem "simrs-vx/internal/domain/main-entities/mcu-order-sub-item" mcuordersubitem "simrs-vx/internal/domain/main-entities/mcu-order-sub-item"
@@ -78,13 +82,14 @@ import (
practiceschedule "simrs-vx/internal/domain/main-entities/practice-schedule" practiceschedule "simrs-vx/internal/domain/main-entities/practice-schedule"
prescription "simrs-vx/internal/domain/main-entities/prescription" prescription "simrs-vx/internal/domain/main-entities/prescription"
prescriptionitem "simrs-vx/internal/domain/main-entities/prescription-item" prescriptionitem "simrs-vx/internal/domain/main-entities/prescription-item"
procedureroom "simrs-vx/internal/domain/main-entities/procedure-room"
procedureroomorder "simrs-vx/internal/domain/main-entities/procedure-room-order"
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"
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"
resume "simrs-vx/internal/domain/main-entities/resume" resume "simrs-vx/internal/domain/main-entities/resume"
room "simrs-vx/internal/domain/main-entities/room"
sbar "simrs-vx/internal/domain/main-entities/sbar" sbar "simrs-vx/internal/domain/main-entities/sbar"
screening "simrs-vx/internal/domain/main-entities/screening" screening "simrs-vx/internal/domain/main-entities/screening"
soapi "simrs-vx/internal/domain/main-entities/soapi" soapi "simrs-vx/internal/domain/main-entities/soapi"
@@ -144,6 +149,7 @@ func getMainEntities() []any {
&item.Item{}, &item.Item{},
&itemprice.ItemPrice{}, &itemprice.ItemPrice{},
&infra.Infra{}, &infra.Infra{},
&procedureroom.ProcedureRoom{},
&medicinegroup.MedicineGroup{}, &medicinegroup.MedicineGroup{},
&medicinemethod.MedicineMethod{}, &medicinemethod.MedicineMethod{},
&mcusrccategory.McuSrcCategory{}, &mcusrccategory.McuSrcCategory{},
@@ -163,13 +169,17 @@ func getMainEntities() []any {
&personrelative.PersonRelative{}, &personrelative.PersonRelative{},
&patient.Patient{}, &patient.Patient{},
&appointment.Appointment{}, &appointment.Appointment{},
&devicepackage.DevicePackage{},
&devicepackageitem.DevicePackageItem{},
&materialpackage.MaterialPackage{},
&materialpackageitem.MaterialPackageItem{},
&vclaimsep.VclaimSep{}, &vclaimsep.VclaimSep{},
&encounter.Encounter{}, &encounter.Encounter{},
&laborant.Laborant{}, &laborant.Laborant{},
&specialist.Specialist{}, &specialist.Specialist{},
&subspecialist.Subspecialist{}, &subspecialist.Subspecialist{},
&specialistintern.SpecialistIntern{}, &specialistintern.SpecialistIntern{},
&room.Room{},
&soapi.Soapi{}, &soapi.Soapi{},
&sbar.Sbar{}, &sbar.Sbar{},
&adime.Adime{}, &adime.Adime{},
@@ -196,6 +206,8 @@ func getMainEntities() []any {
&midwife.Midwife{}, &midwife.Midwife{},
&postalregion.PostalRegion{}, &postalregion.PostalRegion{},
&internalreference.InternalReference{}, &internalreference.InternalReference{},
&procedureroomorder.ProcedureRoomOrder{},
&vclaimsephist.VclaimSepHist{}, &vclaimsephist.VclaimSepHist{},
&vclaimsepprint.VclaimSepPrint{}, &vclaimsepprint.VclaimSepPrint{},
&vehicle.Vehicle{}, &vehicle.Vehicle{},