319 lines
16 KiB
JavaScript
319 lines
16 KiB
JavaScript
"use strict";
|
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
});
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.getAdmissionIdByEncounterId = exports.getJobCondition = exports.updateDataEmrDetailConditionSatSet = exports.updateDataEmrDetailObservationSatSet = exports.insertDataEmrDetailConditionSatSet = exports.insertDataEmrDetailObservationSatSet = exports.getEmrDetailConditionSatSet = exports.getEmrDetailObservationSatSet = exports.updateStatusEmrDetail = exports.getJobObservation = exports.insertDataEncounterSatSet = exports.updateDataEncounterSatSet = exports.getEncounterSatSet = exports.updateStatusRegistrasi = exports.getJobEncounter = void 0;
|
|
const db_1 = require("./../../../db");
|
|
const database_handler_1 = require("./../../../db/database.handler");
|
|
const time_1 = require("./../../../middlewares/time");
|
|
const getJobEncounter = (limit) => __awaiter(void 0, void 0, void 0, function* () {
|
|
const getEncounter = `select
|
|
registrasi.registrasi_id,
|
|
registrasi.jenis_rawat,
|
|
bagian.nama_bagian,
|
|
bagian.bagian_id,
|
|
pegawai.pegawai_id,
|
|
pegawai.nama_pegawai,
|
|
pegawai.nik,
|
|
pasien.no_mr,
|
|
pasien.pasien_id,
|
|
pasien.nama_pasien,
|
|
pasien.ktp,
|
|
pasien.jenis_kelamin,
|
|
pasien.tgl_lahir,
|
|
registrasi_urut.tgl_urut,
|
|
pasien.id_satu_sehat as pasien_ihs_id,
|
|
bagian.id_satu_sehat as location_id,
|
|
pegawai.id_satu_sehat as practitioner_ihs_id
|
|
from
|
|
registrasi
|
|
inner join registrasi_detail on
|
|
registrasi.registrasi_id = registrasi_detail.registrasi_id
|
|
and registrasi_detail.status_batal is null
|
|
inner join registrasi_urut on
|
|
registrasi_detail.registrasi_detail_id = registrasi_urut.registrasi_detail_id
|
|
and registrasi_urut.status_batal is null
|
|
inner join bagian on
|
|
registrasi_detail.bagian_id = bagian.bagian_id
|
|
and bagian.referensi_bagian = 1
|
|
and bagian.id_satu_sehat is not null
|
|
inner join pegawai on
|
|
registrasi_urut.pegawai_id = pegawai.pegawai_id
|
|
and pegawai.id_satu_sehat is not null
|
|
inner join pasien on
|
|
registrasi.pasien_id = pasien.pasien_id
|
|
and pasien.id_satu_sehat is not null
|
|
and pasien.id_satu_sehat <> ''
|
|
inner join emr on
|
|
registrasi.registrasi_id = emr.registrasi_id
|
|
and emr.status_batal is null
|
|
and emr.form_id = 3
|
|
where
|
|
registrasi.status_batal is null
|
|
and registrasi.tgl_masuk::date = now()::date
|
|
and registrasi.status_satu_sehat is null
|
|
and registrasi.id_satu_sehat is null
|
|
limit ${limit}
|
|
`;
|
|
const getEncounterData = yield db_1.prismaDb3.$queryRawUnsafe(getEncounter);
|
|
return getEncounterData;
|
|
});
|
|
exports.getJobEncounter = getJobEncounter;
|
|
const updateStatusRegistrasi = (data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
const updateStatus = yield db_1.prismaDb1.registrasi.update({
|
|
where: {
|
|
registrasi_id: data.registrasi_id,
|
|
},
|
|
data: {
|
|
status_satu_sehat: data.status_satu_sehat,
|
|
id_satu_sehat: data.id_satu_sehat,
|
|
},
|
|
});
|
|
return updateStatus;
|
|
});
|
|
exports.updateStatusRegistrasi = updateStatusRegistrasi;
|
|
const getEncounterSatSet = (registrasiId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
const pasienSatSet = yield db_1.prismaDb2.admission.findFirst({
|
|
where: {
|
|
registrasi_id: parseInt(registrasiId, 10),
|
|
},
|
|
select: {
|
|
id: true,
|
|
pasien_id: true,
|
|
dr_id: true,
|
|
created_date: true,
|
|
},
|
|
});
|
|
return pasienSatSet;
|
|
});
|
|
exports.getEncounterSatSet = getEncounterSatSet;
|
|
const updateDataEncounterSatSet = (responseSatSet, data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
const updateEncounterSatSet = yield db_1.prismaDb2.admission.update({
|
|
where: {
|
|
id: data.id,
|
|
},
|
|
data: {
|
|
encounter_ihs_id: responseSatSet.id,
|
|
last_updated_date: (0, time_1.dateNow)(),
|
|
},
|
|
});
|
|
});
|
|
exports.updateDataEncounterSatSet = updateDataEncounterSatSet;
|
|
const insertDataEncounterSatSet = (data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
const encounterId = yield (0, database_handler_1.generateMaxDb2)("max_admission_idx", "id");
|
|
const insertEncounterSatSet = yield db_1.prismaDb2.admission.create({
|
|
data: {
|
|
id: encounterId,
|
|
bagian_id: data.bagian_id,
|
|
dr_id: data.dr_id,
|
|
pasien_id: data.pasien_id,
|
|
created_date: (0, time_1.dateNow)(),
|
|
admission_type: data.admission_type,
|
|
registrasi_id: data.registrasi_id,
|
|
},
|
|
});
|
|
});
|
|
exports.insertDataEncounterSatSet = insertDataEncounterSatSet;
|
|
const getEmrDetailObservationSatSet = (data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
const pasienSatSet = yield db_1.prismaDb2.admission_observation.findFirst({
|
|
where: {
|
|
observation_ext_id: data.emr_detail_id,
|
|
},
|
|
select: {
|
|
admission_id: true,
|
|
observation_value: true,
|
|
observation_type: true,
|
|
created_date: true,
|
|
},
|
|
});
|
|
return pasienSatSet;
|
|
});
|
|
exports.getEmrDetailObservationSatSet = getEmrDetailObservationSatSet;
|
|
const getEmrDetailConditionSatSet = (data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
const pasienSatSet = yield db_1.prismaDb2.dischargediagnosis.findFirst({
|
|
where: {
|
|
diag_ext_id: data.emr_detail_id,
|
|
},
|
|
select: {
|
|
admission_id: true,
|
|
diag_code: true,
|
|
created_date: true,
|
|
},
|
|
});
|
|
return pasienSatSet;
|
|
});
|
|
exports.getEmrDetailConditionSatSet = getEmrDetailConditionSatSet;
|
|
const updateDataEmrDetailObservationSatSet = (responseSatSet, data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
const updateEmrDetailSatSet = yield db_1.prismaDb2.admission_observation.updateMany({
|
|
where: {
|
|
observation_ext_id: parseInt(data.emr_detail_id, 10),
|
|
},
|
|
data: {
|
|
observation_ihs_id: responseSatSet.id,
|
|
last_updated_date: (0, time_1.dateNow)(),
|
|
},
|
|
});
|
|
return updateEmrDetailSatSet;
|
|
});
|
|
exports.updateDataEmrDetailObservationSatSet = updateDataEmrDetailObservationSatSet;
|
|
const getAdmissionIdByEncounterId = (encounter_id) => __awaiter(void 0, void 0, void 0, function* () {
|
|
const admissionId = yield db_1.prismaDb2.admission.findFirst({
|
|
where: {
|
|
encounter_ihs_id: encounter_id,
|
|
},
|
|
select: {
|
|
id: true,
|
|
},
|
|
});
|
|
return admissionId;
|
|
});
|
|
exports.getAdmissionIdByEncounterId = getAdmissionIdByEncounterId;
|
|
const insertDataEmrDetailObservationSatSet = (data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
const insertEmrDetailSatSet = yield db_1.prismaDb2.admission_observation.create({
|
|
data: {
|
|
admission_id: data.admission_id,
|
|
observation_value: data.value,
|
|
observation_type: data.type,
|
|
created_date: (0, time_1.dateNow)(),
|
|
observation_ext_id: data.emr_detail_id,
|
|
},
|
|
});
|
|
return insertEmrDetailSatSet;
|
|
});
|
|
exports.insertDataEmrDetailObservationSatSet = insertDataEmrDetailObservationSatSet;
|
|
const updateDataEmrDetailConditionSatSet = (responseSatSet, data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
const updateEmrDetailSatSet = yield db_1.prismaDb2.dischargediagnosis.updateMany({
|
|
where: {
|
|
diag_ext_id: parseInt(data.emr_detail_id, 10),
|
|
},
|
|
data: {
|
|
condition_ihs_id: responseSatSet.id,
|
|
last_updated_date: (0, time_1.dateNow)(),
|
|
},
|
|
});
|
|
return updateEmrDetailSatSet;
|
|
});
|
|
exports.updateDataEmrDetailConditionSatSet = updateDataEmrDetailConditionSatSet;
|
|
const insertDataEmrDetailConditionSatSet = (data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
const insertEmrDetailSatSet = yield db_1.prismaDb2.dischargediagnosis.create({
|
|
data: {
|
|
admission_id: data.admission_id,
|
|
diag_code: data.diag_code,
|
|
diag_status: data.diag_status,
|
|
created_date: (0, time_1.dateNow)(),
|
|
diag_label: data.diag_label,
|
|
diag_ext_id: data.emr_detail_id,
|
|
},
|
|
});
|
|
return insertEmrDetailSatSet;
|
|
});
|
|
exports.insertDataEmrDetailConditionSatSet = insertDataEmrDetailConditionSatSet;
|
|
const getJobObservation = (limit, objekId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
const getObservation = `select
|
|
emr_detail.emr_detail_id,
|
|
emr_detail.objek_id,
|
|
emr_detail.variabel,
|
|
emr_detail.value,
|
|
registrasi.id_satu_sehat as encounter_id,
|
|
pasien.id_satu_sehat as patient_ihs_id,
|
|
pasien.nama_pasien,
|
|
pegawai.id_satu_sehat as practitioner_ihs_id,
|
|
pegawai.nama_pegawai,
|
|
emr_detail.input_time
|
|
from
|
|
registrasi
|
|
inner join pasien on
|
|
registrasi.pasien_id = pasien.pasien_id
|
|
and pasien.id_satu_sehat is not null
|
|
inner join emr on
|
|
registrasi.registrasi_id = emr.registrasi_id
|
|
and emr.status_batal is null
|
|
and emr.form_id = 10
|
|
inner join users on
|
|
emr.input_user_id = users.user_id
|
|
inner join pegawai on
|
|
users.pegawai_id = pegawai.pegawai_id
|
|
and pegawai.id_satu_sehat is not null
|
|
inner join emr_detail on
|
|
emr.emr_id = emr_detail.emr_id
|
|
and emr_detail.status_batal is null
|
|
and emr_detail.objek_id = ${objekId}
|
|
and emr_detail.status_satu_sehat is NULL
|
|
where
|
|
registrasi.status_batal is null
|
|
and registrasi.id_satu_sehat is not null
|
|
and registrasi.tgl_masuk::date = now()::date
|
|
limit ${limit}`;
|
|
const getObservationData = yield db_1.prismaDb3.$queryRawUnsafe(getObservation);
|
|
const formattedData = getObservationData.map((item) => (Object.assign(Object.assign({}, item), { emr_detail_id: item.emr_detail_id.toString() })));
|
|
return formattedData;
|
|
});
|
|
exports.getJobObservation = getJobObservation;
|
|
const updateStatusEmrDetail = (data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
const updateStatus = yield db_1.prismaDb1.emr_detail.update({
|
|
where: {
|
|
emr_detail_id: data.emr_detail_id,
|
|
},
|
|
data: {
|
|
status_satu_sehat: data.status_satu_sehat,
|
|
id_satu_sehat: data.id_satu_sehat,
|
|
},
|
|
});
|
|
return updateStatus;
|
|
});
|
|
exports.updateStatusEmrDetail = updateStatusEmrDetail;
|
|
const getJobCondition = (limit) => __awaiter(void 0, void 0, void 0, function* () {
|
|
const getCondition = `select
|
|
emr_detail.emr_detail_id,
|
|
emr_detail.objek_id,
|
|
emr_detail.variabel,
|
|
emr_detail.value,
|
|
registrasi.id_satu_sehat as encounter_id,
|
|
pasien.id_satu_sehat as patient_ihs_id,
|
|
pasien.nama_pasien,
|
|
pegawai.id_satu_sehat as practitioner_ihs_id,
|
|
pegawai.nama_pegawai,
|
|
emr_detail.input_time,
|
|
icd.kode_diagnosa,
|
|
icd.nama_diagnosa
|
|
from
|
|
registrasi
|
|
inner join pasien on
|
|
registrasi.pasien_id = pasien.pasien_id
|
|
and pasien.id_satu_sehat is not null
|
|
inner join emr on
|
|
registrasi.registrasi_id = emr.registrasi_id
|
|
and emr.status_batal is null
|
|
and emr.form_id = 3
|
|
inner join users on
|
|
emr.input_user_id = users.user_id
|
|
inner join pegawai on
|
|
users.pegawai_id = pegawai.pegawai_id
|
|
and pegawai.id_satu_sehat is not null
|
|
inner join emr_detail on
|
|
emr.emr_id = emr_detail.emr_id
|
|
and emr_detail.status_batal is null
|
|
and emr_detail.objek_id = 42
|
|
and emr_detail.variabel in ('primary', 'secondary')
|
|
and emr_detail.value is not null
|
|
and emr_detail.status_satu_sehat is null
|
|
inner join icd on
|
|
emr_detail.value::int = icd.icd_id
|
|
where
|
|
registrasi.status_batal is null
|
|
and registrasi.id_satu_sehat is not null
|
|
and registrasi.tgl_masuk::date = now()::date
|
|
limit ${limit}`;
|
|
const getConditionData = yield db_1.prismaDb3.$queryRawUnsafe(getCondition);
|
|
const formattedData = getConditionData.map((item) => (Object.assign(Object.assign({}, item), { emr_detail_id: item.emr_detail_id.toString() })));
|
|
return formattedData;
|
|
});
|
|
exports.getJobCondition = getJobCondition;
|