removes ids on doctor,nurse,specialist-intern
This commit is contained in:
@@ -0,0 +1,8 @@
|
|||||||
|
-- Modify "Prescription" table
|
||||||
|
ALTER TABLE "public"."Prescription" ADD COLUMN "Doctor_Code" character varying(20) NULL;
|
||||||
|
-- Modify "Doctor" table
|
||||||
|
ALTER TABLE "public"."Doctor" DROP CONSTRAINT "fk_Doctor_Specialist", DROP CONSTRAINT "fk_Doctor_Subspecialist", DROP CONSTRAINT "fk_Doctor_Unit", DROP COLUMN "Unit_Id", DROP COLUMN "Specialist_Id", DROP COLUMN "Subspecialist_Id", ADD CONSTRAINT "fk_Doctor_Specialist" FOREIGN KEY ("Specialist_Code") REFERENCES "public"."Specialist" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION, ADD CONSTRAINT "fk_Doctor_Subspecialist" FOREIGN KEY ("Subspecialist_Code") REFERENCES "public"."Subspecialist" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION, ADD CONSTRAINT "fk_Doctor_Unit" FOREIGN KEY ("Unit_Code") REFERENCES "public"."Unit" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION;
|
||||||
|
-- Modify "Nurse" table
|
||||||
|
ALTER TABLE "public"."Nurse" DROP CONSTRAINT "fk_Nurse_Infra", DROP CONSTRAINT "fk_Nurse_Unit", DROP COLUMN "Unit_Id", DROP COLUMN "Infra_Id", ADD CONSTRAINT "fk_Nurse_Infra" FOREIGN KEY ("Infra_Code") REFERENCES "public"."Infra" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION, ADD CONSTRAINT "fk_Nurse_Unit" FOREIGN KEY ("Unit_Code") REFERENCES "public"."Unit" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION;
|
||||||
|
-- Modify "SpecialistIntern" table
|
||||||
|
ALTER TABLE "public"."SpecialistIntern" DROP CONSTRAINT "fk_SpecialistIntern_Specialist", DROP CONSTRAINT "fk_SpecialistIntern_Subspecialist", DROP COLUMN "Specialist_Id", DROP COLUMN "Subspecialist_Id", ADD CONSTRAINT "fk_SpecialistIntern_Specialist" FOREIGN KEY ("Specialist_Code") REFERENCES "public"."Specialist" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION, ADD CONSTRAINT "fk_SpecialistIntern_Subspecialist" FOREIGN KEY ("Subspecialist_Code") REFERENCES "public"."Subspecialist" ("Code") ON UPDATE NO ACTION ON DELETE NO ACTION;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
h1:Ke31uEMAxNobMdza6/1rFlWnbE7Z1dHVAAfRi+oXi4E=
|
h1:97IUzyfSecffgKmYYs+a+HW5thHnIY3OuWDTQYy3hGQ=
|
||||||
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=
|
||||||
@@ -74,4 +74,5 @@ h1:Ke31uEMAxNobMdza6/1rFlWnbE7Z1dHVAAfRi+oXi4E=
|
|||||||
20251106035305.sql h1:oQ7BwnxPuwY2q98adIVc+lNwL/Sz1OceLJeClDo9/TI=
|
20251106035305.sql h1:oQ7BwnxPuwY2q98adIVc+lNwL/Sz1OceLJeClDo9/TI=
|
||||||
20251106040137.sql h1:ppcqkVoT0o9jZcjI/TN7LuaPxXhJQhnIXEJtloP/46o=
|
20251106040137.sql h1:ppcqkVoT0o9jZcjI/TN7LuaPxXhJQhnIXEJtloP/46o=
|
||||||
20251106041333.sql h1:2JkxyelQ/EeB+boL5bfpnzefw32ttEGKvKchtQjWmAU=
|
20251106041333.sql h1:2JkxyelQ/EeB+boL5bfpnzefw32ttEGKvKchtQjWmAU=
|
||||||
20251106042006.sql h1:sVi3ilQnUapkKBzNi/z495eK4ivCF9ssU/D3oEldokM=
|
20251106042006.sql h1:ruppYa1kAJQUU3ufQBbKGMcXrGbGJJiRPclT+dNc/YQ=
|
||||||
|
20251106050412.sql h1:MiEMJ1HCFYnalKuq3Z38xJeogfBAMqsTv2sG4EF8dDw=
|
||||||
|
|||||||
@@ -10,21 +10,17 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Doctor struct {
|
type Doctor struct {
|
||||||
ecore.Main // adjust this according to the needs
|
ecore.Main // adjust this according to the needs
|
||||||
Code *string `json:"code" gorm:"unique;size:20"`
|
Code *string `json:"code" gorm:"unique;size:20"`
|
||||||
Employee_Id *uint `json:"employee_id"`
|
Employee_Id *uint `json:"employee_id"`
|
||||||
Employee *ee.Employee `json:"employee,omitempty" gorm:"foreignKey:Employee_Id;references:Id"`
|
Employee *ee.Employee `json:"employee,omitempty" gorm:"foreignKey:Employee_Id;references:Id"`
|
||||||
IHS_Number *string `json:"ihs_number" gorm:"unique;size:20"`
|
IHS_Number *string `json:"ihs_number" gorm:"unique;size:20"`
|
||||||
SIP_Number *string `json:"sip_number" gorm:"unique;size:20"`
|
SIP_Number *string `json:"sip_number" gorm:"unique;size:20"`
|
||||||
SIP_ExpiredDate *time.Time `json:"sip_expiredDate"`
|
SIP_ExpiredDate *time.Time `json:"sip_expiredDate"`
|
||||||
Unit_Id *uint16 `json:"unit_id"`
|
Unit_Code *string `json:"unit_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"`
|
||||||
Unit *eu.Unit `json:"unit,omitempty" gorm:"foreignKey:Unit_Id;references:Id"`
|
|
||||||
// Unit *eu.Unit `json:"unit,omitempty" gorm:"foreignKey:Unit_Code;references:Code"`
|
|
||||||
Specialist_Id *uint16 `json:"specialist_id"`
|
|
||||||
Specialist_Code *string `json:"specialist_code" gorm:"size:10"`
|
Specialist_Code *string `json:"specialist_code" gorm:"size:10"`
|
||||||
Specialist *es.Specialist `json:"specialist,omitempty" gorm:"foreignKey:Specialist_Id"`
|
Specialist *es.Specialist `json:"specialist,omitempty" gorm:"foreignKey:Specialist_Code;references:Code"`
|
||||||
Subspecialist_Id *uint16 `json:"subspecialist_id"`
|
|
||||||
Subspecialist_Code *string `json:"subspecialist_code" gorm:"size:10"`
|
Subspecialist_Code *string `json:"subspecialist_code" gorm:"size:10"`
|
||||||
Subspecialist *ess.Subspecialist `json:"subspecialist,omitempty" gorm:"foreignKey:Subspecialist_Id"`
|
Subspecialist *ess.Subspecialist `json:"subspecialist,omitempty" gorm:"foreignKey:Subspecialist_Code;references:Code"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ type Prescription struct {
|
|||||||
Encounter_Id *uint `json:"encounter_id"`
|
Encounter_Id *uint `json:"encounter_id"`
|
||||||
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_Id *uint `json:"doctor_id"`
|
Doctor_Id *uint `json:"doctor_id"`
|
||||||
|
Doctor_Code *string `json:"doctor_code" gorm:"size:20"`
|
||||||
Doctor *ed.Doctor `json:"doctor,omitempty" gorm:"foreignKey:Doctor_Id;references:Id"`
|
Doctor *ed.Doctor `json:"doctor,omitempty" gorm:"foreignKey:Doctor_Id;references:Id"`
|
||||||
IssuedAt *time.Time `json:"issuedAt"`
|
IssuedAt *time.Time `json:"issuedAt"`
|
||||||
Status_Code erc.DataStatusCode `json:"status_code"`
|
Status_Code erc.DataStatusCode `json:"status_code"`
|
||||||
|
|||||||
@@ -12,12 +12,10 @@ type SpecialistIntern struct {
|
|||||||
ecore.Main // adjust this according to the needs
|
ecore.Main // adjust this according to the needs
|
||||||
Person_Id *uint `json:"person_id"`
|
Person_Id *uint `json:"person_id"`
|
||||||
Person *ep.Person `json:"person,omitempty" gorm:"foreignKey:Person_Id"`
|
Person *ep.Person `json:"person,omitempty" gorm:"foreignKey:Person_Id"`
|
||||||
Specialist_Id *uint16 `json:"specialist_id"`
|
|
||||||
Specialist_Code *string `json:"specialist_code" gorm:"size:10"`
|
Specialist_Code *string `json:"specialist_code" gorm:"size:10"`
|
||||||
Specialist *es.Specialist `json:"specialist,omitempty" gorm:"foreignKey:Specialist_Id"`
|
Specialist *es.Specialist `json:"specialist,omitempty" gorm:"foreignKey:Specialist_Code;references:Code"`
|
||||||
Subspecialist_Id *uint16 `json:"subspecialist_id"`
|
|
||||||
Subspecialist_Code *string `json:"subspecialist_code" gorm:"size:10"`
|
Subspecialist_Code *string `json:"subspecialist_code" gorm:"size:10"`
|
||||||
Subspecialist *ess.Subspecialist `json:"subspecialist,omitempty" gorm:"foreignKey:Subspecialist_Id"`
|
Subspecialist *ess.Subspecialist `json:"subspecialist,omitempty" gorm:"foreignKey:Subspecialist_Code;references:Code"`
|
||||||
User_Id *uint `json:"user_id"`
|
User_Id *uint `json:"user_id"`
|
||||||
User *eu.User `json:"user,omitempty" gorm:"foreignKey:User_Id"`
|
User *eu.User `json:"user,omitempty" gorm:"foreignKey:User_Id"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,12 +14,12 @@ type AuthInfo struct {
|
|||||||
User_ContractPosition_code string
|
User_ContractPosition_code string
|
||||||
Employee_Position_Code *string
|
Employee_Position_Code *string
|
||||||
Employee_Id *uint
|
Employee_Id *uint
|
||||||
Doctor_Id *uint
|
Doctor_Code *string
|
||||||
Nurse_Id *uint
|
Nurse_Code *string
|
||||||
Midwife_Id *uint
|
Midwife_Code *string
|
||||||
Nutritionist_Id *uint
|
Nutritionist_Code *string
|
||||||
Laborant_Id *uint
|
Laborant_Code *string
|
||||||
Pharmachist_Id *uint
|
Pharmachist_Code *string
|
||||||
Intern_Position_Code *string
|
Intern_Position_Code *string
|
||||||
Roles []string
|
Roles []string
|
||||||
// User_DivisionPositions []DivisionPosition
|
// User_DivisionPositions []DivisionPosition
|
||||||
|
|||||||
@@ -136,17 +136,17 @@ func GenToken(input eu.LoginDto) (*d.Data, error) {
|
|||||||
if doctor.Id == 0 {
|
if doctor.Id == 0 {
|
||||||
return nil, d.FieldErrors{"authentication": d.FieldError{Code: "auth-noDoctor", Message: el.GenMessage("auth-noDoctor")}}
|
return nil, d.FieldErrors{"authentication": d.FieldError{Code: "auth-noDoctor", Message: el.GenMessage("auth-noDoctor")}}
|
||||||
}
|
}
|
||||||
atClaims["doctor_id"] = doctor.Id
|
atClaims["doctor_code"] = doctor.Code
|
||||||
outputData["doctor_id"] = doctor.Id
|
outputData["doctor_code"] = doctor.Code
|
||||||
|
|
||||||
// specialist
|
// specialist
|
||||||
if doctor.Specialist_Id != nil {
|
if doctor.Specialist_Code != nil {
|
||||||
atClaims["specialist_id"] = doctor.Specialist_Id
|
atClaims["specialist_code"] = doctor.Specialist_Code
|
||||||
outputData["specialist_id"] = doctor.Specialist_Id
|
outputData["specialist_code"] = doctor.Specialist_Code
|
||||||
}
|
}
|
||||||
if doctor.Subspecialist_Id != nil {
|
if doctor.Subspecialist_Code != nil {
|
||||||
atClaims["subspecialist_id"] = doctor.Subspecialist_Id
|
atClaims["subspecialist_code"] = doctor.Subspecialist_Code
|
||||||
outputData["subspecialist_id"] = doctor.Subspecialist_Id
|
outputData["subspecialist_code"] = doctor.Subspecialist_Code
|
||||||
}
|
}
|
||||||
case erg.EPCNur:
|
case erg.EPCNur:
|
||||||
empData := en.Nurse{}
|
empData := en.Nurse{}
|
||||||
@@ -154,16 +154,16 @@ func GenToken(input eu.LoginDto) (*d.Data, error) {
|
|||||||
if empData.Id == 0 {
|
if empData.Id == 0 {
|
||||||
return nil, d.FieldErrors{"authentication": d.FieldError{Code: "auth-noNurse", Message: el.GenMessage("auth-noNurse")}}
|
return nil, d.FieldErrors{"authentication": d.FieldError{Code: "auth-noNurse", Message: el.GenMessage("auth-noNurse")}}
|
||||||
}
|
}
|
||||||
atClaims["nurse_id"] = empData.Id
|
atClaims["nurse_code"] = empData.Code
|
||||||
outputData["nurse_id"] = empData.Id
|
outputData["nurse_code"] = empData.Code
|
||||||
case erg.EPCMwi:
|
case erg.EPCMwi:
|
||||||
empData := em.Midwife{}
|
empData := em.Midwife{}
|
||||||
dg.I.Where("\"Employee_Id\" = ?", employee.Id).First(&empData)
|
dg.I.Where("\"Employee_Id\" = ?", employee.Id).First(&empData)
|
||||||
if empData.Id == 0 {
|
if empData.Id == 0 {
|
||||||
return nil, d.FieldErrors{"authentication": d.FieldError{Code: "auth-noNurse", Message: el.GenMessage("auth-noNurse")}}
|
return nil, d.FieldErrors{"authentication": d.FieldError{Code: "auth-noMidwife", Message: el.GenMessage("auth-noMidwife")}}
|
||||||
}
|
}
|
||||||
atClaims["nurse_id"] = empData.Id
|
atClaims["midwife_code"] = empData.Code
|
||||||
outputData["nurse_id"] = empData.Id
|
outputData["midwife_code"] = empData.Code
|
||||||
}
|
}
|
||||||
|
|
||||||
errorGetPosition := d.FieldErrors{"authentication": d.FieldError{Code: "auth-getData-failed", Message: el.GenMessage("auth-getData-failed")}}
|
errorGetPosition := d.FieldErrors{"authentication": d.FieldError{Code: "auth-getData-failed", Message: el.GenMessage("auth-getData-failed")}}
|
||||||
@@ -308,12 +308,12 @@ func ExtractToken(r *http.Request, tokenType TokenType) (data *pa.AuthInfo, err
|
|||||||
|
|
||||||
data.User_ContractPosition_code = checkStrClaims(claims, "contractPosition_code")
|
data.User_ContractPosition_code = checkStrClaims(claims, "contractPosition_code")
|
||||||
data.Employee_Position_Code = checkStrPtrClaims(claims, "employee_position_code")
|
data.Employee_Position_Code = checkStrPtrClaims(claims, "employee_position_code")
|
||||||
data.Doctor_Id = checkUntPtrClaims(claims, "doctor_id")
|
data.Doctor_Code = checkStrPtrClaims(claims, "doctor_string")
|
||||||
data.Nurse_Id = checkUntPtrClaims(claims, "nurse_id")
|
data.Nurse_Code = checkStrPtrClaims(claims, "nurse_string")
|
||||||
data.Midwife_Id = checkUntPtrClaims(claims, "midwife_id")
|
data.Midwife_Code = checkStrPtrClaims(claims, "midwife_string")
|
||||||
data.Nutritionist_Id = checkUntPtrClaims(claims, "nutritionist_id")
|
data.Nutritionist_Code = checkStrPtrClaims(claims, "nutritionist_string")
|
||||||
data.Laborant_Id = checkUntPtrClaims(claims, "laborant_id")
|
data.Laborant_Code = checkStrPtrClaims(claims, "laborant_string")
|
||||||
data.Pharmachist_Id = checkUntPtrClaims(claims, "pharmachist_id")
|
data.Pharmachist_Code = checkStrPtrClaims(claims, "pharmachist_string")
|
||||||
data.Intern_Position_Code = checkStrPtrClaims(claims, "intern_position_code")
|
data.Intern_Position_Code = checkStrPtrClaims(claims, "intern_position_code")
|
||||||
data.Employee_Id = checkUntPtrClaims(claims, "employee_id")
|
data.Employee_Id = checkUntPtrClaims(claims, "employee_id")
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ import (
|
|||||||
// std
|
// std
|
||||||
"errors"
|
"errors"
|
||||||
ere "simrs-vx/internal/domain/references/encounter"
|
ere "simrs-vx/internal/domain/references/encounter"
|
||||||
|
|
||||||
// external
|
// external
|
||||||
dg "github.com/karincake/apem/db-gorm-pg"
|
dg "github.com/karincake/apem/db-gorm-pg"
|
||||||
gh "github.com/karincake/getuk"
|
gh "github.com/karincake/getuk"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
|
|
||||||
// pkg
|
// pkg
|
||||||
plh "simrs-vx/pkg/lib-helper"
|
plh "simrs-vx/pkg/lib-helper"
|
||||||
pl "simrs-vx/pkg/logger"
|
pl "simrs-vx/pkg/logger"
|
||||||
@@ -56,8 +58,8 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.En
|
|||||||
}
|
}
|
||||||
tx = tx.Model(&e.Encounter{})
|
tx = tx.Model(&e.Encounter{})
|
||||||
|
|
||||||
if input.AuthInfo.Doctor_Id != nil {
|
if input.AuthInfo.Doctor_Code != nil {
|
||||||
tx.Where("\"Responsible_Doctor_Id\" = ?", *input.AuthInfo.Doctor_Id)
|
tx.Where("\"Responsible_Doctor_Id\" = ?", *input.AuthInfo.Doctor_Code) // TODO: fix this
|
||||||
}
|
}
|
||||||
|
|
||||||
tx.Scopes(gh.Preload(input.Includes)).
|
tx.Scopes(gh.Preload(input.Includes)).
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Prescription) {
|
|||||||
|
|
||||||
data.Encounter_Id = inputSrc.Encounter_Id
|
data.Encounter_Id = inputSrc.Encounter_Id
|
||||||
// data.Doctor_Id = inputSrc.Doctor_Id
|
// data.Doctor_Id = inputSrc.Doctor_Id
|
||||||
data.Doctor_Id = inputSrc.AuthInfo.Doctor_Id
|
data.Doctor_Code = inputSrc.AuthInfo.Doctor_Code
|
||||||
data.IssuedAt = inputSrc.IssuedAt
|
data.IssuedAt = inputSrc.IssuedAt
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user