add new main erd and update const list

This commit is contained in:
vanilia
2025-10-21 11:00:07 +07:00
parent 46bae889bd
commit 4b1a359b0e
7 changed files with 215 additions and 5 deletions
+2 -2
View File
@@ -1,4 +1,4 @@
h1:ymfgaEhen/ZEJoOaBP0BLfKbsTZRjKjQqNbO58caXLU=
h1:gsXdmKB45GiCscxejrBzxDakY0yPHDnnP5KKD5X6a40=
20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k=
20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0=
20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI=
@@ -50,4 +50,4 @@ h1:ymfgaEhen/ZEJoOaBP0BLfKbsTZRjKjQqNbO58caXLU=
20251017060617.sql h1:4T3t9ifWrEQTPMSM0XJ98pF7Qdt+UfgtMui17bhrnWI=
20251017082207.sql h1:8vLG1l/saRRMHXkyA4nelJyjaSddhZd6r7R+Uo4JS/c=
20251019093915.sql h1:vWqTEc9bZpnAj53DLNKaTYbEoiSqdQJ9Mx4Qv9zmXU8=
20251020062553.sql h1:llHc4558mdcMjVYMdrCb6ZClnjUd56DnJuwYGbae/Ms=
20251020062553.sql h1:TMlFzG+6P/rqIDzF6y8OLrWy4vusEDonVHhfRwRhrqw=
@@ -0,0 +1,70 @@
package diagnosesrc
import (
ecore "simrs-vx/internal/domain/base-entities/core"
)
type CreateDto struct {
Code string `json:"code" validate:"maxLength=10"`
Name string `json:"name" validate:"maxLength=2048"`
IndName string `json:"indName" validate:"maxLength=2048"`
}
type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Sort string `json:"sort"`
Pagination ecore.Pagination
}
type FilterDto struct {
Code string `json:"code"`
Name string `json:"name"`
IndName string `json:"indName"`
Search string `json:"search" gormhelper:"searchColumns=Code,Name"`
}
type ReadDetailDto struct {
Id uint16 `json:"id"`
Code *string `json:"code"`
}
type UpdateDto struct {
Id uint16 `json:"id"`
CreateDto
}
type DeleteDto struct {
Id uint16 `json:"id"`
}
type MetaDto struct {
PageNumber int `json:"page_number"`
PageSize int `json:"page_size"`
Count int `json:"count"`
}
type ResponseDto struct {
ecore.Main
Code string `json:"code"`
Name string `json:"name"`
IndName string `json:"indName"`
}
func (d DiagnoseSrc) ToResponse() ResponseDto {
resp := ResponseDto{
Code: d.Code,
Name: d.Name,
IndName: d.IndName,
}
resp.Main = d.Main
return resp
}
func ToResponseList(data []DiagnoseSrc) []ResponseDto {
resp := make([]ResponseDto, len(data))
for i, u := range data {
resp[i] = u.ToResponse()
}
return resp
}
@@ -0,0 +1,12 @@
package diagnosesrc
import (
ecore "simrs-vx/internal/domain/base-entities/core"
)
type DiagnoseSrc struct {
ecore.Main // adjust this according to the needs
Code string `json:"code" gorm:"unique;size:10"`
Name string `json:"name" gorm:"size:2048"`
IndName string `json:"indName" gorm:"size:2048"`
}
@@ -0,0 +1,17 @@
package edu_assessment
import (
"simrs-vx/internal/domain/base-entities/core"
ee "simrs-vx/internal/domain/main-entities/encounter"
)
type EduAssessment struct {
core.Main
Encounter_Id *uint `json:"encounter_id" gorm:"not null"`
Encounter *ee.Encounter `json:"encounter,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"`
GeneralEdus *string `json:"generalEdus"`
SpecialEdus *string `json:"specialEdus"`
Assessments *string `json:"assessments"`
Plan *string `json:"plan"`
}
@@ -0,0 +1,13 @@
package general_consent
import (
"simrs-vx/internal/domain/base-entities/core"
ee "simrs-vx/internal/domain/main-entities/encounter"
)
type GeneralConsent struct {
core.Main
Encounter_Id *uint `json:"encounter_id" gorm:"not null"`
Encounter *ee.Encounter `json:"encounter,omitempty" gorm:"foreignKey:Encounter_Id;references:Id"`
Value *string `json:"value"`
}
@@ -0,0 +1,31 @@
package therapy_protol
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"
common "simrs-vx/internal/domain/references/common"
)
type TherapyEntity struct {
ecore.Main
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"`
Anamnesis *string `json:"anamnesis" gorm:"size:2048"`
MedicalDiagnoses *string `json:"medicalDiagnoses"`
FunctionDiagnoses *string `json:"functionDiagnoses"`
Procedures *string `json:"procedures"`
SupportingExams *string `json:"supportingExams" gorm:"size:2048"`
Instruction *string `json:"instruction" gorm:"size:2048"`
Evaluation *string `json:"evaluation" gorm:"size:2048"`
WorkCauseStatus *string `json:"workCauseStatus" gorm:"size:2048"`
Frequency *uint `json:"frequency"`
IntervalUnit_Code *common.TimeUnitCode `json:"intervalUnit_Code" gorm:"size:10"`
Duration *uint `json:"duration"`
DurationUnit_Code *common.TimeUnitCode `json:"durationUnit_Code" gorm:"size:10"`
}
@@ -12,6 +12,15 @@ type (
SoapiTypeCode string
MedicalAction string
VehicleTypeCode string
GeneralEduCode string
SpecialEduCode string
EduAssessmentCode string
AbilityCode string
WillCode string
MedObstacleCode string
LearnMethodCode string
LangClassCode string
TranslatorSrcCode string
)
const (
@@ -54,9 +63,15 @@ const (
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
ACSecDiag AssessmentCode = "sec-diag" // Diagnosis Sekunder
ACEarlyDiag AssessmentCode = "early-diag" // Diagnosis Awal
ACLateDiag AssessmentCode = "late-diag" // Diagnosis Akhir
ACSecDiag AssessmentCode = "sec-diag" // Diagnosis Sekunder
ACEarlyMedDiag AssessmentCode = "early-med-diag" // Diagnosis Medis Awal
ACLateMedDiag AssessmentCode = "late-med-diag" // Diagnosis Medis Akhir
ACSecMedDiag AssessmentCode = "sec-med-diag" // Diagnosis Medis Sekunder
ACEarlyFuncDiag AssessmentCode = "early-func-diag" // Diagnosis Fungsi Awal
ACLateFuncDiag AssessmentCode = "late-func-diag" // Diagnosis Fungsi Akhir
ACSecFuncDiag AssessmentCode = "sec-func-diag" // Diagnosis Fungsi Sekunder
PCPlan PlanCode = "plan" // Rencana
@@ -113,6 +128,58 @@ const (
VTCAmbulance VehicleTypeCode = "ambulance" // Ambulans
VTCTransport VehicleTypeCode = "transport" // Transport
VTCHearse VehicleTypeCode = "hearse" // Jenazah
GECRightObg GeneralEduCode = "right-obg" // Hak dan kewajiban pasien dan keluarga
GECGeneralConsent GeneralEduCode = "general-consent" // General Consent
GECService GeneralEduCode = "service" // Pelayanan yang disediakan (jam pelayanan, akses pelayanan dan proses pelayanan)
GECAltCareSrc GeneralEduCode = "alt-care-src" // Sumber alternatif asuhan di tempat lain/faskes lain
GECHomePlan GeneralEduCode = "home-plan" // Rencana tindakan di rumah
GECHomeCare GeneralEduCode = "home-care" // Kebutuhan perawatan di rumah
GECOrientation GeneralEduCode = "orientation" // Orientasi ruangan
GECFallRiskPrevention GeneralEduCode = "fall-risk-prevention" // Pencegahan risiko jatuh
GECAltCare GeneralEduCode = "alt-care" // Alternatif pelayanan
GECActDelay GeneralEduCode = "act-delay" // Penundaan Tindakan
GECOthers GeneralEduCode = "others" // Lain - lain
SECDiseaseDiagDev SpecialEduCode = "disease-diag-dev" // Diagnosa penyakit dan perkembangannya
SECSafeMedUsage SpecialEduCode = "safe-med-usage" // Penggunaan obat yang aman,
SECSideEffect SpecialEduCode = "side-effect" // Efek samping dan reaksi obat
SECDiet SpecialEduCode = "diet" // Diet/Nutrisi
SECPainMgmt SpecialEduCode = "pain-mgmt" // Managemen nyeri
SECMedicalEqUsage SpecialEduCode = "medical-eq-usage" // Penggunaan Peralatan Medis
SECRehabTechnique SpecialEduCode = "rehab-technique" // Teknik Rehabilitasi
SECPreventionAct SpecialEduCode = "prevention-act" // Tindakan pencegahan (cuci tangan, pemasangan gelang)
EACLearnAbility EduAssessmentCode = "learn-ability" // Kemampuan Belajar
EACLearnWill EduAssessmentCode = "learn-will" // Kemauan Belajar
EACObstacle EduAssessmentCode = "obstacle" // Hambatan
EACLearnMethod EduAssessmentCode = "learn-method" // Metode Pembelajaran
EACLang EduAssessmentCode = "lang" // Bahasa
EACLangObstacle EduAssessmentCode = "lang-obstacle" // Hambatan Bahasa
EACBelief EduAssessmentCode = "belief" // Keyakinan
ACAble AbilityCode = "able" // Mampu
ACNotAble AbilityCode = "not-able" // Tidak Mampu
WCReady WillCode = "ready" // Siap
WCInterested WillCode = "interested" // Tertarik
WCNotInterested WillCode = "not-interested" // Tidak Tertarik
MOCHearing MedObstacleCode = "hearing" // Pendengaran
MOCSight MedObstacleCode = "sight" // Penglihatan
MOCPhysical MedObstacleCode = "physical" // Fisik
MOCEmotional MedObstacleCode = "emotional" // Emosional
MOCCognitif MedObstacleCode = "cognitif" // Kognitif
LMCDemo LearnMethodCode = "demo" // Demonstrasi
LMCDiscussLeaflet LearnMethodCode = "discuss-leaflet" // Diskusi Leaflet
LCCInd LangClassCode = "ind" // Indonesia
LCCRegion LangClassCode = "region" // Daerah
LCCForeign LangClassCode = "foreign" // Asing
TSCTeam TranslatorSrcCode = "team" // Tim Penerjemah
TSCFamily TranslatorSrcCode = "family" // Keluarga
)
type Soapi struct {