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

334 lines
12 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.getDataKfa = exports.updateInsertIdPatientRepo = exports.getDataPatient = exports.updateInsertIdPractitionerRepo = exports.getDataPractitioner = exports.updateStatusPegawai = exports.getPractitionerSimrs = exports.getJob = exports.updateStatusPasien = exports.updateJobData = exports.insertJobData = exports.getPatientSimrs = exports.updateDataPractitionerSatSet = exports.insertDataPractitionerSatSet = exports.getPractitionerSatSet = exports.updateDataPatientSatSet = exports.insertDataPatientSatSet = exports.getPatientSatSet = void 0;
const db_1 = require("./../../../db");
const database_handler_1 = require("./../../../db/database.handler");
const time_1 = require("./../../../middlewares/time");
const getPatientSimrs = (limit) => __awaiter(void 0, void 0, void 0, function* () {
const patientSimrs = yield db_1.prismaDb1.pasien.findMany({
where: {
id_satu_sehat: null,
ktp: {
not: null,
},
status_satu_sehat: null,
},
select: {
no_mr: true,
pasien_id: true,
ktp: true,
tgl_lahir: true,
nama_pasien: true,
jenis_kelamin: true,
},
orderBy: {
no_mr: "asc",
},
take: limit,
});
return patientSimrs;
});
exports.getPatientSimrs = getPatientSimrs;
const getPractitionerSimrs = (limit) => __awaiter(void 0, void 0, void 0, function* () {
const practitionerSimrs = yield db_1.prismaDb1.pegawai.findMany({
where: {
id_satu_sehat: null,
status_batal: null,
nik: {
not: null,
},
},
select: {
pegawai_id: true,
nama_pegawai: true,
nik: true,
},
orderBy: {
pegawai_id: "asc",
},
take: limit,
});
return practitionerSimrs;
});
exports.getPractitionerSimrs = getPractitionerSimrs;
const getPatientSatSet = (no_mr) => __awaiter(void 0, void 0, void 0, function* () {
const pasienSatSet = yield db_1.prismaDb2.patient.findFirst({
where: {
no_mr,
},
select: {
patient_ihs_id: true,
patient_name: true,
pasien_id: true,
},
});
return pasienSatSet;
});
exports.getPatientSatSet = getPatientSatSet;
const getPractitionerSatSet = (pegawaiId) => __awaiter(void 0, void 0, void 0, function* () {
const practitionerSatSet = yield db_1.prismaDb2.practitioner.findFirst({
where: {
pegawai_id: pegawaiId,
},
select: {
practitioner_ihs_id: true,
practitioner_name: true,
id: true,
},
});
return practitionerSatSet;
});
exports.getPractitionerSatSet = getPractitionerSatSet;
const insertDataPatientSatSet = (data) => __awaiter(void 0, void 0, void 0, function* () {
const patient = yield db_1.prismaDb2.patient.create({
data: {
pasien_id: data.pasien_id,
patient_name: data.nama_pasien,
created_date: (0, time_1.dateNow)(),
birth_date: new Date(data.tgl_lahir),
nik: data.nik,
no_mr: data.no_mr,
},
});
return patient;
});
exports.insertDataPatientSatSet = insertDataPatientSatSet;
const getDataKfa = (kfa_name) => __awaiter(void 0, void 0, void 0, function* () {
const kfa_data = yield db_1.prismaDb2.kfa_references.findMany({
where: {
kfa_name: {
contains: kfa_name,
mode: "insensitive",
},
},
select: {
kfa_code: true,
kfa_name: true,
},
});
return kfa_data;
});
exports.getDataKfa = getDataKfa;
const updateDataPatientSatSet = (responseSatSet, data) => __awaiter(void 0, void 0, void 0, function* () {
const patient = yield db_1.prismaDb2.patient.update({
where: {
pasien_id: data.pasien_id,
},
data: {
patient_ihs_id: responseSatSet.entry[0].resource.id,
last_updated_date: (0, time_1.dateNow)(),
ihs_json_data: responseSatSet,
},
});
return patient;
});
exports.updateDataPatientSatSet = updateDataPatientSatSet;
const insertDataPractitionerSatSet = (responseSatSet, data) => __awaiter(void 0, void 0, void 0, function* () {
const idPractiitioner = yield (0, database_handler_1.generateMaxDb2)("max_practitioner_idx", "id");
const practitioner = yield db_1.prismaDb2.practitioner.create({
data: {
id: idPractiitioner,
practitioner_name: responseSatSet.entry[0].resource.name[0].text,
created_date: (0, time_1.dateNow)(),
birth_date: new Date(responseSatSet.entry[0].resource.birthDate),
gender: responseSatSet.entry[0].resource.gender,
practitioner_ihs_id: responseSatSet.entry[0].resource.id,
ihs_json_data: responseSatSet,
nik: data.nik,
pegawai_id: data.pegawai_id,
},
});
return practitioner;
});
exports.insertDataPractitionerSatSet = insertDataPractitionerSatSet;
const updateDataPractitionerSatSet = (responseSatSet, data) => __awaiter(void 0, void 0, void 0, function* () {
const patient = yield db_1.prismaDb2.practitioner.updateMany({
where: {
id: data.id,
},
data: {
practitioner_name: responseSatSet.entry[0].resource.name[0].text,
created_date: (0, time_1.dateNow)(),
birth_date: new Date(responseSatSet.entry[0].resource.birthDate),
gender: responseSatSet.entry[0].resource.gender,
practitioner_ihs_id: responseSatSet.entry[0].resource.id,
ihs_json_data: responseSatSet,
nik: data.nik,
pegawai_id: data.pegawai_id,
},
});
return patient;
});
exports.updateDataPractitionerSatSet = updateDataPractitionerSatSet;
const insertJobData = (data) => __awaiter(void 0, void 0, void 0, function* () {
const idJob = yield (0, database_handler_1.generateMaxDb2)("max_job_idx", "id");
const job = yield db_1.prismaDb2.job.create({
data: {
id: idJob,
created_date: (0, time_1.dateNow)(),
endpoint_name: data.endpoint_name,
payload: data.payload,
status: data.status,
method: data.method,
url: data.url,
key_simrs: data.key_simrs,
},
});
return job;
});
exports.insertJobData = insertJobData;
const updateJobData = (data) => __awaiter(void 0, void 0, void 0, function* () {
const job = yield db_1.prismaDb2.job.update({
where: {
id: data.id,
},
data: {
last_updated_date: (0, time_1.dateNow)(),
status: data.status,
response: data.response,
},
});
return job;
});
exports.updateJobData = updateJobData;
const updateStatusPasien = (data) => __awaiter(void 0, void 0, void 0, function* () {
const updateStatus = yield db_1.prismaDb1.pasien.updateMany({
where: {
no_mr: data.no_mr,
},
data: {
status_satu_sehat: data.status_satu_sehat,
id_satu_sehat: data.id_satu_sehat,
},
});
return updateStatus;
});
exports.updateStatusPasien = updateStatusPasien;
const updateStatusPegawai = (data) => __awaiter(void 0, void 0, void 0, function* () {
const updateStatus = yield db_1.prismaDb1.pegawai.update({
where: {
pegawai_id: data.pegawai_id,
},
data: {
id_satu_sehat: data.id_satu_sehat,
},
});
return updateStatus;
});
exports.updateStatusPegawai = updateStatusPegawai;
const getJob = (endpoint_name, limit) => __awaiter(void 0, void 0, void 0, function* () {
const job = yield db_1.prismaDb2.job.findMany({
where: {
status: {
in: [1, 3],
},
endpoint_name: endpoint_name,
},
select: {
id: true,
created_date: true,
endpoint_name: true,
payload: true,
status: true,
method: true,
url: true,
key_simrs: true,
},
orderBy: [
{
status: "asc",
},
{
created_date: "asc",
},
],
take: limit,
});
return job;
});
exports.getJob = getJob;
const getDataPractitioner = (limit) => __awaiter(void 0, void 0, void 0, function* () {
const getDataPegawai = yield db_1.prismaDb1.$queryRaw `
SELECT
pegawai.pegawai_id,
pegawai.nik
FROM
pegawai
LEFT JOIN resources ON
resources.key_simrs = pegawai.pegawai_id
WHERE
pegawai.status_batal is null
AND pegawai.nik IS NOT NULL
AND resources.resources_id IS NULL
ORDER BY
pegawai.pegawai_id ASC
LIMIT ${parseInt(limit, 10)};
`;
return getDataPegawai;
});
exports.getDataPractitioner = getDataPractitioner;
const updateInsertIdPractitionerRepo = (pegawai_id, response, id, type) => __awaiter(void 0, void 0, void 0, function* () {
const resourcesId = yield (0, database_handler_1.generateMaxDb1)("max_resources_idx", "resources_id");
const insertRujukan = yield db_1.prismaDb1.resources.create({
data: {
resources_id: resourcesId,
input_time: (0, time_1.dateNow)(),
input_user_id: 1,
key_simrs: pegawai_id,
key_satu_sehat: id,
resources_type: type,
response: response,
},
});
});
exports.updateInsertIdPractitionerRepo = updateInsertIdPractitionerRepo;
const getDataPatient = (limit) => __awaiter(void 0, void 0, void 0, function* () {
const getDataPasien = yield db_1.prismaDb1.$queryRaw `
SELECT
pasien.pasien_id,
TRIM(pasien.ktp) ktp
FROM
pasien
LEFT JOIN resources ON
resources.key_simrs = pasien.pasien_id
WHERE
pasien.status_batal is null
AND pasien.ktp IS NOT NULL
AND LENGTH(TRIM(pasien.ktp)) = 16
AND resources.resources_id IS NULL
ORDER BY
pasien.pasien_id DESC
LIMIT ${parseInt(limit, 10)};
`;
return getDataPasien;
});
exports.getDataPatient = getDataPatient;
const updateInsertIdPatientRepo = (pasien_id, response, id, type, gagal = null) => __awaiter(void 0, void 0, void 0, function* () {
const resourcesId = yield (0, database_handler_1.generateMaxDb1)("max_resources_idx", "resources_id");
let data = {
resources_id: resourcesId,
input_time: (0, time_1.dateNow)(),
input_user_id: 1,
key_simrs: pasien_id,
key_satu_sehat: id,
resources_type: type,
response: response,
};
if (gagal === 1) {
data.status = 1;
}
const insertRujukan = yield db_1.prismaDb1.resources.create({
data,
});
});
exports.updateInsertIdPatientRepo = updateInsertIdPatientRepo;