Merge pull request #90 from dikstub-rssa/migration-vanilia

Migration vanilia
This commit is contained in:
Dwi Atmoko Purbo Sakti
2025-10-21 11:48:01 +07:00
committed by GitHub
8 changed files with 215 additions and 5 deletions
@@ -0,0 +1,60 @@
-- Create "DeathCause" table
CREATE TABLE "public"."DeathCause" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Encounter_Id" bigint NOT NULL,
"Value" text NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "fk_DeathCause_Encounter" FOREIGN KEY ("Encounter_Id") REFERENCES "public"."Encounter" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION
);
-- Create "EduAssessment" table
CREATE TABLE "public"."EduAssessment" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Encounter_Id" bigint NOT NULL,
"GeneralEdus" text NULL,
"SpecialEdus" text NULL,
"Assessments" text NULL,
"Plan" text NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "fk_EduAssessment_Encounter" FOREIGN KEY ("Encounter_Id") REFERENCES "public"."Encounter" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION
);
-- Create "GeneralConsent" table
CREATE TABLE "public"."GeneralConsent" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Encounter_Id" bigint NOT NULL,
"Value" text NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "fk_GeneralConsent_Encounter" FOREIGN KEY ("Encounter_Id") REFERENCES "public"."Encounter" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION
);
-- Create "TherapyProtocol" table
CREATE TABLE "public"."TherapyProtocol" (
"Id" bigserial NOT NULL,
"CreatedAt" timestamptz NULL,
"UpdatedAt" timestamptz NULL,
"DeletedAt" timestamptz NULL,
"Encounter_Id" bigint NOT NULL,
"Doctor_Id" bigint NULL,
"Anamnesis" character varying(2048) NULL,
"MedicalDiagnoses" text NULL,
"FunctionDiagnoses" text NULL,
"Procedures" text NULL,
"SupportingExams" character varying(2048) NULL,
"Instruction" character varying(2048) NULL,
"Evaluation" character varying(2048) NULL,
"WorkCauseStatus" character varying(2048) NULL,
"Frequency" bigint NULL,
"IntervalUnit_Code" character varying(10) NULL,
"Duration" bigint NULL,
"DurationUnit_Code" character varying(10) NULL,
PRIMARY KEY ("Id"),
CONSTRAINT "fk_TherapyProtocol_Doctor" FOREIGN KEY ("Doctor_Id") REFERENCES "public"."Doctor" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "fk_TherapyProtocol_Encounter" FOREIGN KEY ("Encounter_Id") REFERENCES "public"."Encounter" ("Id") ON UPDATE NO ACTION ON DELETE NO ACTION
);
+3 -2
View File
@@ -1,4 +1,4 @@
h1:ymfgaEhen/ZEJoOaBP0BLfKbsTZRjKjQqNbO58caXLU=
h1:zICJO08EuquqIcIfyqTkv+GpOZ22zFBOogzkklwngEQ=
20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k=
20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0=
20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI=
@@ -50,4 +50,5 @@ 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=
20251021041042.sql h1:2aeUaTJzswayaHg8FC0hQkR0tyKENYHWJygALq7Cuco=
@@ -0,0 +1,13 @@
package death_cause
import (
"simrs-vx/internal/domain/base-entities/core"
ee "simrs-vx/internal/domain/main-entities/encounter"
)
type DeathCause 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,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 TherapyProtocol 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 {
@@ -8,6 +8,7 @@ import (
chemo "simrs-vx/internal/domain/main-entities/chemo"
consultation "simrs-vx/internal/domain/main-entities/consultation"
counter "simrs-vx/internal/domain/main-entities/counter"
deathcause "simrs-vx/internal/domain/main-entities/death-cause"
device "simrs-vx/internal/domain/main-entities/device"
deviceorder "simrs-vx/internal/domain/main-entities/device-order"
deviceorderitem "simrs-vx/internal/domain/main-entities/device-order-item"
@@ -17,10 +18,12 @@ import (
divisionposition "simrs-vx/internal/domain/main-entities/division-position"
doctor "simrs-vx/internal/domain/main-entities/doctor"
doctorfee "simrs-vx/internal/domain/main-entities/doctor-fee"
eduassesment "simrs-vx/internal/domain/main-entities/edu-assessment"
emergency "simrs-vx/internal/domain/main-entities/emergency"
employee "simrs-vx/internal/domain/main-entities/employee"
encounter "simrs-vx/internal/domain/main-entities/encounter"
ethnic "simrs-vx/internal/domain/main-entities/ethnic"
generalconsent "simrs-vx/internal/domain/main-entities/general-consent"
infra "simrs-vx/internal/domain/main-entities/infra"
inpatient "simrs-vx/internal/domain/main-entities/inpatient"
installation "simrs-vx/internal/domain/main-entities/installation"
@@ -74,6 +77,7 @@ import (
specialist "simrs-vx/internal/domain/main-entities/specialist"
specialistintern "simrs-vx/internal/domain/main-entities/specialist-intern"
subspecialist "simrs-vx/internal/domain/main-entities/subspecialist"
therapyprotocol "simrs-vx/internal/domain/main-entities/therapy-protol"
unit "simrs-vx/internal/domain/main-entities/unit"
uom "simrs-vx/internal/domain/main-entities/uom"
user "simrs-vx/internal/domain/main-entities/user"
@@ -171,5 +175,9 @@ func getMainEntities() []any {
&vehicle.Vehicle{},
&vehiclehist.VehicleHist{},
&ambulancetransportreq.AmbulanceTransportReq{},
&therapyprotocol.TherapyProtocol{},
&eduassesment.EduAssessment{},
&generalconsent.GeneralConsent{},
&deathcause.DeathCause{},
}
}