first commit
This commit is contained in:
15
server/database/db.config.js
Normal file
15
server/database/db.config.js
Normal file
@ -0,0 +1,15 @@
|
||||
require("dotenv").config();
|
||||
|
||||
module.exports = {
|
||||
HOST: process.env.DB_HOST,
|
||||
USER: process.env.DB_USER,
|
||||
PASSWORD: process.env.DB_PASS,
|
||||
DB: process.env.DB_NAME,
|
||||
dialect: "mysql",
|
||||
pool: {
|
||||
max: 5,
|
||||
min: 0,
|
||||
acquire: 30000,
|
||||
idle: 10000
|
||||
}
|
||||
};
|
||||
45
server/database/index.js
Normal file
45
server/database/index.js
Normal file
@ -0,0 +1,45 @@
|
||||
const dbConfig = require('./db.config.js');
|
||||
const Sequelize = require('sequelize');
|
||||
const sequelize = new Sequelize(dbConfig.DB, dbConfig.USER, dbConfig.PASSWORD, {
|
||||
host: dbConfig.HOST,
|
||||
dialect: dbConfig.dialect,
|
||||
operatorsAliases: false,
|
||||
pool: {
|
||||
max: dbConfig.pool.max,
|
||||
min: dbConfig.pool.min,
|
||||
acquire: dbConfig.pool.acquire,
|
||||
idle: dbConfig.pool.idle
|
||||
}
|
||||
})
|
||||
const db = {}
|
||||
db.Sequelize = Sequelize
|
||||
db.sequelize = sequelize
|
||||
|
||||
// load models
|
||||
db.admin = require('./model/admin.model.js')(sequelize, Sequelize)
|
||||
db.login = require('./model/login_user.model.js')(sequelize, Sequelize)
|
||||
db.obat = require('./model/obat.model.js')(sequelize, Sequelize)
|
||||
db.dokter = require('./model/dokter.model.js')(sequelize, Sequelize)
|
||||
db.pasien = require('./model/pasien.model.js')(sequelize, Sequelize)
|
||||
db.tindakan = require('./model/tindakan.model.js')(sequelize, Sequelize)
|
||||
db.rekam_medis = require('./model/rekam_medis.model.js')(sequelize, Sequelize)
|
||||
|
||||
// create one to one relations between admin and login
|
||||
db.admin.hasOne(db.login, {foreignKey: {name: 'id_admin', allowNull: true}}, {onDelete: 'CASCADE' , hooks: true , onUpdate: 'CASCADE'})
|
||||
db.login.belongsTo(db.admin, {foreignKey: {name: 'id_admin', allowNull: true}}, {onDelete: 'CASCADE' , hooks: true , onUpdate: 'CASCADE'})
|
||||
|
||||
// create one to one relations between doker and login
|
||||
db.dokter.hasOne(db.login, {foreignKey: {name: 'id_dokter', allowNull: true}}, {onDelete: 'CASCADE' , hooks: true , onUpdate: 'CASCADE'})
|
||||
db.login.belongsTo(db.dokter, {foreignKey: {name: 'id_dokter', allowNull: true}}, {onDelete: 'CASCADE' , hooks: true , onUpdate: 'CASCADE'})
|
||||
|
||||
// create one to many relations between pasien and rekam_medis
|
||||
db.pasien.hasMany(db.rekam_medis, {foreignKey: {name: 'id_pasien', allowNull: false}}, {onDelete: 'CASCADE' , hooks: true , onUpdate: 'CASCADE'})
|
||||
db.rekam_medis.belongsTo(db.pasien, {foreignKey: {name: 'id_pasien', allowNull: false}}, {onDelete: 'CASCADE' , hooks: true , onUpdate: 'CASCADE'})
|
||||
|
||||
// create one to many relations between dokter and rekam_medis
|
||||
db.dokter.hasMany(db.rekam_medis, {foreignKey: {name: 'id_dokter', allowNull: false}}, {onDelete: 'CASCADE' , hooks: true , onUpdate: 'CASCADE'})
|
||||
db.rekam_medis.belongsTo(db.dokter, {foreignKey: {name: 'id_dokter', allowNull: false}}, {onDelete: 'CASCADE' , hooks: true , onUpdate: 'CASCADE'})
|
||||
|
||||
|
||||
module.exports = db
|
||||
// CRS-y5Vv-Xa5P-FTxTA
|
||||
26
server/database/model/admin.model.js
Normal file
26
server/database/model/admin.model.js
Normal file
@ -0,0 +1,26 @@
|
||||
module.exports = (sequalize, Sequelize) => {
|
||||
const Admin = sequalize.define("tb_admin", {
|
||||
nik: {
|
||||
type: Sequelize.STRING(16),
|
||||
primaryKey: true,
|
||||
allowNull: false,
|
||||
unique: true,
|
||||
},
|
||||
nama:{
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
// hehe :{
|
||||
// type: Sequelize.STRING,
|
||||
// },
|
||||
role: {
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
}
|
||||
},{
|
||||
freezeTableName: true,
|
||||
tableName: 'tb_admin',
|
||||
});
|
||||
|
||||
return Admin;
|
||||
}
|
||||
34
server/database/model/dokter.model.js
Normal file
34
server/database/model/dokter.model.js
Normal file
@ -0,0 +1,34 @@
|
||||
module.exports = (sequelize, Sequelize) => {
|
||||
const Dokter = sequelize.define("tb_dokter", {
|
||||
nik:{
|
||||
type: Sequelize.STRING(16),
|
||||
allowNull: false,
|
||||
primaryKey: true,
|
||||
unique: true,
|
||||
},
|
||||
nama:{
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
alamat:{
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
no_telp:{
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
spesialis:{
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
jam_kerja:{
|
||||
type: Sequelize.TEXT('long'),
|
||||
}
|
||||
},{
|
||||
freezeTableName: true,
|
||||
tableName: 'tb_dokter',
|
||||
})
|
||||
|
||||
return Dokter
|
||||
}
|
||||
26
server/database/model/login_user.model.js
Normal file
26
server/database/model/login_user.model.js
Normal file
@ -0,0 +1,26 @@
|
||||
module.exports = (sequelize, Sequelize) => {
|
||||
const Login = sequelize.define("tb_login", {
|
||||
id: {
|
||||
type: Sequelize.INTEGER,
|
||||
primaryKey: true,
|
||||
autoIncrement: true
|
||||
},
|
||||
username: {
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
password: {
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
role : {
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
},{
|
||||
freezeTableName: true,
|
||||
tableName: 'tb_login',
|
||||
})
|
||||
|
||||
return Login;
|
||||
}
|
||||
35
server/database/model/obat.model.js
Normal file
35
server/database/model/obat.model.js
Normal file
@ -0,0 +1,35 @@
|
||||
module.exports = (sequelize, Sequelize) => {
|
||||
const Obat = sequelize.define("tb_obat", {
|
||||
id_obat:{
|
||||
type: Sequelize.INTEGER,
|
||||
allowNull: false,
|
||||
primaryKey: true,
|
||||
autoIncrement: true
|
||||
},
|
||||
nama_obat:{
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
jenis:{
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
jumlah:{
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
harga:{
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
history:{
|
||||
type: Sequelize.TEXT("long"),
|
||||
allowNull: false
|
||||
}
|
||||
},{
|
||||
freezeTableName: true,
|
||||
tableName: 'tb_obat',
|
||||
})
|
||||
|
||||
return Obat
|
||||
}
|
||||
54
server/database/model/pasien.model.js
Normal file
54
server/database/model/pasien.model.js
Normal file
@ -0,0 +1,54 @@
|
||||
module.exports = (sequelize, Sequelize) => {
|
||||
const Pasien = sequelize.define("tb_pasien", {
|
||||
nik:{
|
||||
type: Sequelize.STRING(16),
|
||||
allowNull: false,
|
||||
primaryKey: true,
|
||||
unique: true,
|
||||
},
|
||||
nama:{
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
jenis_kelamin:{
|
||||
type: Sequelize.STRING(10),
|
||||
allowNull: false
|
||||
},
|
||||
tgl_lahir:{
|
||||
type: Sequelize.DATE,
|
||||
allowNull: false
|
||||
},
|
||||
alamat:{
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
pekerjaan:{
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
golongan_darah:{
|
||||
type: Sequelize.STRING(3),
|
||||
},
|
||||
pendidikan:{
|
||||
type: Sequelize.STRING,
|
||||
},
|
||||
no_telp:{
|
||||
type: Sequelize.STRING(13),
|
||||
},
|
||||
status_pernikahan:{
|
||||
type: Sequelize.STRING(15),
|
||||
},
|
||||
nama_orang_tua_wali:{
|
||||
type: Sequelize.STRING,
|
||||
},
|
||||
nama_pasangan:{
|
||||
type: Sequelize.STRING,
|
||||
}
|
||||
|
||||
},{
|
||||
freezeTableName: true,
|
||||
tableName: 'tb_pasien',
|
||||
});
|
||||
|
||||
return Pasien;
|
||||
}
|
||||
39
server/database/model/rekam_medis.model.js
Normal file
39
server/database/model/rekam_medis.model.js
Normal file
@ -0,0 +1,39 @@
|
||||
module.exports = (sequelize, Sequelize) => {
|
||||
const RekamMedis = sequelize.define("tb_rekam_medis", {
|
||||
id_rekam_medis:{
|
||||
type: Sequelize.INTEGER,
|
||||
allowNull: false,
|
||||
primaryKey: true,
|
||||
autoIncrement: true
|
||||
},
|
||||
tanggal_perikas:{
|
||||
type: Sequelize.DATE,
|
||||
allowNull: false
|
||||
},
|
||||
diagnosa:{
|
||||
type: Sequelize.TEXT("tiny"),
|
||||
allowNull: false
|
||||
},
|
||||
keluhan:{
|
||||
type: Sequelize.TEXT("tiny"),
|
||||
allowNull: false
|
||||
},
|
||||
keterangan:{
|
||||
type: Sequelize.TEXT("tiny"),
|
||||
allowNull: false
|
||||
},
|
||||
tindakan:{
|
||||
type: Sequelize.TEXT("tiny"),
|
||||
allowNull: false
|
||||
},
|
||||
obat : {
|
||||
type: Sequelize.TEXT("tiny"),
|
||||
allowNull: false
|
||||
}
|
||||
},{
|
||||
freezeTableName: true,
|
||||
tableName: 'tb_rekam_medis',
|
||||
});
|
||||
|
||||
return RekamMedis
|
||||
}
|
||||
19
server/database/model/tindakan.model.js
Normal file
19
server/database/model/tindakan.model.js
Normal file
@ -0,0 +1,19 @@
|
||||
module.exports = (sequelize, Sequelize) => {
|
||||
const Tindakan = sequelize.define("tb_tindakan", {
|
||||
id_tindakan:{
|
||||
type: Sequelize.INTEGER,
|
||||
allowNull: false,
|
||||
primaryKey: true,
|
||||
autoIncrement: true
|
||||
},
|
||||
nama_tindakan:{
|
||||
type: Sequelize.STRING,
|
||||
allowNull: false
|
||||
}
|
||||
},{
|
||||
freezeTableName: true,
|
||||
tableName: 'tb_tindakan',
|
||||
})
|
||||
|
||||
return Tindakan
|
||||
}
|
||||
Reference in New Issue
Block a user