update docker

This commit is contained in:
meninjar dev
2024-09-30 01:34:09 +00:00
parent 6efcb93aff
commit 36cf47313b
9 changed files with 200 additions and 34 deletions

18
.env
View File

@@ -1,18 +0,0 @@
# POSTGRES_DSN="postgres://sa:password@localhost:5432/postgres?sslmode=disable"
DB_HOST=localhost
DB_USERNAME=sa
DB_PASSWORD=password
DB_NAME=postgres
DB_PORT=5432
SATUDATA_HOST=10.10.123.165
SATUDATA_USERNAME=stim
SATUDATA_PASSWORD=stim*RS54
SATUDATA_NAME=satu_db
SATUDATA_PORT=5000
BASEURL_BPJS=https://apijkn.bpjs-kesehatan.go.id/
ANTREAN_RS=antreanrs
CONS_ID=5257
USER_KEY=4cf1cbef8c008440bbe9ef9ba789e482
SECRET_KEY=1bV363512D

0
.env.exemple Executable file
View File

View File

@@ -18,14 +18,21 @@ import (
var DB *gorm.DB var DB *gorm.DB
var localDB *gorm.DB var localDB *gorm.DB
var SatuDataDB *gorm.DB var SatuDataDB *gorm.DB
var SimrsDataDB *gorm.DB
var err error var err error
func ConnectDB() { func ConnectDB() {
hostDB := os.Getenv("DB_HOST") // POSTGRE_DB_HOST=10.10.123.223
usernameDB := os.Getenv("DB_USERNAME") // POSTGRE_DB_PORT=5432
passwordDB := os.Getenv("DB_PASSWORD") // POSTGRE_DB_NAME=simrsbackup
dbName := os.Getenv("DB_NAME") // POSTGRE_DB_USER=simtest
portDB := os.Getenv("DB_PORT") // POSTGRE_DB_PASS=12345
// hostDB := os.Getenv("DB_HOST")
// usernameDB := os.Getenv("DB_USERNAME")
// passwordDB := os.Getenv("DB_PASSWORD")
// dbName := os.Getenv("DB_NAME")
// portDB := os.Getenv("DB_PORT")
hostSatuData := os.Getenv("SATUDATA_HOST") hostSatuData := os.Getenv("SATUDATA_HOST")
userNameSatuData := os.Getenv("SATUDATA_USERNAME") userNameSatuData := os.Getenv("SATUDATA_USERNAME")
@@ -33,18 +40,33 @@ func ConnectDB() {
dbNameSatuData := os.Getenv("SATUDATA_NAME") dbNameSatuData := os.Getenv("SATUDATA_NAME")
portSatuData := os.Getenv("SATUDATA_PORT") portSatuData := os.Getenv("SATUDATA_PORT")
local := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Jakarta", hostDB, usernameDB, passwordDB, dbName, portDB) hostSimrsDB := os.Getenv("SIMRS_DB_HOST")
usernameSimrsDB := os.Getenv("SIMRS_DB_USERNAME")
passwordSimrsDB := os.Getenv("SIMRS_DB_PASSWORD")
dbNameSimrsDB := os.Getenv("SIMRS_DB_NAME")
portSimrsDB := os.Getenv("SIMRS_DB_PORT")
// local := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Jakarta", hostDB, usernameDB, passwordDB, dbName, portDB)
satuData := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Jakarta", hostSatuData, userNameSatuData, passwordSatuData, dbNameSatuData, portSatuData) satuData := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Jakarta", hostSatuData, userNameSatuData, passwordSatuData, dbNameSatuData, portSatuData)
localDB, err = gorm.Open(postgres.Open(local), &gorm.Config{}) simrsData := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Jakarta", hostSimrsDB, usernameSimrsDB, passwordSimrsDB, dbNameSimrsDB, portSimrsDB)
// localDB, err = gorm.Open(postgres.Open(local), &gorm.Config{})
// if err != nil {
// log.Fatal("Failed to connect to Satu Data database: ", err)
// } else {
// log.Println("Successfully connected to the database")
// }
SatuDataDB, err = gorm.Open(postgres.Open(satuData), &gorm.Config{})
if err != nil { if err != nil {
log.Fatal("Failed to connect to Satu Data database: ", err) log.Fatal("Failed to connect to Satu Data database: ", err)
} else { } else {
log.Println("Successfully connected to the database") log.Println("Successfully connected to the database")
} }
SatuDataDB, err = gorm.Open(postgres.Open(satuData), &gorm.Config{}) SimrsDataDB, err = gorm.Open(postgres.Open(simrsData), &gorm.Config{})
if err != nil { if err != nil {
log.Fatal("Failed to connect to Satu Data database: ", err) log.Fatal("Failed to connect to Satu Data database: ", err)
} else { } else {
@@ -74,3 +96,26 @@ func SetHeader(cfg config.ConfigBpjs) (string, string, string, string, string) {
return cfg.Cons_id, cfg.Secret_key, cfg.User_key, fmt.Sprint(tstamp), X_signature return cfg.Cons_id, cfg.Secret_key, cfg.User_key, fmt.Sprint(tstamp), X_signature
} }
// func SetHeaderSatusehat(cfg config.ConfigSatuSehat) (string, string, string, string, string) {
// timenow := time.Now().UTC()
// time := time.Date(1970, 1, 1, 0, 0, 0, 0, time.UTC)
// tstamp := timenow.Unix() - time.Unix()
// cfg.Cons_id = os.Getenv("CONS_ID")
// cfg.User_key = os.Getenv("USER_KEY")
// cfg.Secret_key = os.Getenv("SECRET_KEY")
// secret := []byte(cfg.Secret_key)
// message := []byte(cfg.Cons_id + "&" + fmt.Sprint(tstamp))
// hash := hmac.New(sha256.New, secret)
// hash.Write(message)
// // to lowercase hexits
// hex.EncodeToString(hash.Sum(nil))
// // to base64
// X_signature := base64.StdEncoding.EncodeToString(hash.Sum(nil))
// return cfg.Cons_id, cfg.Secret_key, cfg.User_key, fmt.Sprint(tstamp), X_signature
// }

View File

@@ -12,11 +12,11 @@ services:
- .:/app - .:/app
environment: environment:
# DATABASE SIMRS V3.0 # DATABASE SIMRS V3.0
- POSTGRE_DB_HOST=10.10.123.223 - SIMRS_DB_HOST=10.10.123.223
- POSTGRE_DB_PORT=5432 - SIMRS_DB_NAME=simrsbackup
- POSTGRE_DB_NAME=simrsbackup - SIMRS_DB_USERNAME=simtest
- POSTGRE_DB_USER=simtest - SIMRS_DB_PASSWORD=12345
- POSTGRE_DB_PASS=12345 - SIMRS_DB_PORT=5432
# DATABASE SATU DATA # DATABASE SATU DATA
- SATUDATA_HOST=10.10.123.165 - SATUDATA_HOST=10.10.123.165
- SATUDATA_USERNAME=stim - SATUDATA_USERNAME=stim
@@ -35,4 +35,7 @@ services:
# BPJS PCARE # BPJS PCARE
- PCARE_RS=pcare-rest - PCARE_RS=pcare-rest
# BPJS ICARE # BPJS ICARE
- PCARE_APLICARE=ihs - PCARE_APLICARE=ihs
# SATUSEHAT
- OR=10.10.123.165

0
g.env.exemico Executable file
View File

BIN
g.env.exemple Normal file
View File

Binary file not shown.

View File

@@ -5,3 +5,10 @@ type ConfigBpjs struct {
Secret_key string Secret_key string
User_key string User_key string
} }
type ConfigSatuSehat struct {
Org_id string
Client_id string
Client_secret string
Token string
}

View File

@@ -0,0 +1,20 @@
package satusehat
import (
"github.com/go-playground/validator/v10"
)
type Procedure struct {
VisitId int `db:"visit_id" json:"visit_id" validate:"required"`
ProcedureCode string `db:"procedure_code" json:"procedure_code" validate:"required"`
ProcedureName string `db:"procedure_name" json:"procedure_name" validate:"required"`
}
func (o *Procedure) Invalid() bool {
val := validator.New()
err := val.Struct(o)
if err != nil {
return true
}
return false
}

109
models/satusehat/visit.go Normal file
View File

@@ -0,0 +1,109 @@
package satusehat
import (
"time"
"github.com/go-playground/validator/v10"
)
type Visit struct {
VisitID string
PatientSatusehatID string
PatientNIK string
PatientName string
PatientSex string
PatientBirthDate *time.Time
PatientAddress string
PractitionerNIK string
PractitionerSatusehatID string
PractitionerName string
ClinicSatusehatID string
ClinicName string
Systole string
Diastole string
HeartRate string
RespirationRate string
OxygenSaturation string
Temperature string
PeriodStartDate time.Time
PeriodEndDate time.Time
ArrivedStartTime *time.Time
ArrivedEndTime *time.Time
InProgressStartTime *time.Time
InProgressEndTime *time.Time
FinishStartTime *time.Time
FinishEndTime *time.Time
}
type VisitDetail struct {
VisitId string `json:"visit_id" validate:"required"`
PatientSatusehatId string `json:"patient_satusehat_id" validate:"required"`
PatientNik string `json:"patient_nik" `
PatientName string `json:"patient_name" validate:"required"`
PatientSex string `json:"patient_sex"`
PatientBirthDate *time.Time `json:"patient_birth_date"`
PatientAddress string `json:"patient_address"`
PractitionerNik string `json:"practitioner_nik"`
PractitionerId string `json:"practitioner_satusehat_id" validate:"required"`
PractitionerName string `json:"practitioner_name" validate:"required"`
ClinicName string `json:"clinic_name" validate:"required"`
ClinicSatuSehatId string `json:"clinic_id" validate:"required"`
PeriodStartDate time.Time `json:"period_start_date" validate:"required"`
PeriodEndDate time.Time `json:"period_end_date" validate:"required"`
ArrivedStartTime *time.Time `json:"arrived_start_time" validate:"required"`
ArrivedEndTime *time.Time `json:"arrived_end_time" validate:"required"`
InProgressStartTime *time.Time `json:"in_progress_start_time" validate:"required"`
InProgressEndTime *time.Time `json:"in_progress_end_time" validate:"required"`
FinishStartTime *time.Time `json:"finish_start_time" validate:"required"`
FinishEndTime *time.Time `json:"finish_end_time" validate:"required"`
}
func (v VisitDetail) Invalid() error {
val := validator.New()
return val.Struct(v)
}
type VitalSign struct {
Systole string `json:"sistole"`
Diastole string `json:"diastole"`
HeartRate string `json:"heart_rate"`
RespirationRate string `json:"respiration_rate"`
Temperature string `json:"temperature"`
OxygenSaturation string `json:"oxygen_saturation"`
}
func (v *Visit) VitalSign() VitalSign {
return VitalSign{
Systole: v.Systole,
Diastole: v.Diastole,
HeartRate: v.HeartRate,
RespirationRate: v.RespirationRate,
Temperature: v.Temperature,
OxygenSaturation: v.OxygenSaturation,
}
}
func (v *Visit) VisitDetail() VisitDetail {
return VisitDetail{
VisitId: v.VisitID,
PatientSatusehatId: v.PatientSatusehatID,
PatientNik: v.PatientNIK,
PatientName: v.PatientName,
PatientSex: v.PatientSex,
PatientBirthDate: v.PatientBirthDate,
PatientAddress: v.PatientAddress,
ClinicName: v.ClinicName,
ClinicSatuSehatId: v.ClinicSatusehatID,
PeriodStartDate: v.PeriodStartDate,
PeriodEndDate: v.PeriodEndDate,
PractitionerNik: v.PractitionerNIK,
PractitionerId: v.PractitionerSatusehatID,
PractitionerName: v.PractitionerName,
ArrivedStartTime: v.ArrivedStartTime,
ArrivedEndTime: v.ArrivedEndTime,
InProgressStartTime: v.InProgressStartTime,
InProgressEndTime: v.InProgressEndTime,
FinishStartTime: v.FinishStartTime,
FinishEndTime: v.FinishEndTime,
}
}