fhirbuilder
Version:
Another FHIR Tool to build FHIR Resources
164 lines (163 loc) • 6.01 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.QuestionnaireResponseBuilder = void 0;
const models_1 = require("../../models");
const base_1 = require("../base");
/**
* @version R4 (v4.0.1)
* @summary FHIR® Specification by HL7®
* @description Class for building a QuestionnaireResponse
* @class QuestionnaireResponseBuilder
* @extends {DomainResourceBuilder}
* @implements {IQuestionnaireResponseBuilder}
* @author Roberto Araneda Espinoza
*/
class QuestionnaireResponseBuilder extends base_1.DomainResourceBuilder {
questionnaireResponse;
constructor() {
super();
this.questionnaireResponse = new models_1.QuestionnaireResponse();
}
/**
* @description Sets the resource type to QuestionnaireResponse
* @param json - the json to parse
* @returns {this}
*/
fromJSON(json) {
const incomingData = typeof json === 'string' ? JSON.parse(json) : json;
Object.assign(this.questionnaireResponse, incomingData);
return this;
}
/**
* @description Adds a primitive extension to the element
* @param param - the field to add the extension to
* @param extension - the extension to add
* @returns {this}
* @example addPrimitiveExtension('_value', { value: 'test' })
*/
addPrimitiveExtension(param, extension) {
this.questionnaireResponse[param] = extension;
return this;
}
/**
* @description Builds the model
* @returns {QuestionnaireResponse}
*/
build() {
return Object.assign(this.questionnaireResponse, super.build());
}
/**
* @description Sets the identifier value
* @description A business identifier assigned to a particular completed (or partially completed) questionnaire.
* @param value - the value to set
* @returns {this}
*/
setIdentifier(value) {
this.questionnaireResponse.identifier = value;
return this;
}
/**
* @description Adds a value to the basedOn array
* @description The order, proposal or plan that is fulfilled in whole or in part by this QuestionnaireResponse. For example, a ServiceRequest seeking an intake assessment or a decision support recommendation to assess for post-partum depression.
* @param value - the value to add
* @returns {this}
*/
addBasedOn(value) {
this.questionnaireResponse.basedOn = this.questionnaireResponse.basedOn || [];
this.questionnaireResponse.basedOn.push(value);
return this;
}
/**
* @description Adds a value to the partOf array
* @description A procedure or observation that this questionnaire was performed as part of the execution of. For example, the surgery a checklist was executed as part of.
* @param value - the value to add
* @returns {this}
*/
addPartOf(value) {
this.questionnaireResponse.partOf = this.questionnaireResponse.partOf || [];
this.questionnaireResponse.partOf.push(value);
return this;
}
/**
* @description Sets the questionnaire value
* @description The Questionnaire that defines and organizes the questions for which answers are being provided.
* @param value - the value to set
* @returns {this}
*/
setQuestionnaire(value) {
this.questionnaireResponse.questionnaire = value;
return this;
}
/**
* @description Sets the status value
* @description The position of the questionnaire response within its overall lifecycle.
* @param value - the value to set
* @returns {this}
*/
setStatus(value) {
this.questionnaireResponse.status = value;
return this;
}
/**
* @description Sets the subject value
* @description The subject of the questionnaire response. This could be a patient, organization, practitioner, device, etc. This is who/what the answers apply to, but is not necessarily the source of information.
* @param value - the value to set
* @returns {this}
*/
setSubject(value) {
this.questionnaireResponse.subject = value;
return this;
}
/**
* @description Sets the encounter value
* @description The Encounter during which this questionnaire response was created or to which the creation of this record is tightly associated.
* @param value - the value to set
* @returns {this}
*/
setEncounter(value) {
this.questionnaireResponse.encounter = value;
return this;
}
/**
* @description Sets the authored value
* @description The date and/or time that this set of answers were last changed.
* @param value - the value to set
* @returns {this}
*/
setAuthored(value) {
this.questionnaireResponse.authored = value;
return this;
}
/**
* @description Sets the author value
* @description Person who received the answers to the questions in the QuestionnaireResponse and recorded them in the system.
* @param value - the value to set
* @returns {this}
*/
setAuthor(value) {
this.questionnaireResponse.author = value;
return this;
}
/**
* @description Sets the source value
* @description The person who answered the questions about the subject.
* @param value - the value to set
* @returns {this}
*/
setSource(value) {
this.questionnaireResponse.source = value;
return this;
}
/**
* @description Adds a value to the item array
* @description A group or question item from the original questionnaire for which answers are provided.
* @param value - the value to add
* @returns {this}
*/
addItem(value) {
this.questionnaireResponse.item = this.questionnaireResponse.item || [];
this.questionnaireResponse.item.push(value);
return this;
}
}
exports.QuestionnaireResponseBuilder = QuestionnaireResponseBuilder;