gcp-nrces-fhir
Version:
Google cloud healthcare api NRCES FHIR implimenataion
222 lines • 10.5 kB
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());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const AllergyIntolerance_1 = require("../resources/AllergyIntolerance");
const Appointment_1 = require("../resources/Appointment");
const Composition_1 = require("../resources/Composition");
const Condition_1 = require("../resources/Condition");
const DocumentBundle_1 = require("../resources/DocumentBundle");
const DocumentReference_1 = require("../resources/DocumentReference");
const Encounter_1 = require("../resources/Encounter");
const MedicationRequest_1 = require("../resources/MedicationRequest");
const MedicationStatement_1 = require("../resources/MedicationStatement");
const Organization_1 = require("../resources/Organization");
const Patient_1 = require("../resources/Patient");
const Practitioner_1 = require("../resources/Practitioner");
const Binary_1 = require("../resources/Binary");
const Procedure_1 = require("../resources/Procedure");
const ResourceMai_1 = __importDefault(require("../resources/ResourceMai"));
const gcp_1 = __importDefault(require("./gcp"));
const Specimen_1 = require("../resources/Specimen");
const PractitionerRole_1 = require("../resources/PractitionerRole");
const DiagnosticReport_1 = require("../resources/DiagnosticReport");
const Media_1 = require("../resources/Media");
const Observation_1 = require("../resources/Observation");
const ServiceRequest_1 = require("../resources/ServiceRequest");
const Schedule_1 = require("../resources/Schedule");
const Slot_1 = require("../resources/Slot");
const CoverageEligibilityRequest_1 = require("../hcx/CoverageEligibilityRequest");
const Endpoint_1 = require("../resources/Endpoint");
const Coverage_1 = require("../hcx/Coverage");
const Communication_1 = require("../hcx/Communication");
const Claim_1 = require("../hcx/Claim");
const ClaimResponse_1 = require("../hcx/ClaimResponse");
const CommunicationRequest_1 = require("../hcx/CommunicationRequest");
const CoverageEligibilityResponse_1 = require("../hcx/CoverageEligibilityResponse");
const CarePlan_1 = require("../resources/CarePlan");
const Goal_1 = require("../resources/Goal");
const Insuranceplan_1 = require("../hcx/Insuranceplan");
const PaymentNotice_1 = require("../hcx/PaymentNotice");
const PaymentReconciliation_1 = require("../hcx/PaymentReconciliation");
const Task_1 = require("../hcx/Task");
const Immunization_1 = require("../resources/Immunization");
const ImmunizationRecommendation_1 = require("../resources/ImmunizationRecommendation");
class ResourceFactory extends ResourceMai_1.default {
constructor(_resourceType) {
super();
this.resourceType = _resourceType;
// "Patient" | "Practitioner" | "Organization" | "Encounter" | "Condition" | "Procedure" | "AllergyIntolerance" | "Appointment" | "Bundle" | "Composition" | "ServiceRequest" | "MedicationStatement" | "MedicationRequest" | "DocumentReference"
if (this.resourceType === "Patient") {
this.resource = new Patient_1.Patient();
}
else if (this.resourceType === "Practitioner") {
this.resource = new Practitioner_1.Practitioner();
}
else if (this.resourceType === "Organization") {
this.resource = new Organization_1.Organization();
}
else if (this.resourceType === "Encounter") {
this.resource = new Encounter_1.Encounter();
}
else if (this.resourceType === "Condition") {
this.resource = new Condition_1.Condition();
}
else if (this.resourceType === "Procedure") {
this.resource = new Procedure_1.Procedure();
}
else if (this.resourceType === "AllergyIntolerance") {
this.resource = new AllergyIntolerance_1.AllergyIntolerance();
}
else if (this.resourceType === "Appointment") {
this.resource = new Appointment_1.Appointment();
}
else if (this.resourceType === "Bundle") {
this.resource = new DocumentBundle_1.DocumentBundle();
}
else if (this.resourceType === "Composition") {
this.resource = new Composition_1.Composition();
}
else if (this.resourceType === "DocumentReference") {
this.resource = new DocumentReference_1.DocumentReference();
}
else if (this.resourceType === "MedicationRequest") {
this.resource = new MedicationRequest_1.MedicationRequest();
}
else if (this.resourceType === "MedicationStatement") {
this.resource = new MedicationStatement_1.MedicationStatement();
}
else if (this.resourceType === "Binary") {
this.resource = new Binary_1.Binary();
}
else if (this.resourceType === "Specimen") {
this.resource = new Specimen_1.Specimen();
}
else if (this.resourceType === "PractitionerRole") {
this.resource = new PractitionerRole_1.PractitionerRole();
}
else if (this.resourceType === "DiagnosticReport") {
this.resource = new DiagnosticReport_1.DiagnosticReport();
}
else if (this.resourceType === "Media") {
this.resource = new Media_1.Media();
}
else if (this.resourceType === "Observation") {
this.resource = new Observation_1.Observation();
}
else if (this.resourceType == "ServiceRequest") {
this.resource = new ServiceRequest_1.ServiceRequest();
}
else if (this.resourceType == "Schedule") {
this.resource = new Schedule_1.Schedule();
}
else if (this.resourceType == "Slot") {
this.resource = new Slot_1.Slot();
}
else if (this.resourceType == "CoverageEligibilityRequest") {
this.resource = new CoverageEligibilityRequest_1.CoverageEligibilityRequest();
}
else if (this.resourceType == "Location") {
this.resource = new Location();
}
else if (this.resourceType == "Endpoint") {
this.resource = new Endpoint_1.EndPoint();
}
else if (this.resourceType == "Coverage") {
this.resource = new Coverage_1.Coverage();
}
else if (this.resourceType == "Communication") {
this.resource = new Communication_1.Communication();
}
else if (this.resourceType == "Claim") {
this.resource = new Claim_1.Claim();
}
else if (this.resourceType == "CoverageEligibilityResponse") {
this.resource = new CoverageEligibilityResponse_1.CoverageEligibiltyResponse();
}
else if (this.resourceType == "ClaimResponse") {
this.resource = new ClaimResponse_1.ClaimResponse();
}
else if (this.resourceType == "CommunicationRequest") {
this.resource = new CommunicationRequest_1.CommunicationRequest();
}
else if (this.resourceType == "CarePlan") {
this.resource = new CarePlan_1.CarePlan();
}
else if (this.resourceType == "Goal") {
this.resource = new Goal_1.Goal();
}
else if (this.resourceType == "InsurancePlan") {
this.resource = new Insuranceplan_1.InsurancePlan();
}
else if (this.resourceType == "PaymentNotice") {
this.resource = new PaymentNotice_1.PaymentNoctice();
}
else if (this.resourceType == "PaymentReconciliation") {
this.resource = new PaymentReconciliation_1.PaymentReconciliation();
}
else if (this.resourceType == "Task") {
this.resource = new Task_1.Task();
}
else if (this.resourceType == "Immunization") {
this.resource = new Immunization_1.Immunization();
}
else if (this.resourceType == "ImmunizationRecommendation") {
this.resource = new ImmunizationRecommendation_1.ImmunizationRecommendation();
}
else {
const errMessage = `Not Implimented resourceType ${this.resourceType}`;
console.log(errMessage);
throw (new Error().message = errMessage);
}
}
toHtml(options) {
return __awaiter(this, void 0, void 0, function* () {
return this.resource.toHtml(options);
});
}
getFHIR(options) {
return this.resource.getFHIR(options);
}
convertFhirToObject(options) {
return this.resource.convertFhirToObject(options);
}
bundlefy(resource) {
return this.resource.bundlify(resource);
}
/**
* This methois create or updates the respources depending id property
* @param resource resource object
* @param resourceType type off resource
* @returns the creeate or updated resource depending on id
*/
static setResource(resource, resourceType) {
return __awaiter(this, void 0, void 0, function* () {
// check resource has id;
const gcpFhirCrud = new gcp_1.default();
let ret;
// @ts-ignore
if (resource.id) {
ret = yield gcpFhirCrud.updateFhirResource(resource,
// @ts-ignore
resource.id, resourceType);
}
else {
ret = yield gcpFhirCrud.createFhirResource(resource, resourceType);
}
return ret;
});
}
}
exports.default = ResourceFactory;
//# sourceMappingURL=ResourceFactory.js.map