UNPKG

gcp-nrces-fhir

Version:

Google cloud healthcare api NRCES FHIR implimenataion

478 lines 17.5 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const ReseorcetToHtml_1 = __importDefault(require("../classess/ReseorcetToHtml")); class ResourceMain extends ReseorcetToHtml_1.default { constructor() { super(...arguments); /** * this return the tex div by subcratig first 42 charceters and last 6 s=charecters * @param divtext * @returns */ this.getDivText = (divtext) => { const len = divtext.length; return divtext.substring(42, len - 6); }; /** * this retuen the id of the reference in a resource * @param options * @returns */ this.getIdFromReference = (options) => { return `${options.ref}`.substring(options.resourceType.length + 1); }; /** * This returns the identifers from identeries by flters the systems * @param system * @param identifiers * @returns */ this.getIdentifers = (system, options) => { let ret; const mrn = options.identifier.filter((el) => el.system == system); if (mrn.length > 0) { ret = mrn[0].value; } return ret; }; /** * This is when more than one type resource is under reference * @param multiResource * @returns */ this.getFromMultResource = (multiResource) => { const resource = multiResource.reference && `${multiResource.reference}`.substring(0, `${multiResource.reference}`.indexOf("/")); const id = (multiResource.reference && this.getIdFromReference({ ref: multiResource.reference, resourceType: resource, })) || null; let ret = { id: id, resource: resource || null, }; if (multiResource.display) { ret.display = multiResource.display; } if (multiResource.identifier) { ret.identifier = multiResource.identifier; } if (multiResource.type) { ret.type = multiResource.type; } return ret; }; /** * Converts the `reference` property of a FHIR resource to a full URL using the specified base URL. * * @param reference - A FHIR resource object that may contain a `reference` property. * @param url - The base URL to prepend to the `reference` property. Defaults to "https://www.nicehms.com/query=". * @returns The updated FHIR resource object with its `reference` property transformed into a full URL. * * @example * const resource = { reference: "Patient/123" }; * const updatedResource = convertReferenceToUrl(resource, "https://example.com/"); * console.log(updatedResource); * // Output: { reference: "https://example.com/Patient/123" } * * @remarks * - This function modifies the input `reference` object in-place. * - If the `reference` property is not present, the function returns the resource unchanged. * - Ensure the `url` parameter ends with a slash or appropriate delimiter for the resulting URL to be valid. */ this.convertReferenceToUrl = (reference, url = "https://www.nicehms.com/query=") => { if (reference.reference) { const curReference = `${url}${reference.reference}`; reference.reference = curReference; } return reference; }; } /** * this will return copy of resource modified * @param resource */ bundlify(resource) { const copyComposoition = Object.assign({}, resource); delete copyComposoition.extension; delete copyComposoition.language; delete copyComposoition.meta; delete copyComposoition.text; let codedisplay = copyComposoition.code; if (codedisplay) { if (codedisplay.length > 0) { codedisplay = codedisplay.map((el) => { if (el.system == "" || el.system == null) { el.system = "https://www.nicehms.com/system"; } return el; }); } else if (codedisplay.coding && codedisplay.coding.length > 0) { codedisplay.coding = codedisplay.coding.map((el) => { if (el.system == "" || el.system == null) { el.system = "https://www.nicehms.com/system"; } return el; }); } } copyComposoition.code = codedisplay; return copyComposoition; } removeUndefinedKeys(obj) { for (const key in obj) { if (obj[key] === undefined) { delete obj[key]; } } return obj; } createDosageInstrction(options) { const body = { text: options.text, additionalInstruction: [ { coding: options.additionalInstruction, }, ], timing: { code: { text: options.timing, }, }, route: { coding: options.route, }, method: { coding: options.method, }, }; return body; } convertDosageInstructionToObject(option) { let ret = { text: option.text, additionalInstruction: option.additionalInstruction[0].coding, timing: option.timing.code.text, route: option.route.coding, method: option.method.coding, }; if (ret.additionalInstruction == undefined) { delete ret.additionalInstruction; } return ret; } getFhirvalueCimplexHandle(value, curInput) { if (value.valueBase64Binary) { curInput["valueBase64Binary"] = value.valueBase64Binary; } else if (value.valueBoolean) { curInput["valueBoolean"] = value.valueBoolean; } else if (value.valueCanonical) { curInput["valueCanonical"] = value.valueCanonical; } else if (value.valueCode) { curInput["valueCode"] = value.valueCode; } else if (value.valueDate) { curInput["valueDate"] = value.valueDate; } else if (value.valueDateTime) { curInput["valueDateTime"] = value.valueDateTime; } else if (value.valueDecimal) { curInput["valueDecimal"] = value.valueDecimal; } else if (value.valueId) { curInput["valueId"] = value.valueId; } else if (value.valueInstant) { curInput["valueInstant"] = value.valueInstant; } else if (value.valueInteger) { curInput["valueInteger"] = value.valueInteger; } else if (value.valueMarkdown) { curInput["valueMarkdown"] = value.valueMarkdown; } else if (value.valueOid) { curInput["valueOid"] = value.valueOid; } else if (value.valuePositiveInt) { curInput["valuePositiveInt"] = value.valuePositiveInt; } else if (value.valueString) { curInput["valueString"] = value.valueString; } else if (value.valueTime) { curInput["valueTime"] = value.valueTime; } else if (value.valueUnsignedInt) { curInput["valueUnsignedInt"] = value.valueUnsignedInt; } else if (value.valueUri) { curInput["valueUri"] = value.valueUri; } else if (value.valueUrl) { curInput["valueUrl"] = value.valueUrl; } else if (value.valueUuid) { curInput["valueUuid"] = value.valueUuid; } else if (value.valueCodeableConcept) { curInput["valueCodeableConcept"] = value.valueCodeableConcept; } else if (value.valueAttachment) { curInput["valueAttachment"] = value.valueAttachment; } else if (value.valueCoding) { curInput["valueCoding"] = value.valueCoding; } else if (value.valueCount) { curInput["valueCount"] = value.valueCount; } else if (value.valueIdentifier) { curInput["valueIdentifier"] = value.valueIdentifier; } else if (value.valuePeriod) { curInput["valuePeriod"] = value.valuePeriod; } else if (value.valueMoney) { curInput["valueMoney"] = value.valueMoney; } else if (value.valueHumanName) { curInput["valueHumanName"] = value.valueHumanName; } else if (value.valueQuantity) { curInput["valueQuantity"] = value.valueQuantity; } else if (value.valueRange) { curInput["valueRange"] = value.valueRange; } else if (value.valueReference) { curInput["valueReference"] = value.valueReference; } else if (value.valueRatio) { curInput["valueRatio"] = value.valueRatio; } else if (value.valueContactPoint) { curInput["valueContactPoint"] = value.valueContactPoint; } else if (value.valueContactDetail) { curInput["valueContactDetail"] = value.valueContactDetail; } else if (value.valueAddress) { curInput["valueAddress"] = value.valueAddress; } else if (value.valueSampledData) { curInput["valueSampledData"] = value.valueSampledData; } else if (value.valueDuration) { curInput["valueDuration"] = value.valueDuration; } else if (value.valueAnnotation) { curInput["valueAnnotation"] = value.valueAnnotation; } else if (value.valueDistance) { curInput["valueDistance"] = value.valueDistance; } else if (value.valueAge) { curInput["valueAge"] = value.valueAge; } else if (value.valueSignature) { curInput["valueSignature"] = value.valueSignature; } else if (value.valueTiming) { curInput["valueTiming"] = value.valueTiming; } else if (value.valueContributor) { curInput["valueContributor"] = value.valueContributor; } else if (value.valueDataRequirement) { curInput["valueDataRequirement"] = value.valueDataRequirement; } else if (value.valueExpression) { curInput["valueExpression"] = value.valueExpression; } else if (value.valueParameterDefinition) { curInput["valueParameterDefinition"] = value.valueParameterDefinition; } else if (value.valueRelatedArtifact) { curInput["valueRelatedArtifact"] = value.valueRelatedArtifact; } else if (value.valueTriggerDefinition) { curInput["valueTriggerDefinition"] = value.valueTriggerDefinition; } else if (value.valueUsageContext) { curInput["valueUsageContext"] = value.valueUsageContext; } else if (value.valueDosage) { curInput["valueDosage"] = value.valueDosage; } else if (value.valueMeta) { curInput["valueMeta"] = value.valueMeta; } return curInput; } getConverOBjValueComplexHandle(el, value) { if (el.valueBase64Binary) { value.valueBase64Binary = el.valueBase64Binary; } else if (el.valueBoolean) { value.valueBoolean = el.valueBoolean; } else if (el.valueCanonical) { value.valueCanonical = el.valueCanonical; } else if (el.valueCode) { value.valueCode = el.valueCode; } else if (el.valueDate) { value.valueDate = el.valueDate; } else if (el.valueDateTime) { value.valueDateTime = el.valueDateTime; } else if (el.valueDecimal) { value.valueDecimal = el.valueDecimal; } else if (el.valueId) { value.valueId = el.valueId; } else if (el.valueInstant) { value.valueInstant = el.valueInstant; } else if (el.valueInteger) { value.valueInteger = el.valueInteger; } else if (el.valueMarkdown) { value.valueMarkdown = el.valueMarkdown; } else if (el.valueOid) { value.valueOid = el.valueOid; } else if (el.valuePositiveInt) { value.valuePositiveInt = el.valuePositiveInt; } else if (el.valueString) { value.valueString = el.valueString; } else if (el.valueTime) { value.valueTime = el.valueTime; } else if (el.valueUnsignedInt) { value.valueUnsignedInt = el.valueUnsignedInt; } else if (el.valueUri) { value.valueUri = el.valueUri; } else if (el.valueUrl) { value.valueUrl = el.valueUrl; } else if (el.valueUuid) { value.valueUuid = el.valueUuid; } else if (el.valueCodeableConcept) { value.valueCodeableConcept = el.valueCodeableConcept; } else if (el.valueAttachment) { value.valueAttachment = el.valueAttachment; } else if (el.valueCoding) { value.valueCoding = el.valueCoding; } else if (el.valueCount) { value.valueCount = el.valueCount; } else if (el.valueIdentifier) { value.valueIdentifier = el.valueIdentifier; } else if (el.valuePeriod) { value.valuePeriod = el.valuePeriod; } else if (el.valueMoney) { value.valueMoney = el.valueMoney; } else if (el.valueHumanName) { value.valueHumanName = el.valueHumanName; } else if (el.valueQuantity) { value.valueQuantity = el.valueQuantity; } else if (el.valueRange) { value.valueRange = el.valueRange; } else if (el.valueReference) { value.valueReference = el.valueReference; } else if (el.valueRatio) { value.valueRatio = el.valueRatio; } else if (el.valueContactPoint) { value.valueContactPoint = el.valueContactPoint; } else if (el.valueContactDetail) { value.valueContactDetail = el.valueContactDetail; } else if (el.valueAddress) { value.valueAddress = el.valueAddress; } else if (el.valueSampledData) { value.valueSampledData = el.valueSampledData; } else if (el.valueDuration) { value.valueDuration = el.valueDuration; } else if (el.valueAnnotation) { value.valueAnnotation = el.valueAnnotation; } else if (el.valueDistance) { value.valueDistance = el.valueDistance; } else if (el.valueAge) { value.valueAge = el.valueAge; } else if (el.valueSignature) { value.valueSignature = el.valueSignature; } else if (el.valueTiming) { value.valueTiming = el.valueTiming; } else if (el.valueContributor) { value.valueContributor = el.valueContributor; } else if (el.valueDataRequirement) { value.valueDataRequirement = el.valueDataRequirement; } else if (el.valueExpression) { value.valueExpression = el.valueExpression; } else if (el.valueParameterDefinition) { value.valueParameterDefinition = el.valueParameterDefinition; } else if (el.valueRelatedArtifact) { value.valueRelatedArtifact = el.valueRelatedArtifact; } else if (el.valueTriggerDefinition) { value.valueTriggerDefinition = el.valueTriggerDefinition; } else if (el.valueUsageContext) { value.valueUsageContext = el.valueUsageContext; } else if (el.valueDosage) { value.valueDosage = el.valueDosage; } else if (el.valueMeta) { value.valueMeta = el.valueMeta; } } } exports.default = ResourceMain; //# sourceMappingURL=ResourceMai.js.map