gcp-nrces-fhir
Version:
Google cloud healthcare api NRCES FHIR implimenataion
195 lines • 7.39 kB
JavaScript
;
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