several tables ids into codes

This commit is contained in:
dpurbosakti
2025-11-10 12:29:58 +07:00
parent 36cdf685e1
commit 3c7b35ef04
11 changed files with 65 additions and 34 deletions
@@ -0,0 +1,14 @@
-- Modify "Consultation" table
ALTER TABLE "public"."Consultation" ADD COLUMN "DstUnit_Code" text NULL, ADD COLUMN "DstDoctor_Code" text NULL;
-- Modify "ControlLetter" table
ALTER TABLE "public"."ControlLetter" ADD COLUMN "Unit_Code" text NULL, ADD COLUMN "Specialist_Code" text NULL, ADD COLUMN "Subspecialist_Code" text NULL, ADD COLUMN "Doctor_Code" text NULL;
-- Modify "Encounter" table
ALTER TABLE "public"."Encounter" ADD COLUMN "Specialist_Code" text NULL, ADD COLUMN "Subspecialist_Code" text NULL, ADD COLUMN "Appointment_Doctor_Code" text NULL, ADD COLUMN "Responsible_Doctor_Code" text NULL;
-- Modify "InternalReference" table
ALTER TABLE "public"."InternalReference" ADD COLUMN "Unit_Code" text NULL, ADD COLUMN "Doctor_Code" text NULL;
-- Modify "PracticeSchedule" table
ALTER TABLE "public"."PracticeSchedule" ADD COLUMN "Doctor_Code" text NULL;
-- Modify "ResponsibleDoctorHist" table
ALTER TABLE "public"."ResponsibleDoctorHist" ADD COLUMN "Doctor_Code" text NULL;
-- Modify "TherapyProtocol" table
ALTER TABLE "public"."TherapyProtocol" ADD COLUMN "Doctor_Code" text NULL;
+2 -1
View File
@@ -1,4 +1,4 @@
h1:nxld1x0gKb2nqU+0YPNq5FaAhodpZwnaSuBWyZrPO+0=
h1:O5HiMUpKZtVkRc3VxZfFYuLYjUJhPepU5bMnO87FdPI=
20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k=
20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0=
20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI=
@@ -97,3 +97,4 @@ h1:nxld1x0gKb2nqU+0YPNq5FaAhodpZwnaSuBWyZrPO+0=
20251107091541.sql h1:6UqbhQQRmzA2+eKu5lIvkwOkk+lH70QLZC8Pjpjcq68=
20251110012217.sql h1:C9HpX0iyHzKjyNv/5DSAn2MCHj6MX4p5UQ/NrY7QD0w=
20251110012306.sql h1:J54yb27d30LBbYp9n1P66gFVRlxPguKu0kxmWIBBG8g=
20251110052049.sql h1:1LkEGCWPe04T3D8F3VMnBP8eJgskrvCggsybNxJ7GuU=
@@ -15,11 +15,13 @@ type Consultation struct {
Encounter *ee.Encounter `json:"encounter" gorm:"foreignKey:Encounter_Id;references:Id"`
Date *time.Time `json:"date"`
Problem *string `json:"case" gorm:"size:10240"`
Solution *string `json:"solution" gorm:"size:10240"`
DstUnit_Id *uint `json:"dstUnit_id"`
DstUnit *eu.Unit `json:"dstUnit" gorm:"foreignKey:DstUnit_Id;references:Id"`
DstDoctor_Id *uint `json:"dstDoctor_id"`
DstDoctor *ed.Doctor `json:"dstDoctor" gorm:"foreignKey:DstDoctor_Id;references:Id"`
RepliedAt *time.Time `json:"repliedAt"`
Problem *string `json:"case" gorm:"size:10240"`
Solution *string `json:"solution" gorm:"size:10240"`
DstUnit_Id *uint `json:"dstUnit_id"`
DstUnit_Code *string `json:"dstUnit_code"`
DstUnit *eu.Unit `json:"dstUnit" gorm:"foreignKey:DstUnit_Id;references:Id"`
DstDoctor_Id *uint `json:"dstDoctor_id"`
DstDoctor_Code *string `json:"dstDoctor_code"`
DstDoctor *ed.Doctor `json:"dstDoctor" gorm:"foreignKey:DstDoctor_Id;references:Id"`
RepliedAt *time.Time `json:"repliedAt"`
}
@@ -12,16 +12,20 @@ import (
)
type ControlLetter struct {
ecore.Main // adjust this according to the needs
Encounter_Id *uint `json:"encounter_id"`
Encounter *ee.Encounter `json:"encounter" gorm:"foreignKey:Encounter_Id;references:Id"`
Unit_Id *uint `json:"unit_id"`
Unit *eu.Unit `json:"unit" gorm:"foreignKey:Unit_Id;references:Id"`
Specialist_Id *uint `json:"specialist_id"`
Specialist *es.Specialist `json:"specialist" gorm:"foreignKey:Specialist_Id;references:Id"`
Subspecialist_Id *uint `json:"subspecialist_id"`
Subspecialist *ess.Subspecialist `json:"subspecialist" gorm:"foreignKey:Subspecialist_Id;references:Id"`
Doctor_Id *uint `json:"doctor_id"`
Doctor *ed.Doctor `json:"doctor" gorm:"foreignKey:Doctor_Id;references:Id"`
Date *time.Time `json:"date"`
ecore.Main // adjust this according to the needs
Encounter_Id *uint `json:"encounter_id"`
Encounter *ee.Encounter `json:"encounter" gorm:"foreignKey:Encounter_Id;references:Id"`
Unit_Id *uint `json:"unit_id"`
Unit_Code *string `json:"unit_code"`
Unit *eu.Unit `json:"unit" gorm:"foreignKey:Unit_Id;references:Id"`
Specialist_Id *uint `json:"specialist_id"`
Specialist_Code *string `json:"specialist_code"`
Specialist *es.Specialist `json:"specialist" gorm:"foreignKey:Specialist_Id;references:Id"`
Subspecialist_Id *uint `json:"subspecialist_id"`
Subspecialist_Code *string `json:"subspecialist_code"`
Subspecialist *ess.Subspecialist `json:"subspecialist" gorm:"foreignKey:Subspecialist_Id;references:Id"`
Doctor_Id *uint `json:"doctor_id"`
Doctor_Code *string `json:"doctor_code"`
Doctor *ed.Doctor `json:"doctor" gorm:"foreignKey:Doctor_Id;references:Id"`
Date *time.Time `json:"date"`
}
@@ -32,9 +32,11 @@ type Encounter struct {
Unit_Id *uint `json:"unit_id"`
Unit *eu.Unit `json:"unit,omitempty" gorm:"foreignKey:Unit_Id;references:Id"`
Specialist_Id *uint16 `json:"specialist_id"`
Specialist_Code *string `json:"specialist_code"`
Specialist *es.Specialist `json:"specialist,omitempty" gorm:"foreignKey:Specialist_Id;references:Id"`
Subspecialist_Id *uint16 `json:"subspecialist_id"`
Subspecialist *ess.Subspecialist `json:"subspecialist,omitempty" gorm:"foreignKey:Subspecialist_Id;references:Id"`
Subspecialist_Code *string `json:"subspecialist_code"`
VisitDate time.Time `json:"visitDate"`
StartedAt *time.Time `json:"startedAt"`
FinishedAt *time.Time `json:"finishedAt"`
@@ -46,10 +48,12 @@ type Encounter struct {
Ref_Number *string `json:"refNumber" gorm:"unique;size:20"`
Trx_Number *string `json:"trxNumber" gorm:"unique;size:20"`
Appointment_Doctor_Id *uint `json:"appointment_doctor_id"`
Appointment_Doctor_Code *string `json:"appointment_doctor_code"`
Appointment_Doctor *ed.Doctor `json:"appointment_doctor,omitempty" gorm:"foreignKey:Appointment_Doctor_Id;references:Id"`
Adm_Employee_Id *uint `json:"adm_employee_id"`
Adm_Employee *ee.Employee `json:"adm_employee,omitempty" gorm:"foreignKey:Adm_Employee_Id;references:Id"`
Responsible_Doctor_Id *uint `json:"responsible_doctor_id"`
Responsible_Doctor_Code *string `json:"responsible_doctor_code"`
Responsible_Doctor *ed.Doctor `json:"responsible_doctor,omitempty" gorm:"foreignKey:Responsible_Doctor_Id;references:Id"`
Discharge_Method_Code *ere.DischargeMethodCode `json:"discharge_method_code" gorm:"size:16"`
RefSource_Name *string `json:"refSource_name" gorm:"size:100"`
@@ -12,8 +12,10 @@ type InternalReference struct {
ecore.Main
Encounter_Id *uint `json:"encounter_id"`
Unit_Id *uint16 `json:"unit_id"`
Unit_Code *string `json:"unit_code"`
Unit *eu.Unit `json:"unit,omitempty" gorm:"foreignKey:Unit_Id;references:Id"`
Doctor_Id *uint `json:"doctor_id"`
Doctor_Code *string `json:"doctor_code"`
Doctor *ed.Doctor `json:"doctor,omitempty" gorm:"foreignKey:Doctor_Id;references:Id"`
Status_Code *erc.DataApprovalCode `json:"status_code"`
}
@@ -8,12 +8,13 @@ import (
)
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 *erc.DayCode `json:"day_code"`
StartTime *string `json:"startTime" gorm:"size:5"`
EndTime *string `json:"endTime" gorm:"size:5"`
ecore.Main // adjust this according to the needs
Doctor_Id *uint `json:"doctor_id"`
Doctor_Code *string `json:"doctor_code"`
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 *erc.DayCode `json:"day_code"`
StartTime *string `json:"startTime" gorm:"size:5"`
EndTime *string `json:"endTime" gorm:"size:5"`
}
@@ -10,6 +10,7 @@ type ResponsibleDoctorHist struct {
ecore.Main // adjust this according to the needs
Encounter_Id *uint `json:"encounter_id"`
Doctor_Id *uint `json:"doctor_id"`
Doctor_Code *string `json:"doctor_code"`
Doctor *ed.Doctor `json:"doctor,omitempty" gorm:"foreignKey:Doctor_Id;references:Id"`
StartedAt *time.Time `json:"startedAt"`
FinishedAt *time.Time `json:"finishedAt"`
@@ -13,8 +13,9 @@ type TherapyProtocol struct {
Encounter_Id *uint `json:"encounter_id" gorm:"not null"`
Encounter *ee.Encounter `json:"encounter,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"`
Doctor_Id *uint `json:"doctor_id"`
Doctor *ed.Doctor `json:"doctor,omitempty" gorm:"foreignKey:Doctor_Id;references:Id"`
Doctor_Id *uint `json:"doctor_id"`
Doctor_Code *string `json:"doctor_code"`
Doctor *ed.Doctor `json:"doctor,omitempty" gorm:"foreignKey:Doctor_Id;references:Id"`
Anamnesis *string `json:"anamnesis" gorm:"size:2048"`
MedicalDiagnoses *string `json:"medicalDiagnoses"`
@@ -802,8 +802,8 @@ func ApproveSwitchUnit(input e.ApproveUnitDto) (*d.Data, error) {
// update data response
data.Responsible_Doctor_Id = irData.Doctor_Id
data.Unit = irData.Unit
data.Specialist_Id = irData.Doctor.Specialist_Id
data.Subspecialist_Id = irData.Doctor.Subspecialist_Id
data.Specialist_Code = irData.Doctor.Specialist_Code
data.Subspecialist_Code = irData.Doctor.Subspecialist_Code
pl.SetLogInfo(&event, nil, "complete")
return nil
@@ -4,6 +4,7 @@ import (
// std
"errors"
eir "simrs-vx/internal/domain/main-entities/internal-reference"
// external
dg "github.com/karincake/apem/db-gorm-pg"
gh "github.com/karincake/getuk"
@@ -333,8 +334,8 @@ func updateEncounterApproveSwitchUnit(input eir.InternalReference, event *pl.Eve
Updates(map[string]interface{}{
"Responsible_Doctor_Id": input.Doctor_Id,
"Unit_Id": input.Unit_Id,
"Specialist_Id": input.Doctor.Specialist_Id,
"Subspecialist_Id": input.Doctor.Subspecialist_Id,
"Specialist_Code": input.Doctor.Specialist_Code,
"Subspecialist_Code": input.Doctor.Subspecialist_Code,
}).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{