API create antrian operasi
This commit is contained in:
@@ -32,6 +32,9 @@ func NewRepository(dbService database.Service) IAntrianOperasiRepository {
|
||||
"\"Nomor_spesialis\"", "\"Nomor_sub_spesialis\"",
|
||||
"\"Nomor_telepon\"",
|
||||
"\"FK_pasien_operasi_telepon_pasien_operasi_ID\"",
|
||||
"\"Kode_diagnosa\"", "\"Diagnosa\"", "\"Jenis_diagnosa\"", "\"FK_pasien_operasi_diagnosa_pasien_operasi_ID\"",
|
||||
"\"Kode_tindakan\"", "\"Tindakan\"", "\"Tindakan_tambahan\"", "\"FK_pasien_operasi_tindakan_pasien_operasi_ID\"",
|
||||
"\"data_pasien_operasi_id\"", "\"data_pegawai_id\"",
|
||||
})
|
||||
queryBuilder.SetSecurityOptions(false, 100)
|
||||
|
||||
@@ -54,7 +57,6 @@ func (r antrianOperasiRepo) CreateAntrianOperasi(c *gin.Context, req CreatePasie
|
||||
}
|
||||
|
||||
// INSERTING
|
||||
log.Println("TODO : insert tables")
|
||||
// INSERT MAIN TABLE : data_pasien_operasi
|
||||
idAntrian := uuid.New().String()
|
||||
insertMainQuery := queryUtils.InsertData{
|
||||
@@ -91,27 +93,25 @@ func (r antrianOperasiRepo) CreateAntrianOperasi(c *gin.Context, req CreatePasie
|
||||
"id",
|
||||
}
|
||||
|
||||
// _, err = r.queryBuilder.ExecuteInsert(c, db, "data_pasien_operasi", insertMainQuery, returningCols...)
|
||||
sql, args, err := r.queryBuilder.BuildInsertQuery("data_pasien_operasi", insertMainQuery, returningCols...)
|
||||
log.Printf("query main : %s", sql)
|
||||
_, err = tx.ExecContext(c, sql, args...)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
log.Println(err)
|
||||
log.Printf("error building query main %s", err)
|
||||
return req, err
|
||||
}
|
||||
log.Printf("success insert main : %s", insertMainQuery.Values...)
|
||||
log.Printf("success insert main")
|
||||
|
||||
// INSERT data_telepon_pasien_operasi
|
||||
var valuesInsertTelepon []interface{}
|
||||
var valuesInsertTelepon [][]interface{}
|
||||
|
||||
for _, telp := range *req.FormData.NoTelepon {
|
||||
idTelepon := uuid.New().String()
|
||||
itemValues := []string{idTelepon, telp, idAntrian}
|
||||
itemValues := []interface{}{idTelepon, telp, idAntrian}
|
||||
valuesInsertTelepon = append(valuesInsertTelepon, itemValues)
|
||||
}
|
||||
|
||||
insertTeleponQuery := queryUtils.InsertData{
|
||||
insertTeleponQuery := queryUtils.InsertBulkData{
|
||||
Columns: []string{
|
||||
"id",
|
||||
"\"Nomor_telepon\"",
|
||||
@@ -120,7 +120,6 @@ func (r antrianOperasiRepo) CreateAntrianOperasi(c *gin.Context, req CreatePasie
|
||||
Values: valuesInsertTelepon,
|
||||
}
|
||||
|
||||
// _, err = r.queryBuilder.ExecuteInsert(c, db, "data_telepon_pasien_operasi", insertTeleponQuery, returningCols...)
|
||||
sql, args, err = r.queryBuilder.BuildBulkInsertQuery("data_telepon_pasien_operasi", insertTeleponQuery, returningCols...)
|
||||
if err != nil {
|
||||
log.Printf("error building query telepon %s", err)
|
||||
@@ -128,8 +127,6 @@ func (r antrianOperasiRepo) CreateAntrianOperasi(c *gin.Context, req CreatePasie
|
||||
|
||||
return req, err
|
||||
}
|
||||
log.Printf("query telepon : %s", sql)
|
||||
log.Printf("args telepon : %s", args...)
|
||||
_, err = tx.ExecContext(c, sql, args...)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
@@ -141,10 +138,126 @@ func (r antrianOperasiRepo) CreateAntrianOperasi(c *gin.Context, req CreatePasie
|
||||
log.Printf("success insert telepon")
|
||||
|
||||
// INSERT data_diagnosa_pasien_operasi
|
||||
var valuesDiagnosa [][]interface{}
|
||||
|
||||
for _, diagnosa := range req.DiagnosisItem {
|
||||
idDiagnosa := uuid.New().String()
|
||||
itemValues := []interface{}{
|
||||
idDiagnosa,
|
||||
diagnosa.KodeDiagnosa,
|
||||
diagnosa.Diagnosa,
|
||||
diagnosa.JenisDiagnosa,
|
||||
idAntrian,
|
||||
}
|
||||
valuesDiagnosa = append(valuesDiagnosa, itemValues)
|
||||
}
|
||||
|
||||
insertDiagnosaQuery := queryUtils.InsertBulkData{
|
||||
Columns: []string{
|
||||
"id",
|
||||
"\"Kode_diagnosa\"",
|
||||
"\"Diagnosa\"",
|
||||
"\"Jenis_diagnosa\"",
|
||||
"\"FK_pasien_operasi_diagnosa_pasien_operasi_ID\"",
|
||||
},
|
||||
Values: valuesDiagnosa,
|
||||
}
|
||||
|
||||
sql, args, err = r.queryBuilder.BuildBulkInsertQuery("data_diagnosa_pasien_operasi", insertDiagnosaQuery, returningCols...)
|
||||
if err != nil {
|
||||
log.Printf("error building query diagnosa %s", err)
|
||||
tx.Rollback()
|
||||
|
||||
return req, err
|
||||
}
|
||||
_, err = tx.ExecContext(c, sql, args...)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
|
||||
log.Println(err)
|
||||
|
||||
return req, err
|
||||
}
|
||||
log.Printf("success insert diagnosa")
|
||||
|
||||
// INSERT data_tindakan_pasien_operasi
|
||||
var valuesTindakan [][]interface{}
|
||||
|
||||
for _, tindakan := range req.TindakanItems {
|
||||
idTindakan := uuid.New().String()
|
||||
itemValues := []interface{}{
|
||||
idTindakan,
|
||||
tindakan.KodeTindakan,
|
||||
tindakan.Tindakan,
|
||||
tindakan.TindakanTambahan,
|
||||
idAntrian,
|
||||
}
|
||||
valuesTindakan = append(valuesTindakan, itemValues)
|
||||
}
|
||||
|
||||
insertTindakanQuery := queryUtils.InsertBulkData{
|
||||
Columns: []string{
|
||||
"id",
|
||||
"\"Kode_tindakan\"",
|
||||
"\"Tindakan\"",
|
||||
"\"Tindakan_tambahan\"",
|
||||
"\"FK_pasien_operasi_tindakan_pasien_operasi_ID\"",
|
||||
},
|
||||
Values: valuesTindakan,
|
||||
}
|
||||
|
||||
sql, args, err = r.queryBuilder.BuildBulkInsertQuery("data_tindakan_pasien_operasi", insertTindakanQuery, returningCols...)
|
||||
if err != nil {
|
||||
log.Printf("error building query tindakan %s", err)
|
||||
tx.Rollback()
|
||||
|
||||
return req, err
|
||||
}
|
||||
_, err = tx.ExecContext(c, sql, args...)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
|
||||
log.Println(err)
|
||||
|
||||
return req, err
|
||||
}
|
||||
log.Printf("success insert tindakan")
|
||||
|
||||
// INSERT data_pasien_operasi_data_pegawai
|
||||
var valuesDokterPelaksana [][]interface{}
|
||||
|
||||
for _, dokter := range req.DokterPelaksanaItems {
|
||||
itemValues := []interface{}{
|
||||
idAntrian,
|
||||
dokter.Id,
|
||||
}
|
||||
valuesDokterPelaksana = append(valuesDokterPelaksana, itemValues)
|
||||
}
|
||||
|
||||
insertDokterPelaksanaQuery := queryUtils.InsertBulkData{
|
||||
Columns: []string{
|
||||
"\"data_pasien_operasi_id\"",
|
||||
"\"data_pegawai_id\"",
|
||||
},
|
||||
Values: valuesDokterPelaksana,
|
||||
}
|
||||
|
||||
sql, args, err = r.queryBuilder.BuildBulkInsertQuery("data_pasien_operasi_data_pegawai", insertDokterPelaksanaQuery, returningCols...)
|
||||
if err != nil {
|
||||
log.Printf("error building query dokter pelaksana %s", err)
|
||||
tx.Rollback()
|
||||
|
||||
return req, err
|
||||
}
|
||||
_, err = tx.ExecContext(c, sql, args...)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
|
||||
log.Println(err)
|
||||
|
||||
return req, err
|
||||
}
|
||||
log.Printf("success insert dokter pelaksana")
|
||||
|
||||
// COMMIT TRANSACTION
|
||||
tx.Commit()
|
||||
|
||||
Reference in New Issue
Block a user