test-resab/backend/dist/api/satu-sehat/pelayanan-rawat-jalan/pelayanan-rawat-jalan.repository.js
2025-04-27 23:29:32 +07:00

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;