UNPKG

gcp-nrces-fhir

Version:

Google cloud healthcare api NRCES FHIR implimenataion

222 lines 10.5 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 }); 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