diff --git a/internal/domain/antrian_operasi/model.go b/internal/domain/antrian_operasi/model.go index 7ab82c3..2f357be 100644 --- a/internal/domain/antrian_operasi/model.go +++ b/internal/domain/antrian_operasi/model.go @@ -35,6 +35,7 @@ type DiagnosaOperasiModel struct { Diagnosa sql.NullString `db:"Diagnosa"` JenisDiagnosa sql.NullString `db:"Jenis_diagnosa"` AntrianId string `db:"antrian_id"` + Keterangan sql.NullString `db:"Keterangan"` } type TindakanOperasiModel struct { diff --git a/internal/domain/antrian_operasi/repository.go b/internal/domain/antrian_operasi/repository.go index 889326b..6179848 100644 --- a/internal/domain/antrian_operasi/repository.go +++ b/internal/domain/antrian_operasi/repository.go @@ -291,6 +291,7 @@ func (r antrianOperasiRepo) GetAntrianOperasiById(c context.Context, id string) {Expression: "Kode_diagnosa"}, {Expression: "Diagnosa"}, {Expression: "Jenis_diagnosa"}, + {Expression: "Keterangan"}, }, Filters: []queryUtils.FilterGroup{ { @@ -658,6 +659,7 @@ func (r antrianOperasiRepo) insertAntrianChildTables(c context.Context, tx *sql. diagnosa.Diagnosa, diagnosa.JenisDiagnosa, idAntrian, + diagnosa.Keterangan, } valuesDiagnosa = append(valuesDiagnosa, itemValues) } @@ -669,6 +671,7 @@ func (r antrianOperasiRepo) insertAntrianChildTables(c context.Context, tx *sql. "\"Diagnosa\"", "\"Jenis_diagnosa\"", "\"FK_pasien_operasi_diagnosa_pasien_operasi_ID\"", + "\"Keterangan\"", }, Values: valuesDiagnosa, } @@ -686,42 +689,44 @@ func (r antrianOperasiRepo) insertAntrianChildTables(c context.Context, tx *sql. log.Printf("success insert diagnosa") // INSERT data_tindakan_pasien_operasi - var valuesTindakan [][]interface{} + if len(req.TindakanItems) > 0 { + var valuesTindakan [][]interface{} - for _, tindakan := range req.TindakanItems { - idTindakan := uuid.New().String() - itemValues := []interface{}{ - idTindakan, - tindakan.KodeTindakan, - tindakan.Tindakan, - tindakan.TindakanTambahan, - idAntrian, + for _, tindakan := range req.TindakanItems { + idTindakan := uuid.New().String() + itemValues := []interface{}{ + idTindakan, + tindakan.KodeTindakan, + tindakan.Tindakan, + tindakan.TindakanTambahan, + idAntrian, + } + valuesTindakan = append(valuesTindakan, itemValues) } - valuesTindakan = append(valuesTindakan, itemValues) - } - insertTindakanQuery := queryUtils.InsertBulkData{ - Columns: []string{ - "id", - "\"Kode_tindakan\"", - "\"Tindakan\"", - "\"Tindakan_tambahan\"", - "\"FK_pasien_operasi_tindakan_pasien_operasi_ID\"", - }, - Values: valuesTindakan, - } + 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(TBL_TINDAKAN_OPERASI, insertTindakanQuery, returningCols...) - if err != nil { - log.Printf("error building query tindakan %s", err) - return err + sql, args, err = r.queryBuilder.BuildBulkInsertQuery(TBL_TINDAKAN_OPERASI, insertTindakanQuery, returningCols...) + if err != nil { + log.Printf("error building query tindakan %s", err) + return err + } + _, err = tx.ExecContext(c, sql, args...) + if err != nil { + log.Println(err) + return err + } + log.Printf("success insert tindakan") } - _, err = tx.ExecContext(c, sql, args...) - if err != nil { - log.Println(err) - return err - } - log.Printf("success insert tindakan") // INSERT data_pasien_operasi_data_pegawai if len(req.DokterPelaksanaItems) != 0 { diff --git a/internal/domain/antrian_operasi/request.go b/internal/domain/antrian_operasi/request.go index 732320c..e17ae68 100644 --- a/internal/domain/antrian_operasi/request.go +++ b/internal/domain/antrian_operasi/request.go @@ -19,6 +19,7 @@ type DiagnosisItemRequest struct { KodeDiagnosa string `json:"kodeDiagnosa" binding:"required"` Diagnosa string `json:"diagnosa" binding:"required"` JenisDiagnosa string `json:"jenisDiagnosa" binding:"required"` + Keterangan string `json:"keterangan"` } type TindakanItemRequest struct { @@ -55,7 +56,7 @@ type StatusPasienRequest struct { type CreatePasienOperasiRequest struct { FormData FormDataRequest `json:"formData"` DiagnosisItem []DiagnosisItemRequest `json:"diagnosisItems" binding:"required,min=1,dive"` - TindakanItems []TindakanItemRequest `json:"tindakanItems" binding:"required,min=1,dive"` + TindakanItems []TindakanItemRequest `json:"tindakanItems"` RencanaOperasiData RencanaOperasiRequest `json:"rencanaOperasiData"` DokterPelaksanaItems []DokterPelaksanaItemRequest `json:"dokterPelaksanaItems"` StatusPasienData StatusPasienRequest `json:"statusPasienData"` diff --git a/internal/domain/antrian_operasi/response.go b/internal/domain/antrian_operasi/response.go index f63beda..4e4edf4 100644 --- a/internal/domain/antrian_operasi/response.go +++ b/internal/domain/antrian_operasi/response.go @@ -56,6 +56,7 @@ func (model DetailPasienOperasiResultQuery) MapToResponse() DetailPasienOperasiR KodeDiagnosa: d.KodeDiagnosa.String, Diagnosa: d.Diagnosa.String, JenisDiagnosa: d.JenisDiagnosa.String, + Keterangan: d.Keterangan.String, }) }