gcp-nrces-fhir
Version:
Google cloud healthcare api NRCES FHIR implimenataion
143 lines • 5.09 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Coverage = void 0;
const ResourceMai_1 = __importDefault(require("./ResourceMai"));
const CoverageStatus = [
"active",
"cancelled",
"draft",
"entered-in-error",
];
class Coverage extends ResourceMai_1.default {
getFHIR(options) {
var _a;
const getText = () => {
let ret = "";
ret = options.text;
return ret;
};
const body = {
id: options.id,
resourceType: "Coverage",
type: options.type,
identifier: options.identifier,
text: {
status: "generated",
div: getText(),
},
status: options.status,
policyHolder: options.policyHolder
? {
reference: `${options.policyHolder.resource}/${options.policyHolder.id}`,
}
: undefined,
subscriber: options.subscriber
? {
reference: `${options.subscriber.resource}/${options.subscriber.id}`,
}
: undefined,
subscriberId: options.subscriberId,
beneficiary: { reference: `Patient/${options.beneficiaryPatientId}` },
dependent: options.dependent,
relationship: options.relationship,
payor: options.payor.map((el) => {
const ret = { reference: `${el.resource}/${el.id}` };
if (el.display) {
ret.display = el.display;
}
return ret;
}),
period: options.period,
insurer: options.insurerOrganizationId
? { reference: `Organization/${options.insurerOrganizationId}` }
: undefined,
class: options.class,
order: options.order,
network: options.network,
costToBeneficiary: options.costToBeneficiary,
subrogation: options.subrogation,
contract: (_a = options.contractId) === null || _a === void 0 ? void 0 : _a.map((el) => {
return { reference: `Contract/${options.contractId}` };
}),
insurancePlan: options.insurancePlanId
? { reference: `InsurancePlan/${options.insurancePlanId}` }
: undefined,
};
return body;
}
convertFhirToObject(options) {
const ret = {
id: options.id,
identifier: options.identifier,
text: options.text.div,
status: options.status,
beneficiaryPatientId: this.getIdFromReference({
ref: options.beneficiary.reference,
resourceType: "Patient",
}),
payor: options.payor.map((el) => {
const ret = this.getFromMultResource(el);
return ret;
}),
};
if (options.type) {
ret.type = options.type;
}
if (options.policyHolder) {
ret.policyHolder = this.getFromMultResource(options.policyHolder);
}
if (options.subscriber) {
ret.subscriber = this.getFromMultResource(options.subscriber);
}
if (options.subscriberId) {
ret.subscriberId = options.subscriberId;
}
if (options.dependent) {
ret.dependent = options.dependent;
}
if (options.relationship) {
ret.relationship = options.relationship;
}
if (options.period) {
ret.period = options.period;
}
if (options.insurer) {
ret.insurerOrganizationId = this.getIdFromReference({
ref: options.insurer.reference,
resourceType: "Organization",
});
}
if (options.dependent) {
ret.dependent = options.dependent;
}
if (options.class) {
ret.class = options.class;
}
if (options.order) {
ret.order = options.order;
}
if (options.network) {
ret.network = options.network;
}
if (options.costToBeneficiary) {
ret.costToBeneficiary = options.costToBeneficiary;
}
if (options.subrogation) {
ret.subrogation = options.subrogation;
}
if (options.contract) {
ret.contractId = options.contract.map((el) => {
const ret = this.getIdFromReference({
ref: el.reference,
resourceType: "Contract",
});
});
}
return ret;
}
}
exports.Coverage = Coverage;
//# sourceMappingURL=Coverage.js.map