first commit

This commit is contained in:
kicap1992
2022-04-27 01:19:12 +08:00
parent 1ac188d93a
commit c3d0676355
38 changed files with 11606 additions and 1486 deletions

View 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
View 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

View 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;
}

View 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
}

View 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;
}

View 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
}

View 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;
}

View 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
}

View 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
}