Merge pull request #41 from dikstub-rssa/fix/anything-moko

feat: improve error handling on create and add search for objects wit…
This commit is contained in:
Dwi Atmoko Purbo Sakti
2025-10-03 10:53:44 +07:00
committed by GitHub
105 changed files with 742 additions and 614 deletions
+2 -2
View File
@@ -27,8 +27,8 @@ go.work.sum
# env file
.env
config.yml
cmd/main-migration/atlas.hcl
cmd/satusehat-migration/atlas.hcl
**/atlas.hcl
!**/atlas.hcl.example
# Editor/IDE
# .idea/
@@ -0,0 +1,2 @@
-- Modify "Division" table
ALTER TABLE "public"."Division" ALTER COLUMN "Parent_Id" TYPE integer, ADD CONSTRAINT "fk_Division_Childrens" FOREIGN KEY ("Parent_Id") REFERENCES "public"."Division" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION;
@@ -0,0 +1,6 @@
-- Modify "Infra" table
ALTER TABLE "public"."Infra" ADD CONSTRAINT "fk_Infra_Childrens" FOREIGN KEY ("Parent_Id") REFERENCES "public"."Infra" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION;
-- Modify "DeviceOrder" table
ALTER TABLE "public"."DeviceOrder" ADD COLUMN "Doctor_Id" bigint NULL, ADD CONSTRAINT "fk_DeviceOrder_Doctor" FOREIGN KEY ("Doctor_Id") REFERENCES "public"."Doctor" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION;
-- Modify "MaterialOrder" table
ALTER TABLE "public"."MaterialOrder" ADD COLUMN "Doctor_Id" bigint NULL, ADD CONSTRAINT "fk_MaterialOrder_Doctor" FOREIGN KEY ("Doctor_Id") REFERENCES "public"."Doctor" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION;
+4 -2
View File
@@ -1,4 +1,4 @@
h1:X7LbOLpbDhciJ1O92KiWgnrVP60dDAyBKJqQKJnom+M=
h1:EkXfc/qeBa+6Fog89GGHEbrpjWfLwy/t6MQdrP9tImE=
20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k=
20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0=
20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI=
@@ -20,4 +20,6 @@ h1:X7LbOLpbDhciJ1O92KiWgnrVP60dDAyBKJqQKJnom+M=
20250929034321.sql h1:101FJ8VH12mrZWlt/X1gvKUGOhoiF8tFbjiapAjnHzg=
20250929034428.sql h1:i+pROD9p+g5dOmmZma6WF/0Hw5g3Ha28NN85iTo1K34=
20250930025550.sql h1:+F+CsCUXD/ql0tHGEow70GhPBX1ZybVn+bh/T4YMh7Y=
20250930140351.sql h1:aqXw0j09+xjFqemWlo0enw3tn/IT1FMxw3oUPljkjks=
20250930140351.sql h1:9AAEG1AnOAH+o0+oHL5G7I8vqlWOhwRlCGyyCpT/y1Q=
20251002085604.sql h1:3xZ68eYp4urXRnvotNH1XvG2mYOSDV/j3zHEZ/txg5E=
20251003032030.sql h1:hdN6UINPM9Pz9ME6uP3pr6PNCqqz4y7h2qY1UlVjw60=
+1 -1
View File
@@ -8,6 +8,7 @@ require (
ariga.io/atlas-provider-gorm v0.5.6
github.com/golang-jwt/jwt v3.2.2+incompatible
github.com/google/uuid v1.6.0
github.com/jackc/pgx/v5 v5.5.5
github.com/karincake/apem v0.0.17
github.com/karincake/dodol v0.0.1
github.com/karincake/getuk v0.1.0
@@ -34,7 +35,6 @@ require (
github.com/google/go-cmp v0.7.0 // indirect
github.com/jackc/pgpassfile v1.0.0 // indirect
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect
github.com/jackc/pgx/v5 v5.5.5 // indirect
github.com/jackc/puddle/v2 v2.2.1 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
github.com/jinzhu/now v1.1.5 // indirect
@@ -2,13 +2,20 @@ package deviceorder
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ed "simrs-vx/internal/domain/main-entities/doctor"
ee "simrs-vx/internal/domain/main-entities/encounter"
erc "simrs-vx/internal/domain/references/common"
pa "simrs-vx/pkg/auth-helper"
)
type CreateDto struct {
Encounter_Id *uint `json:"encounter_id"`
Status_Code erc.DataStatusCode `json:"status_code"`
Doctor_Id *uint `json:"doctor_id"`
pa.AuthInfo
}
type ReadListDto struct {
@@ -48,6 +55,8 @@ type ResponseDto struct {
ecore.Main
Encounter_Id *uint `json:"encounter_id"`
Encounter *ee.Encounter `json:"encounter,omitempty"`
Doctor_Id *uint `json:"doctor_id"`
Doctor *ed.Doctor `json:"doctor,omitempty"`
Status_Code erc.DataStatusCode `json:"status_code"`
}
@@ -55,6 +64,8 @@ func (d DeviceOrder) ToResponse() ResponseDto {
resp := ResponseDto{
Encounter_Id: d.Encounter_Id,
Encounter: d.Encounter,
Doctor_Id: d.Doctor_Id,
Doctor: d.Doctor,
Status_Code: d.Status_Code,
}
resp.Main = d.Main
@@ -2,6 +2,7 @@ package deviceorder
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ed "simrs-vx/internal/domain/main-entities/doctor"
ee "simrs-vx/internal/domain/main-entities/encounter"
erc "simrs-vx/internal/domain/references/common"
@@ -11,9 +12,15 @@ type DeviceOrder struct {
ecore.Main // adjust this according to the needs
Encounter_Id *uint `json:"encounter_id"`
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"`
Status_Code erc.DataStatusCode `json:"status_code"`
}
func (d DeviceOrder) IsCompleted() bool {
return d.Status_Code == erc.DSCDone
}
func (d DeviceOrder) IsSameDoctor(doctor_id *uint) bool {
return d.Doctor_Id == doctor_id
}
@@ -19,6 +19,7 @@ type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Preloads []string `json:"-"`
Search string `json:"search"`
}
type FilterDto struct {
+20 -9
View File
@@ -5,15 +5,22 @@ import (
)
type CreateDto struct {
Code string `json:"code" validate:"maxLength=10"`
Name string `json:"name" validate:"maxLength=50"`
Parent_Id *int16 `json:"parent_id"`
Code string `json:"code" validate:"maxLength=10"`
Name string `json:"name" validate:"maxLength=50"`
Parent_Id *uint16 `json:"parent_id"`
}
type ReadListDto struct {
Code string `json:"code"`
Name string `json:"name"`
Parent_Id *int16 `json:"parent_id"`
FilterDto
Includes string `json:"includes"`
Preloads []string `json:"-"`
Search string `json:"search"`
}
type FilterDto struct {
Code string `json:"code"`
Name string `json:"name"`
Parent_Id *uint16 `json:"parent_id"`
Page int `json:"page"`
PageSize int `json:"page_size"`
@@ -42,9 +49,11 @@ type MetaDto struct {
type ResponseDto struct {
ecore.SmallMain
Code string `json:"code"`
Name string `json:"name"`
Parent_Id *int16 `json:"parent_id"`
Code string `json:"code"`
Name string `json:"name"`
Parent_Id *uint16 `json:"parent_id"`
Parent *Division `json:"parent,omitempty"`
Childrens []Division `json:"childrens,omitempty"`
}
func (d Division) ToResponse() ResponseDto {
@@ -52,6 +61,8 @@ func (d Division) ToResponse() ResponseDto {
Code: d.Code,
Name: d.Name,
Parent_Id: d.Parent_Id,
Parent: d.Parent,
Childrens: d.Childrens,
}
resp.SmallMain = d.SmallMain
return resp
@@ -5,8 +5,10 @@ import (
)
type Division struct {
ecore.SmallMain // adjust this according to the needs
Code string `json:"code" gorm:"unique;size:10"`
Name string `json:"name" gorm:"size:50"`
Parent_Id *int16 `json:"parent_id"`
ecore.SmallMain // adjust this according to the needs
Code string `json:"code" gorm:"unique;size:10"`
Name string `json:"name" gorm:"size:50"`
Parent_Id *uint16 `json:"parent_id"`
Parent *Division `json:"parent" gorm:"foreignKey:Parent_Id;references:Id"`
Childrens []Division `json:"childrens" gorm:"foreignKey:Parent_Id"` // may need references to self
}
+3 -2
View File
@@ -10,8 +10,9 @@ type CreateDto struct {
}
type ReadListDto struct {
Code string `json:"code"`
Name string `json:"name"`
Code string `json:"code"`
Name string `json:"name"`
Search string `json:"search"`
Page int `json:"page"`
PageSize int `json:"page_size"`
@@ -23,6 +23,7 @@ type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Preloads []string `json:"-"`
Search string `json:"search"`
}
type FilterDto struct {
@@ -64,6 +65,8 @@ type ResponseDto struct {
Name string `json:"name"`
InfraGroup_Code ero.InfraGroupCode `json:"infraGroup_code"`
Parent_Id *uint16 `json:"parent_id"`
Parent *Infra `json:"parent,omitempty"`
Childrens []Infra `json:"childrens,omitempty"`
Item_Id *uint `json:"item_id"`
Item *ei.Item `json:"item,omitempty"`
}
@@ -74,6 +77,8 @@ func (d Infra) ToResponse() ResponseDto {
Name: d.Name,
InfraGroup_Code: d.InfraGroup_Code,
Parent_Id: d.Parent_Id,
Parent: d.Parent,
Childrens: d.Childrens,
Item_Id: d.Item_Id,
Item: d.Item,
}
@@ -13,6 +13,8 @@ type Infra struct {
Name string `json:"name" gorm:"size:50"`
InfraGroup_Code ero.InfraGroupCode `json:"infraGroup_code" gorm:"size:10"`
Parent_Id *uint16 `json:"parent_id"`
Parent *Infra `json:"parent" gorm:"foreignKey:Parent_Id;references:Id"`
Childrens []Infra `json:"childrens" gorm:"foreignKey:Parent_Id"` // may need references to self
Item_Id *uint `json:"item_id"`
Item *ei.Item `json:"item,omitempty" gorm:"foreignKey:Item_Id;references:Id"`
}
@@ -10,8 +10,9 @@ type CreateDto struct {
}
type ReadListDto struct {
Code string `json:"code"`
Name string `json:"name"`
Code string `json:"code"`
Name string `json:"name"`
Search string `json:"search"`
Page int `json:"page"`
PageSize int `json:"page_size"`
@@ -2,13 +2,20 @@ package materialorder
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ed "simrs-vx/internal/domain/main-entities/doctor"
ee "simrs-vx/internal/domain/main-entities/encounter"
erc "simrs-vx/internal/domain/references/common"
pa "simrs-vx/pkg/auth-helper"
)
type CreateDto struct {
Encounter_Id *uint `json:"encounter_id"`
Status_Code erc.DataStatusCode `json:"status_code"`
Doctor_Id *uint `json:"doctor_id"`
pa.AuthInfo
}
type ReadListDto struct {
@@ -48,6 +55,8 @@ type ResponseDto struct {
ecore.Main
Encounter_Id *uint `json:"encounter_id"`
Encounter *ee.Encounter `json:"encounter,omitempty"`
Doctor_Id *uint `json:"doctor_id"`
Doctor *ed.Doctor `json:"doctor,omitempty"`
Status_Code erc.DataStatusCode `json:"status_code"`
}
@@ -55,6 +64,8 @@ func (d MaterialOrder) ToResponse() ResponseDto {
resp := ResponseDto{
Encounter_Id: d.Encounter_Id,
Encounter: d.Encounter,
Doctor_Id: d.Doctor_Id,
Doctor: d.Doctor,
Status_Code: d.Status_Code,
}
resp.Main = d.Main
@@ -2,6 +2,7 @@ package materialorder
import (
ecore "simrs-vx/internal/domain/base-entities/core"
ed "simrs-vx/internal/domain/main-entities/doctor"
ee "simrs-vx/internal/domain/main-entities/encounter"
erc "simrs-vx/internal/domain/references/common"
@@ -11,9 +12,15 @@ type MaterialOrder struct {
ecore.Main // adjust this according to the needs
Encounter_Id *uint `json:"encounter_id"`
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"`
Status_Code erc.DataStatusCode `json:"status_code"`
}
func (d MaterialOrder) IsCompleted() bool {
return d.Status_Code == erc.DSCDone
}
func (d MaterialOrder) IsSameDoctor(doctor_id *uint) bool {
return d.Doctor_Id == doctor_id
}
@@ -20,6 +20,7 @@ type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Preloads []string `json:"-"`
Search string `json:"search"`
}
type FilterDto struct {
@@ -16,6 +16,7 @@ type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Preloads []string `json:"-"`
Search string `json:"search"`
}
type FilterDto struct {
@@ -17,6 +17,7 @@ type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Preloads []string `json:"-"`
Search string `json:"search"`
}
type FilterDto struct {
@@ -15,6 +15,7 @@ type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Preloads []string `json:"-"`
Search string `json:"search"`
}
type FilterDto struct {
@@ -14,6 +14,7 @@ type ReadListDto struct {
Code string `json:"code"`
Name string `json:"name"`
IndName string `json:"indName"`
Search string `json:"search"`
Page int `json:"page"`
PageSize int `json:"page_size"`
+3 -2
View File
@@ -10,8 +10,9 @@ type CreateDto struct {
}
type ReadListDto struct {
Code string `json:"code"`
Name string `json:"name"`
Code string `json:"code"`
Name string `json:"name"`
Search string `json:"search"`
Page int `json:"page"`
PageSize int `json:"page_size"`
+186 -58
View File
@@ -7,29 +7,50 @@ type (
AssessmentCode string
PlanCode string
InstructionCode string
HeadToToeCode string
McuUrgencyLevelCode string
SoapiTypeCode string
)
const (
SCPrimaryComplaint SubjectCode = "pri-complain" // Keluhan Utama
SCSecComplaint SubjectCode = "sec-complain" // Secondary Complaint
SCPrimaryComplain SubjectCode = "pri-complain" // Keluhan Utama
SCSecComplain SubjectCode = "sec-complain" // Secondary Complaint
SCCurrentDiseaseHistory SubjectCode = "cur-disea-hist" // Current Disease History
SCPastDiseaseHistory SubjectCode = "pas-disea-hist" // Past Disease History
SCFamilyDiseaseHistory SubjectCode = "fam-disea-hist" // Family Disease History
SCAllergyHistory SubjectCode = "alg-hist" // Allergic History
SCAllergyReaction SubjectCode = "alg-react" // Allergic Reaction
SCMedicationHistory SubjectCode = "med-hist" // Medication History
SCBloodType SubjectCode = "blood-type" // Blood Type
OCConsciousnessLevel ObjectCode = "consc-level" // Tingkat Kesadaran
OCConsciousnessLevelDet ObjectCode = "consc-level-det" // Detail Tingkat Kesadaran
OCSystolicBloodPressure ObjectCode = "syst-bp" // Tekanan Darah Systolic
OCDiastolicBloodPressure ObjectCode = "diast-bp" // Tekanan Darah Diastolic
OCHeartRate ObjectCode = "hear-rt" // Detak Jantung
OCTemperature ObjectCode = "temp" // Suhu
OCSpO2 ObjectCode = "spo2" // SpO2
OCWeight ObjectCode = "weight" // Berat Badan
OCHeight ObjectCode = "height" // Tinggi Badan
OCConsciousnessLevel ObjectCode = "consc-level" // Tingkat Kesadaran
OCConsciousnessLevelDet ObjectCode = "consc-level-det" // Detail Tingkat Kesadaran
OCSystolicBloodPressure ObjectCode = "syst-bp" // Tekanan Darah Systolic
OCDiastolicBloodPressure ObjectCode = "diast-bp" // Tekanan Darah Diastolic
OCPulse ObjectCode = "pulse" // Nadi
OCRespiratoryRate ObjectCode = "resp-rate" // Pernafasan
OCHeartRate ObjectCode = "hear-rt" // Detak Jantung
OCNeuroCranialis ObjectCode = "neuro-cranialis" // Neurologist Cranialist
OCSensoris ObjectCode = "sensoris" // Sensoris
OCReflectFisio ObjectCode = "reflect-fisio" // Refleks Fisiologi
OCReflectPato ObjectCode = "reflect-pato" // Refleks Patologi
OCAutonomNeuron ObjectCode = "autonom-neuron" // Saraf Otonom
OCNeckRom ObjectCode = "neck-rom" // ROM Leher
OCBodyRom ObjectCode = "body-rom" // ROM Batang Tubuh
OCAgaRom ObjectCode = "aga-rom" // ROM AGA
OCAgbRom ObjectCode = "agb-rom" // ROM AGB
OCNeckMmt ObjectCode = "neck-mmt" // MMT Leher
OCBodyMmt ObjectCode = "body-mmt" // MMT Batang Tubuh
OCAgaMmt ObjectCode = "aga-mmt" // MMT AGA
OCAgbMmt ObjectCode = "agb-mmt" // MMT AGB
OCLocalis ObjectCode = "localis" // Status Lokalis
OCMedicalTrouble ObjectCode = "medical-trouble" // Masalah Medis
OCRehabMedicTrouble ObjectCode = "rehab-medic-trouble" // Masalah Rehab Medik
OCTemperature ObjectCode = "temp" // Suhu
OCSpO2 ObjectCode = "spo2" // SpO2
OCWeight ObjectCode = "weight" // Berat Badan
OCHeight ObjectCode = "height" // Tinggi Badan
OCHeadToToe ObjectCode = "head-to-toe" // Kepala Sampai Kaki
ACEarlyDiag AssessmentCode = "early-diag" // Diagnosis Awal
ACLateDiag AssessmentCode = "late-diag" // Diagnosis Akhir
@@ -37,56 +58,163 @@ const (
PCPlan PlanCode = "plan" // Rencana
ICDetail InstructionCode = "detail" // Detail instruksi
ICMedAct InstructionCode = "med-act" // Tindakan medis
ICMedication InstructionCode = "medication" // Obat
ICMaterial InstructionCode = "material" // BMHP
ICDetail InstructionCode = "detail" // Detail Instruksi
ICMedAct InstructionCode = "medical-act" // Tindakan Medis
ICSupExam InstructionCode = "supporting-exam" // Pemeriksaan Penunjang
ICTherapy InstructionCode = "therapy" // Terapi
ICMedication InstructionCode = "medication" // Obat
ICMaterial InstructionCode = "material" // BMHP
ICREhabProg InstructionCode = "rehab-program" // Program Rehab
ICPhyMod InstructionCode = "physic-modal" // Modalitas Fisik
ICExcercise InstructionCode = "exercise" // Latihan
ICOrtPro InstructionCode = "ortes-protesa" // Ortesa Protesa
ICEducation InstructionCode = "education" // Edukasi
ICOther InstructionCode = "other" // Lain-lain
MULCCITO McuUrgencyLevelCode = "cito"
MULCCITOIGD McuUrgencyLevelCode = "cito-igd"
MULCPonek McuUrgencyLevelCode = "ponek"
MULCBG McuUrgencyLevelCode = "blood-gas"
MULCPF McuUrgencyLevelCode = "priority-form"
MULCRT McuUrgencyLevelCode = "routine"
HTTHead HeadToToeCode = "head"
HTTEye HeadToToeCode = "eye"
HTTEar HeadToToeCode = "ear"
HTTNose HeadToToeCode = "nose"
HTTMouthThroat HeadToToeCode = "mouth-throat"
HTTHeadOthers HeadToToeCode = "head-others"
HTTThorax HeadToToeCode = "thorax"
HTTHeart HeadToToeCode = "heart"
HTTLung HeadToToeCode = "lung"
HTTAbdomen HeadToToeCode = "abdomen"
HTTLiver HeadToToeCode = "liver"
HTTBack HeadToToeCode = "back"
HTTEkstremitas HeadToToeCode = "ekstremitas"
HTTGender HeadToToeCode = "gender"
HTTRectum HeadToToeCode = "rectum"
HTTNeuron HeadToToeCode = "neuron"
HTTBodyOthers HeadToToeCode = "body-others"
STCEarly SoapiTypeCode = "early" // Kajian Awal Medis
STCERehab SoapiTypeCode = "early-rehab" // Kajian Awal Rehab Medik
STCFunc SoapiTypeCode = "function" // Assessment Fungsi
MULCCITO McuUrgencyLevelCode = "cito" // CITO
MULCCITOIGD McuUrgencyLevelCode = "cito-igd" // CITO IGD
MULCPonek McuUrgencyLevelCode = "ponek" // PONEK
MULCBG McuUrgencyLevelCode = "blood-gas" // Analisa Gas Darah
MULCPF McuUrgencyLevelCode = "priority-form" // Form Prioritas
MULCRT McuUrgencyLevelCode = "routine" // Pemeriksaan Rutin
STCEarlyNurse SoapiTypeCode = "early-nurse" // Kajian Awal Medis
STCEEarlyMedic SoapiTypeCode = "early-medic" // Kajian Awal Rehab Medis
STCEarlyRehab SoapiTypeCode = "early-rehab" // Kajian Awal Rehab Medik
STCFunc SoapiTypeCode = "function" // Assessment Fungsi
STCProgress SoapiTypeCode = "progress" // CPPT
)
type Soapi struct {
// Subject
PrimaryComplaint string `json:"pri-compl"`
SecondaryComplaint string `json:"sec-compl"`
CurrentDiseaseHistory string `json:"cur-disea-hist"`
PastDiseaseHistory string `json:"pas-disea-hist"`
FamilyDiseaseHistory string `json:"fam-disea-hist"`
AllergyHistory string `json:"alg-hist"`
AllergyReaction string `json:"alg-react"`
MedicationHistory string `json:"med-hist"`
// Object
ConsciousnessLevel string `json:"consc-level"`
ConsciousnessLevelDet string `json:"consc-level-det"`
SystolicBloodPressure string `json:"syst-bp"`
DiastolicBloodPressure string `json:"diast-bp"`
HeartRate string `json:"hear-rt"`
Temperature string `json:"temp"`
SpO2 string `json:"spo2"`
Weight string `json:"weight"`
Height string `json:"height"`
// Assessment
EarlyDiagnosis string `json:"early-diag"`
LateDiagnosis string `json:"late-diag"`
SecondaryDiag string `json:"sec-diag"`
// Plan
Plan string `json:"plan"`
// Instruction
InstructionDetail string `json:"detail"`
MedicalAction string `json:"med-act"`
Medication string `json:"medication"`
Material string `json:"material"`
Subject SubjectSection `json:"subject"`
Object ObjectSection `json:"object"`
Assessment AssessmentSection `json:"assessment"`
Plan string `json:"plan"`
Instruction InstructionSection `json:"instruction"`
}
// ---------------- SUBJECT ----------------
type SubjectSection struct {
Note string `json:"note,omitempty"`
PrimComplain string `json:"prim-compl,omitempty"`
SecComplainQ string `json:"sec-compl,omitempty"`
PrimaryComplain string `json:"pri-complain,omitempty"`
SecondaryComplain string `json:"sec-complain,omitempty"`
CurrentDiseaseHistory string `json:"cur-disea-hist,omitempty"`
PastDiseaseHistory string `json:"pas-disea-hist,omitempty"`
FamilyDiseaseHistory string `json:"fam-disea-hist,omitempty"`
AllergyHistory string `json:"alg-hist,omitempty"`
AllergyReaction string `json:"alg-react,omitempty"`
MedicationHistory string `json:"med-hist,omitempty"`
BloodType string `json:"blood-type,omitempty"`
}
// ---------------- OBJECT ----------------
type ObjectSection struct {
Note string `json:"note,omitempty"`
ConsciousnessLevel string `json:"consc-level,omitempty"`
ConsciousnessLevelDet string `json:"consc-level-det,omitempty"`
SystolicBloodPressure string `json:"syst-bp,omitempty"`
DiastolicBloodPressure string `json:"diast-bp,omitempty"`
Pulse string `json:"pulse,omitempty"`
RespiratoryRate string `json:"resp-rate,omitempty"`
HeartRate string `json:"hear-rt,omitempty"`
NeuroCranialis string `json:"neuro-cranialis,omitempty"`
Sensoris string `json:"sensoris,omitempty"`
ReflectFisio string `json:"reflect-fisio,omitempty"`
ReflectPato string `json:"reflect-pato,omitempty"`
AutonomNeuron string `json:"autonom-neuron,omitempty"`
NeckRom string `json:"neck-rom,omitempty"`
BodyRom string `json:"body-rom,omitempty"`
AgaRom string `json:"aga-rom,omitempty"`
AgbRom string `json:"agb-rom,omitempty"`
NeckMmt string `json:"neck-mmt,omitempty"`
BodyMmt string `json:"body-mmt,omitempty"`
AgaMmt string `json:"aga-mmt,omitempty"`
AgbMmt string `json:"agb-mmt,omitempty"`
Localis string `json:"localis,omitempty"`
MedicalTrouble string `json:"medical-trouble,omitempty"`
RehabMedicTrouble string `json:"rehab-medic-trouble,omitempty"`
Temperature string `json:"temp,omitempty"`
SpO2 string `json:"spo2,omitempty"`
Weight string `json:"weight,omitempty"`
Height string `json:"height,omitempty"`
HeadToToe HeadToToe `json:"head-to-toe,omitempty"`
}
// ---------------- ASSESSMENT ----------------
type AssessmentSection struct {
EarlyDiagnosis DiagnosisDetail `json:"early-diag,omitempty"`
LateDiagnosis DiagnosisDetail `json:"late-diag,omitempty"`
SecondaryDiag DiagnosisDetail `json:"sec-diag,omitempty"`
}
// nested object {note, codes}
type DiagnosisDetail struct {
Note string `json:"note,omitempty"`
Codes []CodeWithName `json:"codes,omitempty"`
}
// ---------------- INSTRUCTION ----------------
type InstructionSection struct {
Detail string `json:"detail,omitempty"`
MedicalAction CodesWithNote `json:"medical-act,omitempty"`
SupportingExam []CodeWithName `json:"supporting-exam,omitempty"`
Therapy string `json:"therapy,omitempty"`
Medication []CodeWithName `json:"medication,omitempty"`
Material []CodeWithName `json:"material,omitempty"`
RehabProgram string `json:"rehab-program,omitempty"`
PhysicModal string `json:"physic-modal,omitempty"`
Exercise string `json:"exercise,omitempty"`
OrtesProsthesis string `json:"ortes-protesa,omitempty"`
Education string `json:"education,omitempty"`
Other string `json:"other,omitempty"`
}
// ---------------- CODES ----------------
type CodeWithName struct {
Code string `json:"code,omitempty"`
Name string `json:"name,omitempty"`
}
type CodesWithNote struct {
Note string `json:"note,omitempty"`
Codes []CodeWithName `json:"codes,omitempty"`
}
type HeadToToe struct {
Head string `json:"head,omitempty"`
Eye string `json:"eye,omitempty"`
Ear string `json:"ear,omitempty"`
Nose string `json:"nose,omitempty"`
MouthThroat string `json:"mouth-throat,omitempty"`
HeadOthers string `json:"head-others,omitempty"`
Thorax string `json:"thorax,omitempty"`
Heart string `json:"heart,omitempty"`
Lung string `json:"lung,omitempty"`
Abdomen string `json:"abdomen,omitempty"`
Liver string `json:"liver,omitempty"`
Back string `json:"back,omitempty"`
Ekstremitas string `json:"ekstremitas,omitempty"`
Gender string `json:"gender,omitempty"`
Rectum string `json:"rectum,omitempty"`
Neuron string `json:"neuron,omitempty"`
BodyOthers string `json:"body-others,omitempty"`
}
+21 -11
View File
@@ -1,17 +1,19 @@
package common
type (
YaTidakCode byte
SudahBelumCode byte
AktifSimpelCode byte
AktifAdvanceCode byte
TersediaCode byte
DayCode byte
ActiveStatusCode string
DataStatusCode string
UserStatusCode string
TimeUnitCode string
PaymentMethodCode string
YaTidakCode byte
SudahBelumCode byte
AktifSimpelCode byte
AktifAdvanceCode byte
TersediaCode byte
DayCode byte
ActiveStatusCode string
DataStatusCode string
UserStatusCode string
TimeUnitCode string
PaymentMethodCode string
DataAvailabilityCode string
DataVerifiedCode string
)
const (
@@ -61,6 +63,14 @@ const (
DSCRejected DataStatusCode = "rejected" // Ditolak
DSCSkipped DataStatusCode = "skipped" // Dilewati
DACReview DataAvailabilityCode = "review" // Konfirmasi
DACAvailable DataAvailabilityCode = "available" // Tersedia
DACUnavailable DataAvailabilityCode = "unavailable" // Tidak Tersedia
DVCNew DataVerifiedCode = "new" // Baru
DVCVerified DataVerifiedCode = "verified" // Terverifikasi
DVCRejected DataVerifiedCode = "rejected" // Ditolak
USCNew UserStatusCode = "new" // Baru
USCActive UserStatusCode = "active" // Aktif
USCInactive UserStatusCode = "inactive" // Tidak aktif
@@ -15,9 +15,9 @@ type (
)
const (
ECAmbulatory EncounterClassCode = "ambulatory"
ECEmergency EncounterClassCode = "emergency"
ECInpatient EncounterClassCode = "inpatient"
ECAmbulatory EncounterClassCode = "ambulatory" // Rawat Jalan
ECEmergency EncounterClassCode = "emergency" // Gawat Darurat
ECInpatient EncounterClassCode = "inpatient" // Rawat Inap
QSCWait QueueStatusCode = "wait" // Tunggu
QSCProc QueueStatusCode = "proc" // Proses
@@ -33,16 +33,16 @@ const (
DMCIntRef DischargeMethodCode = "internal-ref" // Rujuk Internal
DMCDeath DischargeMethodCode = "death" // Meninggal
TCAmbulance TransportationCode = "ambulance"
TCCar TransportationCode = "car"
TCMotorCycle TransportationCode = "motor-cycle"
TCOther TransportationCode = "other"
TCAmbulance TransportationCode = "ambulance" // Ambulans
TCCar TransportationCode = "car" // Mobil
TCMotorCycle TransportationCode = "motor-cycle" // Motor
TCOther TransportationCode = "other" // Lainnya
PCCRes PersonConditionCode = "res" // Resutiasi
PCCEmg PersonConditionCode = "emg" // Darurat
PCCUrg PersonConditionCode = "urg" // Mendesak
PCCLurg PersonConditionCode = "lurg" // Kurang mendesak
PCCNurg PersonConditionCode = "nurg" //
PCCNurg PersonConditionCode = "nurg" // Mendesak
PCCDoa PersonConditionCode = "doa" // Meninggal saat tiba
ECCEmg EmergencyClassCode = "emg" // Darurat/Emergency biasa
@@ -58,8 +58,9 @@ const (
CSCPLab CheckupScopeCode = "pa-lab" // Patology Anatomy Laboratorium
CSCRad CheckupScopeCode = "radiology" // Radiology
ACCReg AmbulatoryClassCode = "reg" // Regular
ACCRme AmbulatoryClassCode = "rme" // Rehab Medik
ACCReg AmbulatoryClassCode = "reg" // Regular
ACCRme AmbulatoryClassCode = "rme" // Rehab Medik
ACCChe AmbulatoryClassCode = "chemo" // Chemotherapy
ICCIp InpatientClassCode = "ip" // Regular Rawat Inap
ICCICU InpatientClassCode = "icu" // ICU
@@ -9,17 +9,18 @@ type (
)
const (
UPCDoc UserPosisitionCode = "doctor" // Dokter
UPCNur UserPosisitionCode = "nurse" // Perawat
UPCNut UserPosisitionCode = "nutritionist" // Ahli gizi
UPCLab UserPosisitionCode = "laborant" // Laboran
UPCPha UserPosisitionCode = "pharmacy" // Farmasi
UPCPay UserPosisitionCode = "payment" // Pembayaran
UPCHur UserPosisitionCode = "human-resource" // Sumber Daya Manusia
UPCGea UserPosisitionCode = "general-affair" // Bagian Umu
UPCPav UserPosisitionCode = "payment-verificator" // Konfirmasi pembayaran
UPCMan UserPosisitionCode = "management" // Manajemen
UPCInt UserPosisitionCode = "specialist-intern" // PPDS
UPCReg UserPosisitionCode = "registration" // Admisi/Pendaftaran
UPCNur UserPosisitionCode = "nurse" // Perawat
UPCDoc UserPosisitionCode = "doctor" // Dokter
UPCNut UserPosisitionCode = "nutritionist" // Ahli gizi
UPCMwi UserPosisitionCode = "mid-wife" // Bidan
UPCLab UserPosisitionCode = "laborant" // Laboran
UPCPha UserPosisitionCode = "pharmacy" // Farmasi
UPCPay UserPosisitionCode = "payment" // Pembayaran
UPCHur UserPosisitionCode = "human-resource" // Sumber Daya Manusia
UPCGea UserPosisitionCode = "general-affair" // Bagian Umum
UPCInt UserPosisitionCode = "specialist-intern" // PPDS
UPCMan UserPosisitionCode = "management" // Manajemen
ITGCInfra ItemGroupCode = "infra"
ITGCMedicine ItemGroupCode = "medicine"
@@ -30,12 +31,12 @@ const (
ITGCEmpFee ItemGroupCode = "employee-fee"
ITGCDocFee ItemGroupCode = "doctor-fee"
IFGCBuilding InfraGroupCode = "building"
IFGCFloor InfraGroupCode = "floor"
IFGCRoom InfraGroupCode = "room"
IFGCChamber InfraGroupCode = "chamber"
IFGCBed InfraGroupCode = "bed"
IFGCWarehouse InfraGroupCode = "warehouse"
IFGCBuilding InfraGroupCode = "building" // Bangunan
IFGCFloor InfraGroupCode = "floor" // Lantai
IFGCRoom InfraGroupCode = "room" // Ruang
IFGCChamber InfraGroupCode = "chamber" // Kamar
IFGCBed InfraGroupCode = "bed" // Ranjang
IFGCWarehouse InfraGroupCode = "warehouse" // Gudang/Depo
UTCReg UnitTypeCode = "reg" // Registrasi
UTCExa UnitTypeCode = "exa" // Pemeriksaan
@@ -6,10 +6,12 @@ import (
rw "github.com/karincake/risoles"
sf "github.com/karincake/semprit"
// ua "github.com/karincake/tumpeng/auth/svc"
e "simrs-vx/internal/domain/main-entities/device-order"
u "simrs-vx/internal/use-case/main-use-case/device-order"
pa "simrs-vx/pkg/auth-helper"
d "github.com/karincake/dodol"
)
type myBase struct{}
@@ -21,6 +23,12 @@ func (obj myBase) Create(w http.ResponseWriter, r *http.Request) {
if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
return
}
authInfo, err := pa.GetAuthInfo(r)
if err != nil {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": err.Error()}, nil)
}
dto.AuthInfo = *authInfo
res, err := u.Create(dto)
rw.DataResponse(w, res, err)
}
@@ -54,6 +62,11 @@ func (obj myBase) Update(w http.ResponseWriter, r *http.Request) {
return
}
dto.Id = uint16(id)
authInfo, err := pa.GetAuthInfo(r)
if err != nil {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": err.Error()}, nil)
}
dto.AuthInfo = *authInfo
res, err := u.Update(dto)
rw.DataResponse(w, res, err)
}
@@ -193,7 +193,7 @@ func SetRoutes() http.Handler {
"PATCH /{id}/consume": medicationitemdist.O.Consume,
})
hk.GroupRoutes("/v1/device-order", r, hk.MapHandlerFunc{
hk.GroupRoutes("/v1/device-order", r, auth.GuardMW, hk.MapHandlerFunc{
"GET /": deviceorder.O.GetList,
"GET /{id}": deviceorder.O.GetDetail,
"POST /": deviceorder.O.Create,
@@ -202,7 +202,7 @@ func SetRoutes() http.Handler {
"PATCH /{id}/complete": deviceorder.O.Complete,
})
hk.GroupRoutes("/v1/material-order", r, hk.MapHandlerFunc{
hk.GroupRoutes("/v1/material-order", r, auth.GuardMW, hk.MapHandlerFunc{
"GET /": materialorder.O.GetList,
"GET /{id}": materialorder.O.GetDetail,
"POST /": materialorder.O.Create,
@@ -10,6 +10,10 @@ import (
e "simrs-vx/internal/domain/main-entities/material-order"
u "simrs-vx/internal/use-case/main-use-case/material-order"
pa "simrs-vx/pkg/auth-helper"
d "github.com/karincake/dodol"
)
type myBase struct{}
@@ -21,6 +25,11 @@ func (obj myBase) Create(w http.ResponseWriter, r *http.Request) {
if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
return
}
authInfo, err := pa.GetAuthInfo(r)
if err != nil {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": err.Error()}, nil)
}
dto.AuthInfo = *authInfo
res, err := u.Create(dto)
rw.DataResponse(w, res, err)
}
@@ -53,6 +62,11 @@ func (obj myBase) Update(w http.ResponseWriter, r *http.Request) {
if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
return
}
authInfo, err := pa.GetAuthInfo(r)
if err != nil {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": err.Error()}, nil)
}
dto.AuthInfo = *authInfo
dto.Id = uint16(id)
res, err := u.Update(dto)
rw.DataResponse(w, res, err)
+3 -7
View File
@@ -2,6 +2,8 @@ package adime
import (
e "simrs-vx/internal/domain/main-entities/adime"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Adime,
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package ambulatory
import (
e "simrs-vx/internal/domain/main-entities/ambulatory"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Ambulat
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package consultation
import (
e "simrs-vx/internal/domain/main-entities/consultation"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Consult
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package counter
import (
e "simrs-vx/internal/domain/main-entities/counter"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Counter
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package deviceorderitem
import (
e "simrs-vx/internal/domain/main-entities/device-order-item"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.DeviceO
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -6,6 +6,7 @@ import (
e "simrs-vx/internal/domain/main-entities/device-order"
ud "simrs-vx/internal/use-case/main-use-case/doctor"
ue "simrs-vx/internal/use-case/main-use-case/encounter"
erc "simrs-vx/internal/domain/references/common"
@@ -45,6 +46,26 @@ func Create(input e.CreateDto) (*d.Data, error) {
return errors.New("encounter is already done")
}
if data.IsCompleted() {
return errors.New("data already completed")
}
if !input.AuthInfo.IsDoctor() {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "auth-forbidden",
Detail: "user position is not allowed",
Raw: errors.New("authentication failed"),
}
return pl.SetLogError(&event, input)
}
doctor_id, err := ud.GetIdByUserId(&input.AuthInfo.User_Id, &event, tx)
if err != nil {
return err
}
input.Doctor_Id = doctor_id
if resData, err := CreateData(input, &event, tx); err != nil {
return err
} else {
@@ -207,6 +228,32 @@ func Update(input e.UpdateDto) (*d.Data, error) {
return err
}
if !input.AuthInfo.IsDoctor() {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "auth-forbidden",
Detail: "user position is not allowed",
Raw: errors.New("authentication failed"),
}
return pl.SetLogError(&event, input)
}
doctor_id, err := ud.GetIdByUserId(&input.AuthInfo.User_Id, &event, tx)
if err != nil {
return err
}
if !data.IsSameDoctor(doctor_id) {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "auth-forbidden",
Detail: "doctor is not the same as the data",
Raw: errors.New("authentication failed"),
}
return pl.SetLogError(&event, input)
}
input.Doctor_Id = doctor_id
if err := UpdateData(input, data, &event, tx); err != nil {
return err
}
@@ -19,4 +19,5 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.DeviceOrder) {
data.Encounter_Id = inputSrc.Encounter_Id
data.Status_Code = inputSrc.Status_Code
data.Doctor_Id = inputSrc.Doctor_Id
}
@@ -2,6 +2,8 @@ package deviceorder
import (
e "simrs-vx/internal/domain/main-entities/device-order"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.DeviceO
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package device
import (
e "simrs-vx/internal/domain/main-entities/device"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Device,
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -57,6 +53,8 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.De
}
}
plh.SearchCodeOrName(input.Search, tx)
tx = tx.
Model(&e.Device{}).
Scopes(gh.Filter(input.FilterDto)).
@@ -2,6 +2,8 @@ package diagnosesrc
import (
e "simrs-vx/internal/domain/main-entities/diagnose-src"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Diagnos
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package district
import (
e "simrs-vx/internal/domain/main-entities/district"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Distric
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package divisionposition
import (
e "simrs-vx/internal/domain/main-entities/division-position"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Divisio
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -87,6 +87,9 @@ func ReadList(input e.ReadListDto) (*d.Data, error) {
return err
}
if len(input.Includes) > 0 {
input.Preloads = pu.GetPreloads(input.Includes)
}
if dataList, metaList, err = ReadListData(input, &event, tx); err != nil {
return err
}
@@ -2,6 +2,8 @@ package division
import (
e "simrs-vx/internal/domain/main-entities/division"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Divisio
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -51,9 +47,17 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Di
tx = dg.I
}
if len(input.Preloads) > 0 {
for _, preload := range input.Preloads {
tx = tx.Preload(preload)
}
}
plh.SearchCodeOrName(input.Search, tx)
tx = tx.
Model(&e.Division{}).
Scopes(gh.Filter(input)).
Scopes(gh.Filter(input.FilterDto)).
Count(&count).
Scopes(gh.Paginate(input, &pagination)).
Order("\"CreatedAt\" DESC")
@@ -2,6 +2,8 @@ package doctorfee
import (
e "simrs-vx/internal/domain/main-entities/doctor-fee"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.DoctorF
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package doctor
import (
e "simrs-vx/internal/domain/main-entities/doctor"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Doctor,
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package emergency
import (
e "simrs-vx/internal/domain/main-entities/emergency"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Emergen
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package employee
import (
e "simrs-vx/internal/domain/main-entities/employee"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -25,13 +27,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Employe
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package encounter
import (
e "simrs-vx/internal/domain/main-entities/encounter"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Encount
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package ethnic
import (
e "simrs-vx/internal/domain/main-entities/ethnic"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Ethnic,
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -51,6 +47,8 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Et
tx = dg.I
}
plh.SearchCodeOrName(input.Search, tx)
tx = tx.
Model(&e.Ethnic{}).
Scopes(gh.Filter(input)).
+5 -7
View File
@@ -2,6 +2,8 @@ package infra
import (
e "simrs-vx/internal/domain/main-entities/infra"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Infra,
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -57,6 +53,8 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.In
}
}
plh.SearchCodeOrName(input.Search, tx)
tx = tx.
Model(&e.Infra{}).
Scopes(gh.Filter(input.FilterDto)).
@@ -2,6 +2,8 @@ package inpatient
import (
e "simrs-vx/internal/domain/main-entities/inpatient"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Inpatie
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package installation
import (
e "simrs-vx/internal/domain/main-entities/installation"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Install
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package insurancecompany
import (
e "simrs-vx/internal/domain/main-entities/insurance-company"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Insuran
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package itemprice
import (
e "simrs-vx/internal/domain/main-entities/item-price"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.ItemPri
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
+3 -7
View File
@@ -2,6 +2,8 @@ package item
import (
e "simrs-vx/internal/domain/main-entities/item"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Item, e
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package laborant
import (
e "simrs-vx/internal/domain/main-entities/laborant"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Laboran
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package language
import (
e "simrs-vx/internal/domain/main-entities/language"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Languag
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -51,6 +47,8 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.La
tx = dg.I
}
plh.SearchCodeOrName(input.Search, tx)
tx = tx.
Model(&e.Language{}).
Scopes(gh.Filter(input)).
@@ -2,6 +2,8 @@ package materialorderitem
import (
e "simrs-vx/internal/domain/main-entities/material-order-item"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Materia
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -6,6 +6,7 @@ import (
e "simrs-vx/internal/domain/main-entities/material-order"
ud "simrs-vx/internal/use-case/main-use-case/doctor"
ue "simrs-vx/internal/use-case/main-use-case/encounter"
erc "simrs-vx/internal/domain/references/common"
@@ -45,6 +46,22 @@ func Create(input e.CreateDto) (*d.Data, error) {
return errors.New("encounter is already done")
}
if !input.AuthInfo.IsDoctor() {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "auth-forbidden",
Detail: "user position is not allowed",
Raw: errors.New("authentication failed"),
}
return pl.SetLogError(&event, input)
}
doctor_id, err := ud.GetIdByUserId(&input.AuthInfo.User_Id, &event, tx)
if err != nil {
return err
}
input.Doctor_Id = doctor_id
if resData, err := CreateData(input, &event, tx); err != nil {
return err
} else {
@@ -208,6 +225,33 @@ func Update(input e.UpdateDto) (*d.Data, error) {
return err
}
if !input.AuthInfo.IsDoctor() {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "auth-forbidden",
Detail: "user position is not allowed",
Raw: errors.New("authentication failed"),
}
return pl.SetLogError(&event, input)
}
doctor_id, err := ud.GetIdByUserId(&input.AuthInfo.User_Id, &event, tx)
if err != nil {
return err
}
if !data.IsSameDoctor(doctor_id) {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "auth-forbidden",
Detail: "doctor is not the same as the data",
Raw: errors.New("authentication failed"),
}
return pl.SetLogError(&event, input)
}
input.Doctor_Id = doctor_id
if err := UpdateData(input, data, &event, tx); err != nil {
return err
}
@@ -19,4 +19,5 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.MaterialOrder) {
data.Encounter_Id = inputSrc.Encounter_Id
data.Status_Code = inputSrc.Status_Code
data.Doctor_Id = inputSrc.Doctor_Id
}
@@ -2,6 +2,8 @@ package materialorder
import (
e "simrs-vx/internal/domain/main-entities/material-order"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Materia
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package material
import (
e "simrs-vx/internal/domain/main-entities/material"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Materia
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -57,6 +53,8 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Ma
}
}
plh.SearchCodeOrName(input.Search, tx)
tx = tx.
Model(&e.Material{}).
Scopes(gh.Filter(input.FilterDto)).
@@ -2,6 +2,8 @@ package mcuorderitem
import (
e "simrs-vx/internal/domain/main-entities/mcu-order-item"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.McuOrde
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package mcuordersubitem
import (
e "simrs-vx/internal/domain/main-entities/mcu-order-sub-item"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.McuOrde
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package mcuorder
import (
e "simrs-vx/internal/domain/main-entities/mcu-order"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.McuOrde
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package mcusrccategory
import (
e "simrs-vx/internal/domain/main-entities/mcu-src-category"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.McuSrcC
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package mcusrc
import (
e "simrs-vx/internal/domain/main-entities/mcu-src"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.McuSrc,
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -57,6 +53,8 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Mc
}
}
plh.SearchCodeOrName(input.Search, tx)
tx = tx.
Model(&e.McuSrc{}).
Scopes(gh.Filter(input.FilterDto)).
@@ -2,6 +2,8 @@ package mcusubsrc
import (
e "simrs-vx/internal/domain/main-entities/mcu-sub-src"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.McuSubS
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -57,6 +53,8 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Mc
}
}
plh.SearchCodeOrName(input.Search, tx)
tx = tx.
Model(&e.McuSubSrc{}).
Scopes(gh.Filter(input.FilterDto)).
@@ -2,6 +2,8 @@ package medicalactionsrcitem
import (
e "simrs-vx/internal/domain/main-entities/medical-action-src-item"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Medical
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package medicalactionsrc
import (
e "simrs-vx/internal/domain/main-entities/medical-action-src"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Medical
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -57,6 +53,8 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Me
}
}
plh.SearchCodeOrName(input.Search, tx)
tx = tx.
Model(&e.MedicalActionSrc{}).
Scopes(gh.Filter(input.FilterDto)).
@@ -2,6 +2,8 @@ package medicationitemdist
import (
e "simrs-vx/internal/domain/main-entities/medication-item-dist"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Medicat
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package medicationitem
import (
e "simrs-vx/internal/domain/main-entities/medication-item"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Medicat
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package medication
import (
e "simrs-vx/internal/domain/main-entities/medication"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Medicat
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package medicinegroup
import (
e "simrs-vx/internal/domain/main-entities/medicine-group"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Medicin
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package medicinemethod
import (
e "simrs-vx/internal/domain/main-entities/medicine-method"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Medicin
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package medicinemixitem
import (
e "simrs-vx/internal/domain/main-entities/medicine-mix-item"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Medicin
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package medicinemix
import (
e "simrs-vx/internal/domain/main-entities/medicine-mix"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Medicin
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -26,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Medicin
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
+3 -7
View File
@@ -2,6 +2,8 @@ package nurse
import (
e "simrs-vx/internal/domain/main-entities/nurse"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Nurse,
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package nutritionist
import (
e "simrs-vx/internal/domain/main-entities/nutritionist"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Nutriti
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package patient
import (
e "simrs-vx/internal/domain/main-entities/patient"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -27,13 +29,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Patient
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package personaddress
import (
e "simrs-vx/internal/domain/main-entities/person-address"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.PersonA
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package personcontact
import (
e "simrs-vx/internal/domain/main-entities/person-contact"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.PersonC
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package personrelative
import (
e "simrs-vx/internal/domain/main-entities/person-relative"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.PersonR
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,10 +2,13 @@ package person
import (
"errors"
"strconv"
e "simrs-vx/internal/domain/main-entities/person"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
"strconv"
dg "github.com/karincake/apem/db-gorm-pg"
d "github.com/karincake/dodol"
@@ -27,13 +30,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Person,
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package pharmacist
import (
e "simrs-vx/internal/domain/main-entities/pharmacist"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Pharmac
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package pharmacycompany
import (
e "simrs-vx/internal/domain/main-entities/pharmacy-company"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Pharmac
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package practiceschedule
import (
e "simrs-vx/internal/domain/main-entities/practice-schedule"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Practic
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package prescriptionitem
import (
e "simrs-vx/internal/domain/main-entities/prescription-item"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Prescri
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package prescription
import (
e "simrs-vx/internal/domain/main-entities/prescription"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Prescri
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package proceduresrc
import (
e "simrs-vx/internal/domain/main-entities/procedure-src"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Procedu
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -51,6 +47,8 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Pr
tx = dg.I
}
plh.SearchCodeOrName(input.Search, tx)
tx = tx.
Model(&e.ProcedureSrc{}).
Scopes(gh.Filter(input)).
@@ -2,6 +2,8 @@ package province
import (
e "simrs-vx/internal/domain/main-entities/province"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Provinc
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package regency
import (
e "simrs-vx/internal/domain/main-entities/regency"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Regency
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
+3 -7
View File
@@ -2,6 +2,8 @@ package room
import (
e "simrs-vx/internal/domain/main-entities/room"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Room, e
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
+3 -7
View File
@@ -2,6 +2,8 @@ package sbar
import (
e "simrs-vx/internal/domain/main-entities/sbar"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Sbar, e
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
+3 -7
View File
@@ -2,6 +2,8 @@ package soapi
import (
e "simrs-vx/internal/domain/main-entities/soapi"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Soapi,
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -2,6 +2,8 @@ package specialistintern
import (
e "simrs-vx/internal/domain/main-entities/specialist-intern"
plh "simrs-vx/pkg/lib-helper"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
@@ -24,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Special
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -26,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Special
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
@@ -26,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Subspec
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")
+1 -7
View File
@@ -26,13 +26,7 @@ func CreateData(input e.CreateDto, event *pl.Event, dbx ...*gorm.DB) (*e.Unit, e
}
if err := tx.Create(&data).Error; err != nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "Database insert failed",
Raw: err,
}
return nil, pl.SetLogError(event, input)
return nil, plh.HandleCreateError(input, event, err)
}
pl.SetLogInfo(event, nil, "complete")

Some files were not shown because too many files have changed in this diff Show More