2025-04-27 23:29:32 +07:00

781 lines
33 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.getResourcesKfaService = exports.getPatientSendAllService = exports.getPractitionerSendAllService = exports.getLocationIdService = exports.createLocationService = exports.getOrganizationIdService = exports.getOrganizationPartofService = exports.createOrganizationService = exports.getPractitionerNikService = exports.getPatientNikService = exports.createJobPractitioner = exports.pushJobService = exports.createJobPasien = void 0;
const config_1 = require("../../../utils/config");
const resources_repository_1 = require("./resources.repository");
const generate_token_service_1 = require("../generate-token/generate-token.service");
const axiosClient_1 = require("../../../utils/axiosClient");
const date_fns_tz_1 = require("date-fns-tz");
const pelayanan_rawat_jalan_repository_1 = require("../pelayanan-rawat-jalan/pelayanan-rawat-jalan.repository");
const date = new Date();
const timeZone = config_1.environment.timezone;
const formattedUtcDate = new Date((0, date_fns_tz_1.format)(date, "yyyy-MM-dd HH:mm:ss", { timeZone }) + " UTC");
const baseUrl = config_1.environment.satusehat.url_base;
const orgId = config_1.environment.satusehat.org_id;
const createJobPasien = (limit) => __awaiter(void 0, void 0, void 0, function* () {
const getDataPasien = yield (0, resources_repository_1.getPatientSimrs)(limit);
if (getDataPasien.length < 1) {
return {
message: "Tidak ada data",
code: 200,
};
}
let dataPatient = yield Promise.all(getDataPasien.map((item) => __awaiter(void 0, void 0, void 0, function* () {
const dataJob = {
endpoint_name: "patient",
status: 1,
method: "GET",
url: `/Patient?identifier=https://fhir.kemkes.go.id/id/nik|${item.ktp}`,
key_simrs: item.no_mr,
};
const checkPatientSatSet = yield (0, resources_repository_1.insertJobData)(dataJob);
if (!checkPatientSatSet) {
return {
no_mr: item.no_mr,
ktp: item.ktp,
birthdate: item.birthdate,
gender: item.gender,
status: "failed",
};
}
else {
const updateStatus = yield (0, resources_repository_1.updateStatusPasien)({
no_mr: item.no_mr,
status_satu_sehat: 1,
});
const checkPatientSatSet = yield (0, resources_repository_1.getPatientSatSet)(item.no_mr);
if (!checkPatientSatSet) {
const insertPatient = yield (0, resources_repository_1.insertDataPatientSatSet)({
pasien_id: item.pasien_id,
nama_pasien: item.nama_pasien,
tgl_lahir: item.tgl_lahir,
nik: item.ktp,
no_mr: item.no_mr,
});
}
return {
no_mr: item.no_mr,
ktp: item.ktp,
birthdate: item.birthdate,
gender: item.gender,
status: "success",
};
}
})));
return {
data: dataPatient,
code: 200,
message: "success",
};
});
exports.createJobPasien = createJobPasien;
const createJobPractitioner = (limit) => __awaiter(void 0, void 0, void 0, function* () {
const getDataPractitioner = yield (0, resources_repository_1.getPractitionerSimrs)(limit);
if (getDataPractitioner.length < 1) {
return {
message: "Tidak ada data",
code: 200,
};
}
let dataPractitioner = yield Promise.all(getDataPractitioner.map((item) => __awaiter(void 0, void 0, void 0, function* () {
let pegawaiId = item.pegawai_id;
const dataJob = {
endpoint_name: "practitioner",
status: 1,
method: "GET",
url: `/Practitioner?identifier=https://fhir.kemkes.go.id/id/nik|${item.nik}`,
key_simrs: pegawaiId.toString(),
};
const checkPractitionerSatSet = yield (0, resources_repository_1.insertJobData)(dataJob);
if (!checkPractitionerSatSet) {
return {
pegawai_id: pegawaiId,
ktp: item.ktp,
nama_pegawai: item.nama_pegawai,
status: "failed",
};
}
else {
return {
pegawai_id: pegawaiId,
ktp: item.ktp,
nama_pegawai: item.nama_pegawai,
status: "success",
};
}
})));
return {
data: {
jumlah_data: dataPractitioner.length,
dataPractitioner,
},
code: 200,
message: "success",
};
});
exports.createJobPractitioner = createJobPractitioner;
const pushJobService = (endpoint_name, limit) => __awaiter(void 0, void 0, void 0, function* () {
var _a;
const getJobRepository = yield (0, resources_repository_1.getJob)(endpoint_name, limit);
if (getJobRepository.length < 1) {
return {
message: "Tidak ada data",
code: 200,
};
}
const tokenService = yield (0, generate_token_service_1.checkTokenService)();
if ((tokenService === null || tokenService === void 0 ? void 0 : tokenService.code) !== 200) {
throw new Error("Generate Token Failed");
}
let token = (_a = tokenService === null || tokenService === void 0 ? void 0 : tokenService.data) === null || _a === void 0 ? void 0 : _a.access_token;
let dataJob = yield Promise.all(getJobRepository.map((item) => __awaiter(void 0, void 0, void 0, function* () {
const headersData = {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
};
const url = `${baseUrl}${item.url}`;
const method = item.method;
const payload = item.payload;
const response = yield (0, axiosClient_1.requestAxios)(headersData, url, method, payload);
const key_simrs = item.key_simrs;
if (item.endpoint_name === "patient") {
const executePatient = yield executePatientService(response, item, key_simrs);
return executePatient;
}
else if (item.endpoint_name === "encounter") {
const executeEncounter = yield executeEncounterService(response, item, key_simrs);
return executeEncounter;
}
else if (item.endpoint_name === "practitioner") {
const executePractitioner = yield executePractitionerService(response, item, key_simrs);
return executePractitioner;
}
else if (item.endpoint_name === "observation") {
const executeObservation = yield executeObservationService(response, item, key_simrs);
return executeObservation;
}
else if (item.endpoint_name === "condition") {
const executeCondition = yield executeConditionService(response, item, key_simrs);
return executeCondition;
}
})));
return {
data: dataJob,
code: 200,
message: "success",
};
});
exports.pushJobService = pushJobService;
const executePatientService = (response, item, key_simrs) => __awaiter(void 0, void 0, void 0, function* () {
if (response.status === 200) {
if (response.data.resourceType === "OperationOutcome") {
const updateStatus = yield (0, resources_repository_1.updateStatusPasien)({
no_mr: key_simrs,
status_satu_sehat: 3,
});
const updateJob = yield (0, resources_repository_1.updateJobData)({
id: item.id,
response: response.data,
status: 3,
});
return {
job_id: item.id,
status: "failed",
response: response.data,
};
}
else {
if (response.data.total > 0) {
const checkPatientSatSet = yield (0, resources_repository_1.getPatientSatSet)(key_simrs);
if (checkPatientSatSet) {
const updatePatientSatSet = yield (0, resources_repository_1.updateDataPatientSatSet)(response.data, {
no_mr: key_simrs,
pasien_id: checkPatientSatSet.pasien_id,
});
}
const updateStatus = yield (0, resources_repository_1.updateStatusPasien)({
no_mr: key_simrs,
status_satu_sehat: 2,
id_satu_sehat: response.data.entry[0].resource.id,
});
const updateJob = yield (0, resources_repository_1.updateJobData)({
id: item.id,
response: response.data,
status: 2,
});
return {
job_id: item.id,
status: "success",
response: response.data.entry[0].resource,
};
}
else {
const updateStatus = yield (0, resources_repository_1.updateStatusPasien)({
no_mr: key_simrs,
status_satu_sehat: 3,
});
const updateJob = yield (0, resources_repository_1.updateJobData)({
id: item.id,
response: response.data,
status: 3,
});
return {
job_id: item.id,
status: "failed",
response: response.data,
};
}
}
}
else {
const updateStatus = yield (0, resources_repository_1.updateStatusPasien)({
no_mr: key_simrs,
status_satu_sehat: 3,
});
const updateJob = yield (0, resources_repository_1.updateJobData)({
id: item.id,
response: response.data,
status: 3,
});
return {
job_id: item.id,
status: "failed",
response: response.data,
};
}
});
const executeEncounterService = (response, item, key_simrs) => __awaiter(void 0, void 0, void 0, function* () {
if (response.status === 201) {
if (response.data.resourceType === "OperationOutcome") {
const updateStatus = yield (0, pelayanan_rawat_jalan_repository_1.updateStatusRegistrasi)({
registrasi_id: parseInt(key_simrs, 10),
status_satu_sehat: 3,
});
const updateJob = yield (0, resources_repository_1.updateJobData)({
id: item.id,
response: response.data,
status: 3,
});
return {
job_id: item.id,
status: "failed",
response: response.data,
};
}
else {
const checkEncounterSatSet = yield (0, pelayanan_rawat_jalan_repository_1.getEncounterSatSet)(key_simrs);
if (checkEncounterSatSet) {
const updateEncounterSatSet = yield (0, pelayanan_rawat_jalan_repository_1.updateDataEncounterSatSet)(response.data, {
registrasi_id: key_simrs,
id: checkEncounterSatSet.id,
});
}
const updateStatus = yield (0, pelayanan_rawat_jalan_repository_1.updateStatusRegistrasi)({
registrasi_id: parseInt(key_simrs, 10),
status_satu_sehat: 2,
id_satu_sehat: response.data.id,
});
const updateJob = yield (0, resources_repository_1.updateJobData)({
id: item.id,
response: response.data,
status: 2,
});
return {
job_id: item.id,
status: "success",
response: response.data,
};
}
}
else {
const updateStatus = yield (0, pelayanan_rawat_jalan_repository_1.updateStatusRegistrasi)({
registrasi_id: parseInt(key_simrs, 10),
status_satu_sehat: 3,
});
const updateJob = yield (0, resources_repository_1.updateJobData)({
id: item.id,
response: response.data,
status: 3,
});
return {
job_id: item.id,
status: "failed",
response: response.data,
};
}
});
const executePractitionerService = (response, item, key_simrs) => __awaiter(void 0, void 0, void 0, function* () {
let url = item.url;
let nik = url.substring(58);
if (response.status === 200) {
if (response.data.resourceType === "OperationOutcome") {
const updateJob = yield (0, resources_repository_1.updateJobData)({
id: item.id,
response: response.data,
status: 3,
});
return {
job_id: item.id,
status: "failed",
response: response.data,
};
}
else {
if (response.data.total > 0) {
const checkPractitionerSatSet = yield (0, resources_repository_1.getPractitionerSatSet)(key_simrs);
if (checkPractitionerSatSet) {
const updatePractitionerSatSet = yield (0, resources_repository_1.updateDataPractitionerSatSet)(response.data, {
pegawai_id: key_simrs,
nik: nik,
id: checkPractitionerSatSet.id,
});
}
else {
const insertPractitionerSatSet = yield (0, resources_repository_1.insertDataPractitionerSatSet)(response.data, {
pegawai_id: key_simrs,
nik: nik,
});
}
const updateStatus = yield (0, resources_repository_1.updateStatusPegawai)({
pegawai_id: parseInt(key_simrs, 10),
status_satu_sehat: 2,
id_satu_sehat: response.data.entry[0].resource.id,
});
const updateJob = yield (0, resources_repository_1.updateJobData)({
id: item.id,
response: response.data,
status: 2,
});
return {
job_id: item.id,
status: "success",
response: response.data,
};
}
else {
const updateJob = yield (0, resources_repository_1.updateJobData)({
id: item.id,
response: response.data,
status: 3,
});
return {
job_id: item.id,
status: "failed",
response: response.data,
};
}
}
}
else {
const updateJob = yield (0, resources_repository_1.updateJobData)({
id: item.id,
response: response.data,
status: 3,
});
return {
job_id: item.id,
status: "failed",
response: response.data,
};
}
});
const executeObservationService = (response, item, key_simrs) => __awaiter(void 0, void 0, void 0, function* () {
if (response.status === 201) {
if (response.data.resourceType === "OperationOutcome") {
const updateStatus = yield (0, pelayanan_rawat_jalan_repository_1.updateStatusEmrDetail)({
emr_detail_id: parseInt(key_simrs, 10),
status_satu_sehat: 3,
});
const updateJob = yield (0, resources_repository_1.updateJobData)({
id: item.id,
response: response.data,
status: 3,
});
return {
job_id: item.id,
status: "failed",
response: response.data,
};
}
else {
const checkEmrDetailObservationSatSet = yield (0, pelayanan_rawat_jalan_repository_1.getEmrDetailObservationSatSet)(key_simrs);
if (checkEmrDetailObservationSatSet) {
const updateEmrDetailSatSet = yield (0, pelayanan_rawat_jalan_repository_1.updateDataEmrDetailObservationSatSet)(response.data, {
emr_detail_id: key_simrs,
id: checkEmrDetailObservationSatSet.admission_id,
});
}
const updateStatus = yield (0, pelayanan_rawat_jalan_repository_1.updateStatusEmrDetail)({
emr_detail_id: parseInt(key_simrs, 10),
status_satu_sehat: 2,
id_satu_sehat: response.data.id,
});
const updateJob = yield (0, resources_repository_1.updateJobData)({
id: item.id,
response: response.data,
status: 2,
});
return {
job_id: item.id,
status: "success",
response: response.data,
};
}
}
else {
const updateStatus = yield (0, pelayanan_rawat_jalan_repository_1.updateStatusEmrDetail)({
emr_detail_id: parseInt(key_simrs, 10),
status_satu_sehat: 3,
});
const updateJob = yield (0, resources_repository_1.updateJobData)({
id: item.id,
response: response.data,
status: 3,
});
return {
job_id: item.id,
status: "failed",
response: response.data,
};
}
});
const executeConditionService = (response, item, key_simrs) => __awaiter(void 0, void 0, void 0, function* () {
if (response.status === 201) {
if (response.data.resourceType === "OperationOutcome") {
const updateStatus = yield (0, pelayanan_rawat_jalan_repository_1.updateStatusEmrDetail)({
emr_detail_id: parseInt(key_simrs, 10),
status_satu_sehat: 3,
});
const updateJob = yield (0, resources_repository_1.updateJobData)({
id: item.id,
response: response.data,
status: 3,
});
return {
job_id: item.id,
status: "failed",
response: response.data,
};
}
else {
const checkEmrDetailSatSet = yield (0, pelayanan_rawat_jalan_repository_1.getEmrDetailConditionSatSet)(key_simrs);
if (checkEmrDetailSatSet) {
const updateEmrDetailSatSet = yield (0, pelayanan_rawat_jalan_repository_1.updateDataEmrDetailConditionSatSet)(response.data, {
emr_detail_id: key_simrs,
id: checkEmrDetailSatSet.admission_id,
});
}
const updateStatus = yield (0, pelayanan_rawat_jalan_repository_1.updateStatusEmrDetail)({
emr_detail_id: parseInt(key_simrs, 10),
status_satu_sehat: 2,
id_satu_sehat: response.data.id,
});
const updateJob = yield (0, resources_repository_1.updateJobData)({
id: item.id,
response: response.data,
status: 2,
});
return {
job_id: item.id,
status: "success",
response: response.data,
};
}
}
else {
const updateStatus = yield (0, pelayanan_rawat_jalan_repository_1.updateStatusEmrDetail)({
emr_detail_id: parseInt(key_simrs, 10),
status_satu_sehat: 3,
});
const updateJob = yield (0, resources_repository_1.updateJobData)({
id: item.id,
response: response.data,
status: 3,
});
return {
job_id: item.id,
status: "failed",
response: response.data,
};
}
});
const getPatientNikService = (nik) => __awaiter(void 0, void 0, void 0, function* () {
var _b;
const tokenService = yield (0, generate_token_service_1.checkTokenService)();
if ((tokenService === null || tokenService === void 0 ? void 0 : tokenService.code) !== 200) {
throw new Error("Generate Token Failed");
}
let token = (_b = tokenService === null || tokenService === void 0 ? void 0 : tokenService.data) === null || _b === void 0 ? void 0 : _b.access_token;
const headersData = {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
};
const url = `${baseUrl}/Patient?identifier=https://fhir.kemkes.go.id/id/nik|${nik}`;
const method = "GET";
const payload = null;
const response = yield (0, axiosClient_1.requestAxios)(headersData, url, method, payload);
return response;
});
exports.getPatientNikService = getPatientNikService;
const getPractitionerNikService = (nik) => __awaiter(void 0, void 0, void 0, function* () {
var _c;
const tokenService = yield (0, generate_token_service_1.checkTokenService)();
if ((tokenService === null || tokenService === void 0 ? void 0 : tokenService.code) !== 200) {
throw new Error("Generate Token Failed");
}
let token = (_c = tokenService === null || tokenService === void 0 ? void 0 : tokenService.data) === null || _c === void 0 ? void 0 : _c.access_token;
const headersData = {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
};
const url = `${baseUrl}/Practitioner?identifier=https://fhir.kemkes.go.id/id/nik|${nik}`;
const method = "GET";
const payload = null;
const response = yield (0, axiosClient_1.requestAxios)(headersData, url, method, payload);
return response;
});
exports.getPractitionerNikService = getPractitionerNikService;
const createOrganizationService = (data) => __awaiter(void 0, void 0, void 0, function* () {
var _d;
const tokenService = yield (0, generate_token_service_1.checkTokenService)();
if ((tokenService === null || tokenService === void 0 ? void 0 : tokenService.code) !== 200) {
throw new Error("Generate Token Failed");
}
let token = (_d = tokenService === null || tokenService === void 0 ? void 0 : tokenService.data) === null || _d === void 0 ? void 0 : _d.access_token;
const headersData = {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
};
const url = `${baseUrl}/Organization`;
const method = "POST";
const payload = {
resourceType: "Organization",
active: true,
identifier: [
{
use: "official",
system: "http://sys-ids.kemkes.go.id/organization/" + orgId,
value: data.bagian_id,
},
],
type: [
{
coding: [
{
system: "http://terminology.hl7.org/CodeSystem/organization-type",
code: "dept",
display: "Hospital Department",
},
],
},
],
name: data.nama_bagian,
partOf: {
reference: "Organization/" + orgId,
},
};
const response = yield (0, axiosClient_1.requestAxios)(headersData, url, method, payload);
return response;
});
exports.createOrganizationService = createOrganizationService;
const getOrganizationPartofService = (organization_id) => __awaiter(void 0, void 0, void 0, function* () {
var _e;
const tokenService = yield (0, generate_token_service_1.checkTokenService)();
if ((tokenService === null || tokenService === void 0 ? void 0 : tokenService.code) !== 200) {
throw new Error("Generate Token Failed");
}
let token = (_e = tokenService === null || tokenService === void 0 ? void 0 : tokenService.data) === null || _e === void 0 ? void 0 : _e.access_token;
const headersData = {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
};
organization_id = organization_id !== null && organization_id !== void 0 ? organization_id : orgId;
const url = `${baseUrl}/Organization?partof=${organization_id}`;
const method = "GET";
const payload = null;
const response = yield (0, axiosClient_1.requestAxios)(headersData, url, method, payload);
return response;
});
exports.getOrganizationPartofService = getOrganizationPartofService;
const getOrganizationIdService = (organization_id) => __awaiter(void 0, void 0, void 0, function* () {
var _f;
const tokenService = yield (0, generate_token_service_1.checkTokenService)();
if ((tokenService === null || tokenService === void 0 ? void 0 : tokenService.code) !== 200) {
throw new Error("Generate Token Failed");
}
let token = (_f = tokenService === null || tokenService === void 0 ? void 0 : tokenService.data) === null || _f === void 0 ? void 0 : _f.access_token;
const headersData = {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
};
const url = `${baseUrl}/Organization/${organization_id}`;
const method = "GET";
const payload = null;
const response = yield (0, axiosClient_1.requestAxios)(headersData, url, method, payload);
return response;
});
exports.getOrganizationIdService = getOrganizationIdService;
const createLocationService = (data) => __awaiter(void 0, void 0, void 0, function* () {
var _g;
const tokenService = yield (0, generate_token_service_1.checkTokenService)();
if ((tokenService === null || tokenService === void 0 ? void 0 : tokenService.code) !== 200) {
throw new Error("Generate Token Failed");
}
let token = (_g = tokenService === null || tokenService === void 0 ? void 0 : tokenService.data) === null || _g === void 0 ? void 0 : _g.access_token;
const headersData = {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
};
const url = `${baseUrl}/Location`;
const method = "POST";
const payload = {
resourceType: "Location",
identifier: [
{
system: "http://sys-ids.kemkes.go.id/location/" + orgId,
value: data.bagian_id,
},
],
status: "active",
name: data.nama_bagian,
description: "This is a location for " + data.nama_bagian,
mode: "instance",
physicalType: {
coding: [
{
system: "http://terminology.hl7.org/CodeSystem/location-physical-type",
code: "ro",
display: "Room",
},
],
},
managingOrganization: {
reference: "Organization/" + data.organization_id,
},
};
const response = yield (0, axiosClient_1.requestAxios)(headersData, url, method, payload);
return response;
});
exports.createLocationService = createLocationService;
const getLocationIdService = (location_id) => __awaiter(void 0, void 0, void 0, function* () {
var _h;
const tokenService = yield (0, generate_token_service_1.checkTokenService)();
if ((tokenService === null || tokenService === void 0 ? void 0 : tokenService.code) !== 200) {
throw new Error("Generate Token Failed");
}
let token = (_h = tokenService === null || tokenService === void 0 ? void 0 : tokenService.data) === null || _h === void 0 ? void 0 : _h.access_token;
const headersData = {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
};
const url = `${baseUrl}/Location/${location_id}`;
const method = "GET";
const payload = null;
const response = yield (0, axiosClient_1.requestAxios)(headersData, url, method, payload);
return response;
});
exports.getLocationIdService = getLocationIdService;
const getPractitionerSendAllService = (limit) => __awaiter(void 0, void 0, void 0, function* () {
var _j;
const tokenService = yield (0, generate_token_service_1.checkTokenService)();
if ((tokenService === null || tokenService === void 0 ? void 0 : tokenService.code) !== 200) {
throw new Error("Generate Token Failed");
}
let token = (_j = tokenService === null || tokenService === void 0 ? void 0 : tokenService.data) === null || _j === void 0 ? void 0 : _j.access_token;
const getDataPractitionerReady = yield (0, resources_repository_1.getDataPractitioner)(limit);
const resultPush = [];
if (getDataPractitionerReady.length > 0) {
const promises = getDataPractitionerReady.map((element) => __awaiter(void 0, void 0, void 0, function* () {
const headersData = {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
};
const url = `${baseUrl}/Practitioner?identifier=https://fhir.kemkes.go.id/id/nik|${element.nik}`;
const method = "GET";
const payload = null;
const response = yield (0, axiosClient_1.requestAxios)(headersData, url, method, payload);
if (response.status === 200) {
if (response.data.total === 0) {
resultPush.push(Object.assign(Object.assign({}, element), { status: "gagal" }));
}
else {
const updateInsertIdPractitioner = (0, resources_repository_1.updateInsertIdPractitionerRepo)(element.pegawai_id, response.data, response.data.entry[0].resource.id, response.data.entry[0].resource.resourceType);
resultPush.push(Object.assign(Object.assign({}, element), { status: "sukses" }));
}
}
else {
resultPush.push(Object.assign(Object.assign({}, element), { status: "gagal" }));
}
}));
yield Promise.all(promises);
}
return resultPush;
});
exports.getPractitionerSendAllService = getPractitionerSendAllService;
const getPatientSendAllService = (limit) => __awaiter(void 0, void 0, void 0, function* () {
var _k;
const tokenService = yield (0, generate_token_service_1.checkTokenService)();
if ((tokenService === null || tokenService === void 0 ? void 0 : tokenService.code) !== 200) {
throw new Error("Generate Token Failed");
}
let token = (_k = tokenService === null || tokenService === void 0 ? void 0 : tokenService.data) === null || _k === void 0 ? void 0 : _k.access_token;
const getDataPatientReady = yield (0, resources_repository_1.getDataPatient)(limit);
const resultPush = [];
if (getDataPatientReady.length > 0) {
const promises = getDataPatientReady.map((element) => __awaiter(void 0, void 0, void 0, function* () {
const headersData = {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
};
const url = `${baseUrl}/Patient?identifier=https://fhir.kemkes.go.id/id/nik|${element.ktp}`;
const method = "GET";
const payload = null;
const response = yield (0, axiosClient_1.requestAxios)(headersData, url, method, payload);
if (response.status === 200) {
if (response.data.total === 0) {
const updateInsertIdPatient = (0, resources_repository_1.updateInsertIdPatientRepo)(element.pasien_id, response.data, "0", "Patient", 1);
resultPush.push(Object.assign(Object.assign({}, element), { status: "gagal" }));
}
else {
const updateInsertIdPatient = (0, resources_repository_1.updateInsertIdPatientRepo)(element.pasien_id, response.data, response.data.entry[0].resource.id, response.data.entry[0].resource.resourceType);
resultPush.push(Object.assign(Object.assign({}, element), { status: "sukses" }));
}
}
else {
resultPush.push(Object.assign(Object.assign({}, element), { status: "gagal", response: response.data }));
}
}));
yield Promise.all(promises);
}
return resultPush;
});
exports.getPatientSendAllService = getPatientSendAllService;
const getResourcesKfaService = (kfa_name) => __awaiter(void 0, void 0, void 0, function* () {
const getDataKfaReady = yield (0, resources_repository_1.getDataKfa)(kfa_name);
let datax;
let code;
let data;
if (getDataKfaReady.length > 0) {
code = 200;
data = getDataKfaReady;
}
else {
code = 201;
data = '';
}
return (datax = {
status: code,
data: data,
});
});
exports.getResourcesKfaService = getResourcesKfaService;