UNPKG

gcp-nrces-fhir

Version:

Google cloud healthcare api NRCES FHIR implimenataion

195 lines 7.39 kB
"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()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.PractitionerRole = void 0; const ResourceMai_1 = __importDefault(require("./ResourceMai")); const practionerRole_1 = require("../config/practionerRole"); class PractitionerRole extends ResourceMai_1.default { toHtml() { return __awaiter(this, void 0, void 0, function* () { throw new Error("Method not implemented."); }); } getFHIR(options) { const getText = () => { let ret = ""; return ret; }; const identifiers = []; if (options.ndhmFacilityId) { identifiers.push({ type: { coding: [ { system: "http://terminology.hl7.org/CodeSystem/v2-0203", code: "EI", display: "Employee number", }, ], }, system: "http://www.ndhm.in/practitioners", value: options.ndhmFacilityId, }); } if (options.doctorId) { identifiers.push({ type: { coding: [ { system: "http://terminology.hl7.org/CodeSystem/v2-0203", code: "EI", display: "Employee number", }, ], }, system: "http://www.nicehms.com/doctorId", value: options.doctorId, }); } if (options.userId) { identifiers.push({ type: { coding: [ { system: "http://terminology.hl7.org/CodeSystem/v2-0203", code: "EI", display: "Employee number", }, ], }, system: "http://www.nicehms.com/userId", value: options.userId, }); } const code = options.practionerRole.map((el) => { let ret = { code: el.code, display: el.display, system: "http://snomed.info/sct", }; return ret; }); const speciality = options.practitionerRoleSpecialities.map((el) => { let ret = { code: el.code, display: el.display, system: "http://snomed.info/sct", }; return ret; }); const body = { resourceType: "PractitionerRole", id: options.id, meta: { profile: [ "https://nrces.in/ndhm/fhir/r4/StructureDefinition/PractitionerRole", ], }, text: { status: "generated", div: `<div xmlns="http://www.w3.org/1999/xhtml">${getText()}</div>`, }, identifier: identifiers, active: options.active, period: options.period, practitioner: { reference: `Practitioner/${options.practitionerId}`, display: options.practitionerName, }, organization: { reference: `Organization/${options.organizationId}`, }, code: [ { coding: code, }, ], specialty: [ { coding: speciality, }, ], telecom: [ { system: "phone", value: options.mobile, use: "work", }, { system: "email", value: options.email, use: "work", }, ], availableTime: options.availableTime, notAvailable: options.notAvailable, availabilityExceptions: options.availabilityExceptions, }; return body; } convertFhirToObject(options) { const practionerRoles = options.code[0].coding.map((el) => { let ret = { alias: "", code: el.code, display: el.display, }; return ret; }); const practitionerRoleSpecialities = options.specialty[0].coding.map((el) => { let ret = { alias: "", code: el.code, display: el.display, }; return ret; }); let ret = { active: options.active, userId: this.getIdentifers("http://www.nicehms.com/userId", options), period: options.period, practitionerId: this.getIdFromReference({ ref: options.practitioner.reference, resourceType: "Practitioner", }), practitionerName: options.practitioner.display, organizationId: this.getIdFromReference({ ref: options.organization.reference, resourceType: "Organization", }), practionerRole: practionerRoles, practitionerRoleSpecialities: practitionerRoleSpecialities, mobile: options.telecom.filter((el) => el.system == "phone")[0].value, email: options.telecom.filter((el) => el.system == "email")[0].value, availabilityExceptions: options.availabilityExceptions, availableTime: options.availableTime, notAvailable: options.notAvailable, }; ret.ndhmFacilityId = this.getIdentifers("http://www.ndhm.in/practitioners", options) || undefined; ret.doctorId = this.getIdentifers("http://www.nicehms.com/doctorId", options) || undefined; return ret; } practionerRoles() { return practionerRole_1.practionerRoles; } practitionerRoleSpecialities() { return practionerRole_1.practitionerRoleSpecialities; } } exports.PractitionerRole = PractitionerRole; //# sourceMappingURL=PractitionerRole.js.map