add infragroup, employee, itemgroup, doctor, nurse, nutritionist, pharmacist, counter, practiceschedule

This commit is contained in:
dpurbosakti
2025-08-27 09:20:16 +07:00
parent d76c5de6df
commit 3d22e8b720
38 changed files with 1022 additions and 94 deletions
@@ -0,0 +1,37 @@
-- Create "InfraGroup" table
CREATE TABLE "public"."InfraGroup" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Code" character varying(50) NULL,
"Name" character varying(100) NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "uni_InfraGroup_Code" UNIQUE ("Code")
);
-- Create "ItemGroup" table
CREATE TABLE "public"."ItemGroup" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Code" character varying(50) NULL,
"Name" character varying(100) NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "uni_ItemGroup_Code" UNIQUE ("Code")
);
-- Create "Employee" table
CREATE TABLE "public"."Employee" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"User_Id" bigint NULL,
"Person_Id" bigint NULL,
"Position_Code" character varying(20) NOT NULL,
"Division_Code" character varying(10) NULL,
"Number" character varying(20) NULL,
"Status_Code" character varying(10) NOT NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "fk_Employee_Division" FOREIGN KEY ("Division_Code") REFERENCES "public"."Division" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION
);
@@ -0,0 +1,77 @@
-- Create "Counter" table
CREATE TABLE "public"."Counter" (
"Id" serial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Code" character varying(10) NULL,
"Name" character varying(30) NULL,
"Number" smallint NULL,
"Parent_Id" integer NULL,
"Type_Code" text NULL,
"Queue_Code" character varying(5) NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "uni_Counter_Code" UNIQUE ("Code")
);
-- Create "Doctor" table
CREATE TABLE "public"."Doctor" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Employee_Id" bigint NULL,
"IHS_Number" character varying(20) NULL,
"SIP_Number" character varying(20) NULL,
"Unit_Id" bigint NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "fk_Doctor_Employee" FOREIGN KEY ("Employee_Id") REFERENCES "public"."Employee" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "fk_Doctor_Unit" FOREIGN KEY ("Unit_Id") REFERENCES "public"."Unit" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION
);
-- Create "Nurse" table
CREATE TABLE "public"."Nurse" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Employee_Id" bigint NULL,
"IHS_Number" character varying(20) NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "fk_Nurse_Employee" FOREIGN KEY ("Employee_Id") REFERENCES "public"."Employee" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION
);
-- Create "Nutritionist" table
CREATE TABLE "public"."Nutritionist" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Employee_Id" bigint NULL,
"IHS_Number" character varying(20) NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "fk_Nutritionist_Employee" FOREIGN KEY ("Employee_Id") REFERENCES "public"."Employee" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION
);
-- Create "Pharmacist" table
CREATE TABLE "public"."Pharmacist" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Employee_Id" bigint NULL,
"IHS_Number" character varying(20) NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "fk_Pharmacist_Employee" FOREIGN KEY ("Employee_Id") REFERENCES "public"."Employee" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION
);
-- Create "PracticeSchedule" table
CREATE TABLE "public"."PracticeSchedule" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Doctor_Id" bigint NULL,
"Unit_Code" character varying(10) NULL,
"Day_Code" smallint NULL,
"StartTime" character varying(5) NULL,
"EndTime" character varying(5) NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "fk_PracticeSchedule_Doctor" FOREIGN KEY ("Doctor_Id") REFERENCES "public"."Doctor" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "fk_PracticeSchedule_Unit" FOREIGN KEY ("Unit_Code") REFERENCES "public"."Unit" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION
);
+3 -1
View File
@@ -1,5 +1,7 @@
h1:kmaYH5ZWV4XqRaVulfE4cDvHlo2ANjTsI8kr9EIqJ7I=
h1:aACpl+MgcGmQ5IgTQGQ4o6+1pT9L8KphrWlGlKBguHc=
20250825054027.sql h1:zRUeuuP4bDLf96Cb38D/l9ivBAQC745XRao0rxbzdVI=
20250825060522.sql h1:NiE1fVzydcg8Y8ytSHgt0DkkauQFveNXv42BoG5m+bI=
20250825102900.sql h1:Xaz9cAKDx6ZjDByRBSNrX/d2/s8Xid2zhirWk62xKjQ=
20250825103029.sql h1:YkM0KTRRawcObTUOG3epXzBOW4wFyHIOlnh99FaVgPk=
20250827015551.sql h1:iaN+FNEPyYn8pbc16yt1Jwo1Bf6jRePhKvoZht+RxdI=
20250827021904.sql h1:jxCNgxPGAHqU3z/tQBww7/9PnJQYl2Is2NFV5ZEeHIU=
@@ -0,0 +1,83 @@
package counter
import (
ecore "simrs-vx/internal/domain/base-entities/core"
)
type CreateDto struct {
Code string `json:"code"`
Name string `json:"name"`
Number uint8 `json:"number"`
Parent_Id *uint16 `json:"parent_id"`
Type_Code string `json:"type_code"`
Queue_Code string `json:"queue_code"`
}
type ReadListDto struct {
Code string `json:"code"`
Name string `json:"name"`
Number uint8 `json:"number"`
Parent_Id *uint16 `json:"parent_id"`
Type_Code string `json:"type_code"`
Queue_Code string `json:"queue_code"`
Page int `json:"page"`
PageSize int `json:"page_size"`
NoPagination int `json:"no_pagination"`
}
type ReadDetailDto struct {
Id uint16 `json:"id"`
Code string `json:"code"`
Name string `json:"name"`
Number uint8 `json:"number"`
Parent_Id *uint16 `json:"parent_id"`
Type_Code string `json:"type_code"`
Queue_Code string `json:"queue_code"`
}
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"`
Number uint8 `json:"number"`
Parent_Id *uint16 `json:"parent_id"`
Type_Code string `json:"type_code"`
Queue_Code string `json:"queue_code"`
}
func (d Counter) ToResponse() ResponseDto {
resp := ResponseDto{
Code: d.Code,
Name: d.Name,
Number: d.Number,
Parent_Id: d.Parent_Id,
Type_Code: d.Type_Code,
Queue_Code: d.Queue_Code,
}
resp.SmallMain = d.SmallMain
return resp
}
func ToResponseList(data []Counter) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -0,0 +1,15 @@
package counter
import (
ecore "simrs-vx/internal/domain/base-entities/core"
)
type Counter struct {
ecore.SmallMain // adjust this according to the needs
Code string `json:"code" gorm:"unique;size:10"`
Name string `json:"name" gorm:"size:30"`
Number uint8 `json:"number" gorm:"size:10"`
Parent_Id *uint16 `json:"parent_id"`
Type_Code string `json:"type_code"`
Queue_Code string `json:"queue_code" gorm:"size:5"`
}
@@ -59,9 +59,9 @@ func (d DiagnoseSrc) ToResponse() ResponseDto {
return resp
}
func ToResponseList(users []DiagnoseSrc) []ResponseDto {
resp := make([]ResponseDto, len(users))
for i, u := range users {
func ToResponseList(data []DiagnoseSrc) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
@@ -53,9 +53,9 @@ func (d District) ToResponse() ResponseDto {
return resp
}
func ToResponseList(users []District) []ResponseDto {
resp := make([]ResponseDto, len(users))
for i, u := range users {
func ToResponseList(data []District) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
@@ -64,9 +64,9 @@ func (d DivisionPosition) ToResponse() ResponseDto {
return resp
}
func ToResponseList(users []DivisionPosition) []ResponseDto {
resp := make([]ResponseDto, len(users))
for i, u := range users {
func ToResponseList(data []DivisionPosition) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
@@ -59,9 +59,9 @@ func (d Division) ToResponse() ResponseDto {
return resp
}
func ToResponseList(users []Division) []ResponseDto {
resp := make([]ResponseDto, len(users))
for i, u := range users {
func ToResponseList(data []Division) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
@@ -0,0 +1,79 @@
package doctor
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ee "simrs-vx/internal/domain/main-entities/employee"
eu "simrs-vx/internal/domain/main-entities/unit"
)
type CreateDto struct {
Employee_Id *uint `json:"employee_id"`
IHS_Number *string `json:"ihs_number"`
SIP_Number *string `json:"sip_number"`
Unit_Id *uint `json:"unit_id"`
}
type ReadListDto struct {
Employee_Id *uint `json:"employee_id"`
IHS_Number *string `json:"ihs_number"`
SIP_Number *string `json:"sip_number"`
Unit_Id *uint `json:"unit_id"`
Page int `json:"page"`
PageSize int `json:"page_size"`
NoPagination int `json:"no_pagination"`
}
type ReadDetailDto struct {
Id uint16 `json:"id"`
Employee_Id *uint `json:"employee_id"`
IHS_Number *string `json:"ihs_number"`
SIP_Number *string `json:"sip_number"`
Unit_Id *uint `json:"unit_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
Employee_Id *uint `json:"employee_id"`
Employee *ee.Employee `json:"employee,omitempty"`
IHS_Number *string `json:"ihs_number"`
SIP_Number *string `json:"sip_number"`
Unit_Id *uint `json:"unit_id"`
Unit *eu.Unit `json:"unit,omitempty"`
}
func (d Doctor) ToResponse() ResponseDto {
resp := ResponseDto{
Employee_Id: d.Employee_Id,
Employee: d.Employee,
IHS_Number: d.IHS_Number,
SIP_Number: d.SIP_Number,
Unit_Id: d.Unit_Id,
Unit: d.Unit,
}
resp.Main = d.Main
return resp
}
func ToResponseList(data []Doctor) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -0,0 +1,17 @@
package doctor
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ee "simrs-vx/internal/domain/main-entities/employee"
eu "simrs-vx/internal/domain/main-entities/unit"
)
type Doctor struct {
ecore.Main // adjust this according to the needs
Employee_Id *uint `json:"employee_id"`
Employee *ee.Employee `json:"employee,omitempty" gorm:"foreignKey:Employee_Id;references:Id"`
IHS_Number *string `json:"ihs_number" gorm:"size:20"`
SIP_Number *string `json:"sip_number" gorm:"size:20"`
Unit_Id *uint `json:"unit_id"`
Unit *eu.Unit `json:"unit,omitempty" gorm:"foreignKey:Unit_Id;references:Id"`
}
@@ -0,0 +1,87 @@
package employee
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ed "simrs-vx/internal/domain/main-entities/division"
erc "simrs-vx/internal/domain/references/common"
)
type CreateDto struct {
User_Id *uint `json:"user_id"`
Person_Id *uint `json:"person_id"`
Position_Code erc.EmployeePosisitionCode `json:"position_code"`
Division_Code *string `json:"division_code"`
Number *string `json:"number"`
Status_Code erc.StatusCode `json:"status_code"`
}
type ReadListDto struct {
User_Id *uint `json:"user_id"`
Person_Id *uint `json:"person_id"`
Position_Code erc.EmployeePosisitionCode `json:"position_code"`
Division_Code *string `json:"division_code"`
Number *string `json:"number"`
Status_Code erc.StatusCode `json:"status_code"`
Page int `json:"page"`
PageSize int `json:"page_size"`
NoPagination int `json:"no_pagination"`
}
type ReadDetailDto struct {
Id uint16 `json:"id"`
User_Id *uint `json:"user_id"`
Person_Id *uint `json:"person_id"`
Position_Code erc.EmployeePosisitionCode `json:"position_code"`
Division_Code *string `json:"division_code"`
Number *string `json:"number"`
Status_Code erc.StatusCode `json:"status_code"`
}
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
User_Id *uint `json:"user_id"`
Person_Id *uint `json:"person_id"`
Position_Code erc.EmployeePosisitionCode `json:"position_code"`
Division_Code *string `json:"division_code"`
Division *ed.Division `json:"division,omitempty"`
Number *string `json:"number"`
Status_Code erc.StatusCode `json:"status_code"`
}
func (d Employee) ToResponse() ResponseDto {
resp := ResponseDto{
User_Id: d.User_Id,
Person_Id: d.Person_Id,
Position_Code: d.Position_Code,
Division_Code: d.Division_Code,
Division: d.Division,
Number: d.Number,
Status_Code: d.Status_Code,
}
resp.Main = d.Main
return resp
}
func ToResponseList(data []Employee) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -0,0 +1,18 @@
package employee
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ed "simrs-vx/internal/domain/main-entities/division"
erc "simrs-vx/internal/domain/references/common"
)
type Employee struct {
ecore.Main // adjust this according to the needs
User_Id *uint `json:"user_id"`
Person_Id *uint `json:"person_id"`
Position_Code erc.EmployeePosisitionCode `json:"position_code" gorm:"not null;size:20"`
Division_Code *string `json:"division_code"`
Division *ed.Division `json:"division,omitempty" gorm:"foreignKey:Division_Code;references:Code"`
Number *string `json:"number" gorm:"size:20"`
Status_Code erc.StatusCode `json:"status_code" gorm:"not null;size:10"`
}
@@ -0,0 +1,63 @@
package infragroup
import (
ecore "simrs-vx/internal/domain/base-entities/core"
)
type CreateDto struct {
Code string `json:"code"`
Name string `json:"name"`
}
type ReadListDto struct {
Code string `json:"code"`
Name string `json:"name"`
Page int `json:"page"`
PageSize int `json:"page_size"`
NoPagination int `json:"no_pagination"`
}
type ReadDetailDto struct {
Id uint16 `json:"id"`
Code string `json:"code"`
Name string `json:"name"`
}
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
Code string `json:"code"`
Name string `json:"name"`
}
func (d InfraGroup) ToResponse() ResponseDto {
resp := ResponseDto{
Code: d.Code,
Name: d.Name,
}
resp.Main = d.Main
return resp
}
func ToResponseList(data []InfraGroup) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -0,0 +1,11 @@
package infragroup
import (
ecore "simrs-vx/internal/domain/base-entities/core"
)
type InfraGroup struct {
ecore.Main // adjust this according to the needs
Code string `json:"code" gorm:"unique;size:50"`
Name string `json:"name" gorm:"size:100"`
}
@@ -50,19 +50,19 @@ type ResponseDto struct {
EncounterClass_Code ere.EncounterClass `json:"encounterClass_code"`
}
func (i Installation) ToResponse() ResponseDto {
func (d Installation) ToResponse() ResponseDto {
resp := ResponseDto{
Code: i.Code,
Name: i.Name,
EncounterClass_Code: i.EncounterClass_Code,
Code: d.Code,
Name: d.Name,
EncounterClass_Code: d.EncounterClass_Code,
}
resp.SmallMain = i.SmallMain
resp.SmallMain = d.SmallMain
return resp
}
func ToResponseList(users []Installation) []ResponseDto {
resp := make([]ResponseDto, len(users))
for i, u := range users {
func ToResponseList(data []Installation) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
@@ -0,0 +1,63 @@
package itemgroup
import (
ecore "simrs-vx/internal/domain/base-entities/core"
)
type CreateDto struct {
Code string `json:"code"`
Name string `json:"name"`
}
type ReadListDto struct {
Code string `json:"code"`
Name string `json:"name"`
Page int `json:"page"`
PageSize int `json:"page_size"`
NoPagination int `json:"no_pagination"`
}
type ReadDetailDto struct {
Id uint16 `json:"id"`
Code string `json:"code"`
Name string `json:"name"`
}
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
Code string `json:"code"`
Name string `json:"name"`
}
func (d ItemGroup) ToResponse() ResponseDto {
resp := ResponseDto{
Code: d.Code,
Name: d.Name,
}
resp.Main = d.Main
return resp
}
func ToResponseList(data []ItemGroup) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -0,0 +1,11 @@
package itemgroup
import (
ecore "simrs-vx/internal/domain/base-entities/core"
)
type ItemGroup struct {
ecore.Main // adjust this according to the needs
Code string `json:"code" gorm:"unique;size:50"`
Name string `json:"name" gorm:"size:100"`
}
@@ -0,0 +1,66 @@
package nurse
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ee "simrs-vx/internal/domain/main-entities/employee"
)
type CreateDto struct {
Employee_Id *uint `json:"employee_id"`
IHS_Number *string `json:"ihs_number"`
}
type ReadListDto struct {
Employee_Id *uint `json:"employee_id"`
IHS_Number *string `json:"ihs_number"`
Page int `json:"page"`
PageSize int `json:"page_size"`
NoPagination int `json:"no_pagination"`
}
type ReadDetailDto struct {
Id uint16 `json:"id"`
Employee_Id *uint `json:"employee_id"`
IHS_Number *string `json:"ihs_number"`
}
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
Employee_Id *uint `json:"employee_id"`
Employee *ee.Employee `json:"employee,omitempty"`
IHS_Number *string `json:"ihs_number"`
}
func (d Nurse) ToResponse() ResponseDto {
resp := ResponseDto{
Employee_Id: d.Employee_Id,
Employee: d.Employee,
IHS_Number: d.IHS_Number,
}
resp.Main = d.Main
return resp
}
func ToResponseList(data []Nurse) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -0,0 +1,13 @@
package nurse
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ee "simrs-vx/internal/domain/main-entities/employee"
)
type Nurse struct {
ecore.Main // adjust this according to the needs
Employee_Id *uint `json:"employee_id"`
Employee *ee.Employee `json:"employee,omitempty" gorm:"foreignKey:Employee_Id;references:Id"`
IHS_Number *string `json:"ihs_number" gorm:"size:20"`
}
@@ -0,0 +1,66 @@
package nutritionist
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ee "simrs-vx/internal/domain/main-entities/employee"
)
type CreateDto struct {
Employee_Id *uint `json:"employee_id"`
IHS_Number *string `json:"ihs_number"`
}
type ReadListDto struct {
Employee_Id *uint `json:"employee_id"`
IHS_Number *string `json:"ihs_number"`
Page int `json:"page"`
PageSize int `json:"page_size"`
NoPagination int `json:"no_pagination"`
}
type ReadDetailDto struct {
Id uint16 `json:"id"`
Employee_Id *uint `json:"employee_id"`
IHS_Number *string `json:"ihs_number"`
}
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
Employee_Id *uint `json:"employee_id"`
Employee *ee.Employee `json:"employee,omitempty"`
IHS_Number *string `json:"ihs_number"`
}
func (d Nutritionist) ToResponse() ResponseDto {
resp := ResponseDto{
Employee_Id: d.Employee_Id,
Employee: d.Employee,
IHS_Number: d.IHS_Number,
}
resp.Main = d.Main
return resp
}
func ToResponseList(data []Nutritionist) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -0,0 +1,13 @@
package nutritionist
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ee "simrs-vx/internal/domain/main-entities/employee"
)
type Nutritionist struct {
ecore.Main // adjust this according to the needs
Employee_Id *uint `json:"employee_id"`
Employee *ee.Employee `json:"employee,omitempty" gorm:"foreignKey:Employee_Id;references:Id"`
IHS_Number *string `json:"ihs_number" gorm:"size:20"`
}
@@ -63,9 +63,9 @@ func (d PersonAddress) ToResponse() ResponseDto {
return resp
}
func ToResponseList(users []PersonAddress) []ResponseDto {
resp := make([]ResponseDto, len(users))
for i, u := range users {
func ToResponseList(data []PersonAddress) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
@@ -46,19 +46,19 @@ type ResponseDto struct {
Value string `json:"value"`
}
func (u *PersonContact) ToResponse() ResponseDto {
func (d *PersonContact) ToResponse() ResponseDto {
resp := ResponseDto{
Person_Id: u.Person_Id,
Type_Code: u.Type_Code,
Value: u.Value,
Person_Id: d.Person_Id,
Type_Code: d.Type_Code,
Value: d.Value,
}
resp.Main = u.Main
resp.Main = d.Main
return resp
}
func ToResponseList(users []PersonContact) []ResponseDto {
resp := make([]ResponseDto, len(users))
for i, u := range users {
func ToResponseList(data []PersonContact) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
+17 -17
View File
@@ -72,28 +72,28 @@ type ResponseDto struct {
Contacts *[]epc.PersonContact `json:"contacts,omitempty"`
}
func (u *Person) ToResponse() ResponseDto {
func (d *Person) ToResponse() ResponseDto {
resp := ResponseDto{
Name: u.Name,
BirthDate: u.BirthDate,
BirthRegency_Code: u.BirthRegency_Code,
Gender_Code: u.Gender_Code,
ResidentIdentityNumber: u.ResidentIdentityNumber,
Religion_Code: u.Religion_Code,
Education_Code: u.Education_Code,
Ocupation_Code: u.Ocupation_Code,
Ocupation_Name: u.Ocupation_Name,
Ethnic_Code: u.Ethnic_Code,
Addresses: u.Addresses,
Contacts: u.Contacts,
Name: d.Name,
BirthDate: d.BirthDate,
BirthRegency_Code: d.BirthRegency_Code,
Gender_Code: d.Gender_Code,
ResidentIdentityNumber: d.ResidentIdentityNumber,
Religion_Code: d.Religion_Code,
Education_Code: d.Education_Code,
Ocupation_Code: d.Ocupation_Code,
Ocupation_Name: d.Ocupation_Name,
Ethnic_Code: d.Ethnic_Code,
Addresses: d.Addresses,
Contacts: d.Contacts,
}
resp.Main = u.Main
resp.Main = d.Main
return resp
}
func ToResponseList(users []Person) []ResponseDto {
resp := make([]ResponseDto, len(users))
for i, u := range users {
func ToResponseList(data []Person) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
@@ -0,0 +1,66 @@
package pharmacist
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ee "simrs-vx/internal/domain/main-entities/employee"
)
type CreateDto struct {
Employee_Id *uint `json:"employee_id"`
IHS_Number *string `json:"ihs_number"`
}
type ReadListDto struct {
Employee_Id *uint `json:"employee_id"`
IHS_Number *string `json:"ihs_number"`
Page int `json:"page"`
PageSize int `json:"page_size"`
NoPagination int `json:"no_pagination"`
}
type ReadDetailDto struct {
Id uint16 `json:"id"`
Employee_Id *uint `json:"employee_id"`
IHS_Number *string `json:"ihs_number"`
}
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
Employee_Id *uint `json:"employee_id"`
Employee *ee.Employee `json:"employee,omitempty"`
IHS_Number *string `json:"ihs_number"`
}
func (d Pharmacist) ToResponse() ResponseDto {
resp := ResponseDto{
Employee_Id: d.Employee_Id,
Employee: d.Employee,
IHS_Number: d.IHS_Number,
}
resp.Main = d.Main
return resp
}
func ToResponseList(data []Pharmacist) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -0,0 +1,13 @@
package pharmacist
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ee "simrs-vx/internal/domain/main-entities/employee"
)
type Pharmacist struct {
ecore.Main // adjust this according to the needs
Employee_Id *uint `json:"employee_id"`
Employee *ee.Employee `json:"employee,omitempty" gorm:"foreignKey:Employee_Id;references:Id"`
IHS_Number *string `json:"ihs_number" gorm:"size:20"`
}
@@ -59,9 +59,9 @@ func (d PharmacyCompany) ToResponse() ResponseDto {
return resp
}
func ToResponseList(users []PharmacyCompany) []ResponseDto {
resp := make([]ResponseDto, len(users))
for i, u := range users {
func ToResponseList(data []PharmacyCompany) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
@@ -0,0 +1,79 @@
package practiceschedule
import (
ecore "simrs-vx/internal/domain/base-entities/core"
erx "simrs-vx/internal/domain/references/xtime"
)
type CreateDto struct {
Doctor_Id *uint `json:"doctor_id"`
Unit_Code *string `json:"unit_code"`
Day_Code *erx.DayCode `json:"day_code"`
StartTime *string `json:"start_time"`
EndTime *string `json:"end_time"`
}
type ReadListDto struct {
Doctor_Id *uint `json:"doctor_id"`
Unit_Code *string `json:"unit_code"`
Day_Code *erx.DayCode `json:"day_code"`
StartTime *string `json:"start_time"`
EndTime *string `json:"end_time"`
Page int `json:"page"`
PageSize int `json:"page_size"`
NoPagination int `json:"no_pagination"`
}
type ReadDetailDto struct {
Id uint16 `json:"id"`
Doctor_Id *uint `json:"doctor_id"`
Unit_Code *string `json:"unit_code"`
Day_Code *erx.DayCode `json:"day_code"`
StartTime *string `json:"start_time"`
EndTime *string `json:"end_time"`
}
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.Main
Doctor_Id *uint `json:"doctor_id"`
Unit_Code *string `json:"unit_code"`
Day_Code *erx.DayCode `json:"day_code"`
StartTime *string `json:"start_time"`
EndTime *string `json:"end_time"`
}
func (d PracticeSchedule) ToResponse() ResponseDto {
resp := ResponseDto{
Doctor_Id: d.Doctor_Id,
Unit_Code: d.Unit_Code,
Day_Code: d.Day_Code,
StartTime: d.StartTime,
EndTime: d.EndTime,
}
resp.Main = d.Main
return resp
}
func ToResponseList(data []PracticeSchedule) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -0,0 +1,19 @@
package practiceschedule
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ed "simrs-vx/internal/domain/main-entities/doctor"
eu "simrs-vx/internal/domain/main-entities/unit"
erx "simrs-vx/internal/domain/references/xtime"
)
type PracticeSchedule struct {
ecore.Main // adjust this according to the needs
Doctor_Id *uint `json:"doctor_id"`
Doctor *ed.Doctor `json:"doctor,omitempty" gorm:"foreignKey:Doctor_Id;references:Id"`
Unit_Code *string `json:"unit_code"`
Unit *eu.Unit `json:"unit,omitempty" gorm:"foreignKey:Unit_Code;references:Code"`
Day_Code *erx.DayCode `json:"day_code"`
StartTime *string `json:"start_time" gorm:"size:5"`
EndTime *string `json:"end_time" gorm:"size:5"`
}
@@ -59,9 +59,9 @@ func (d ProcedureSrc) ToResponse() ResponseDto {
return resp
}
func ToResponseList(users []ProcedureSrc) []ResponseDto {
resp := make([]ResponseDto, len(users))
for i, u := range users {
func ToResponseList(data []ProcedureSrc) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
@@ -50,9 +50,9 @@ func (d Province) ToResponse() ResponseDto {
return resp
}
func ToResponseList(users []Province) []ResponseDto {
resp := make([]ResponseDto, len(users))
for i, u := range users {
func ToResponseList(data []Province) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
+5 -5
View File
@@ -48,14 +48,14 @@ type ResponseDto struct {
Districts []*ed.District `json:"districts,omitempty"`
}
func (r Regency) ToResponse() ResponseDto {
resp := ResponseDto(r)
func (d Regency) ToResponse() ResponseDto {
resp := ResponseDto(d)
return resp
}
func ToResponseList(users []Regency) []ResponseDto {
resp := make([]ResponseDto, len(users))
for i, u := range users {
func ToResponseList(data []Regency) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
+10 -10
View File
@@ -51,22 +51,22 @@ type ResponseDto struct {
Name string `json:"name"`
}
func (u Unit) ToResponse() ResponseDto {
func (d Unit) ToResponse() ResponseDto {
resp := ResponseDto{
Installation_Id: u.Installation_Id,
Code: u.Code,
Name: u.Name,
Installation_Id: d.Installation_Id,
Code: d.Code,
Name: d.Name,
}
resp.SmallMain = u.SmallMain
if u.Installation != nil {
resp.Installation = u.Installation
resp.SmallMain = d.SmallMain
if d.Installation != nil {
resp.Installation = d.Installation
}
return resp
}
func ToResponseList(users []Unit) []ResponseDto {
resp := make([]ResponseDto, len(users))
for i, u := range users {
func ToResponseList(data []Unit) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
+10 -10
View File
@@ -56,21 +56,21 @@ type ResponseDto struct {
LastAllowdLogin *time.Time `json:"lastAllowdLogin,omitempty"`
}
func (u *User) ToResponse() ResponseDto {
func (d *User) ToResponse() ResponseDto {
resp := ResponseDto{
Name: u.Name,
Status_Code: u.Status_Code,
FailedLoginCount: u.FailedLoginCount,
LastSuccessLogin: u.LastSuccessLogin,
LastAllowdLogin: u.LastAllowdLogin,
Name: d.Name,
Status_Code: d.Status_Code,
FailedLoginCount: d.FailedLoginCount,
LastSuccessLogin: d.LastSuccessLogin,
LastAllowdLogin: d.LastAllowdLogin,
}
resp.Main = u.Main
resp.Main = d.Main
return resp
}
func ToResponseList(users []User) []ResponseDto {
resp := make([]ResponseDto, len(users))
for i, u := range users {
func ToResponseList(data []User) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
+5 -5
View File
@@ -45,14 +45,14 @@ type ResponseDto struct {
Name string `json:"name"`
}
func (v Village) ToResponse() ResponseDto {
resp := ResponseDto(v)
func (d Village) ToResponse() ResponseDto {
resp := ResponseDto(d)
return resp
}
func ToResponseList(users []Village) []ResponseDto {
resp := make([]ResponseDto, len(users))
for i, u := range users {
func ToResponseList(data []Village) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
+18 -6
View File
@@ -1,12 +1,13 @@
package common
type (
YaTidakCode byte
SudahBelumCode byte
AktifSimpelCode byte
AktifAdvanceCode byte
TersediaCode byte
StatusCode string
YaTidakCode byte
SudahBelumCode byte
AktifSimpelCode byte
AktifAdvanceCode byte
TersediaCode byte
StatusCode string
EmployeePosisitionCode string
)
const (
@@ -41,3 +42,14 @@ const (
SCBlocked StatusCode = "blocked"
SCSuspended StatusCode = "suspended"
)
const (
EPCDoc EmployeePosisitionCode = "doctor"
EPCNur EmployeePosisitionCode = "nurse"
EPCNut EmployeePosisitionCode = "nutritionist"
EPCLab EmployeePosisitionCode = "laborant"
EPCPha EmployeePosisitionCode = "pharmacy"
EPCPay EmployeePosisitionCode = "payment"
EPCPav EmployeePosisitionCode = "payment-verificator"
EPCMan EmployeePosisitionCode = "management"
)
+18
View File
@@ -5,15 +5,24 @@ import (
"io"
"os"
"os/exec"
counter "simrs-vx/internal/domain/main-entities/counter"
diagnosesrc "simrs-vx/internal/domain/main-entities/diagnose-src"
district "simrs-vx/internal/domain/main-entities/district"
division "simrs-vx/internal/domain/main-entities/division"
divisionposition "simrs-vx/internal/domain/main-entities/division-position"
doctor "simrs-vx/internal/domain/main-entities/doctor"
employee "simrs-vx/internal/domain/main-entities/employee"
infragroup "simrs-vx/internal/domain/main-entities/infra-group"
installation "simrs-vx/internal/domain/main-entities/installation"
itemgroup "simrs-vx/internal/domain/main-entities/item-group"
nurse "simrs-vx/internal/domain/main-entities/nurse"
nutritionist "simrs-vx/internal/domain/main-entities/nutritionist"
person "simrs-vx/internal/domain/main-entities/person"
personaddress "simrs-vx/internal/domain/main-entities/person-address"
personcontact "simrs-vx/internal/domain/main-entities/person-contact"
pharmacist "simrs-vx/internal/domain/main-entities/pharmacist"
pharmacycompany "simrs-vx/internal/domain/main-entities/pharmacy-company"
practiceschedule "simrs-vx/internal/domain/main-entities/practice-schedule"
proceduresrc "simrs-vx/internal/domain/main-entities/procedure-src"
province "simrs-vx/internal/domain/main-entities/province"
regency "simrs-vx/internal/domain/main-entities/regency"
@@ -69,6 +78,15 @@ func GetEntities() []any {
&pharmacycompany.PharmacyCompany{},
&diagnosesrc.DiagnoseSrc{},
&proceduresrc.ProcedureSrc{},
&infragroup.InfraGroup{},
&employee.Employee{},
&itemgroup.ItemGroup{},
&doctor.Doctor{},
&nurse.Nurse{},
&nutritionist.Nutritionist{},
&pharmacist.Pharmacist{},
&counter.Counter{},
&practiceschedule.PracticeSchedule{},
}
}