@dotbase/hl7-v2-message
Version:
Parses HL7 v2.x messages into typed javascript objects and makes them easily accessable.
23 lines (22 loc) • 1.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const segmentParser_1 = tslib_1.__importDefault(require("./segmentParser"));
const __1 = tslib_1.__importDefault(require(".."));
class MessageParser {
static initMessageSegments(messageType, mshSegment, rawSegments) {
const formattedType = MessageParser.getMessageType(messageType);
const message = __1.default.utils.getMessage(formattedType);
segmentParser_1.default.initMessageSegments(message, mshSegment, rawSegments);
return message;
}
//Edge Case: 'splitSubFields.length === 2'
//due to different structure of field 'MSH.9 Message Type' in earlier hl7v2-x versions
static getMessageType(messageType) {
const splitSubFields = messageType.split("^");
if (splitSubFields.length === 2)
return `${splitSubFields[0]}_${splitSubFields[1]}`;
return splitSubFields[splitSubFields.length - 1];
}
}
exports.default = MessageParser;