UNPKG

@ai-ecom/medusa-plugin-patient-record

Version:

A plugin for patient record

429 lines (428 loc) 21 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _medusa = require("@medusajs/medusa"); var _medusaCoreUtils = require("medusa-core-utils"); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var PhysicalMeasurementService = /*#__PURE__*/function (_TransactionBaseServi) { function PhysicalMeasurementService(_ref) { var _this; var physicalMeasurementRepository = _ref.physicalMeasurementRepository, eventBusService = _ref.eventBusService; (0, _classCallCheck2["default"])(this, PhysicalMeasurementService); // eslint-disable-next-line prefer-rest-params _this = _callSuper(this, PhysicalMeasurementService, [arguments[0]]); _this.physicalMeasurementRepository_ = physicalMeasurementRepository; _this.eventBus_ = eventBusService; return _this; } (0, _inherits2["default"])(PhysicalMeasurementService, _TransactionBaseServi); return (0, _createClass2["default"])(PhysicalMeasurementService, [{ key: "list", value: function () { var _list = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(selector) { var config, _yield$this$listAndCo, _yield$this$listAndCo2, physicalMeasurement, _args = arguments; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: config = _args.length > 1 && _args[1] !== undefined ? _args[1] : { skip: 0, take: 50, relations: [] }; _context.next = 3; return this.listAndCount(selector, config); case 3: _yield$this$listAndCo = _context.sent; _yield$this$listAndCo2 = (0, _slicedToArray2["default"])(_yield$this$listAndCo, 1); physicalMeasurement = _yield$this$listAndCo2[0]; return _context.abrupt("return", physicalMeasurement); case 7: case "end": return _context.stop(); } }, _callee, this); })); function list(_x) { return _list.apply(this, arguments); } return list; }() }, { key: "listAndCount", value: function () { var _listAndCount = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(selector) { var config, physicalMeasurementRepo, query, _args2 = arguments; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: config = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : { skip: 0, take: 50, relations: [] }; physicalMeasurementRepo = this.activeManager_.withRepository(this.physicalMeasurementRepository_); query = (0, _medusa.buildQuery)(selector, config); return _context2.abrupt("return", physicalMeasurementRepo.findAndCount(query)); case 4: case "end": return _context2.stop(); } }, _callee2, this); })); function listAndCount(_x2) { return _listAndCount.apply(this, arguments); } return listAndCount; }() }, { key: "listAndCountDetails", value: function () { var _listAndCountDetails = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(_ref2) { var appointment_id, reference_id, customer_id, physicalMeasurementRepo, queryBuilder; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: appointment_id = _ref2.appointment_id, reference_id = _ref2.reference_id, customer_id = _ref2.customer_id; physicalMeasurementRepo = this.activeManager_.withRepository(this.physicalMeasurementRepository_); queryBuilder = physicalMeasurementRepo.createQueryBuilder("physical_measurement").leftJoinAndSelect("physical_measurement.examination_result", "examination_result").leftJoinAndSelect("physical_measurement.unit", "unit").leftJoinAndSelect("unit.nominator", "nominator").leftJoinAndSelect("unit.denominator", "denominator").leftJoinAndSelect("examination_result.title", "examination_result_title").leftJoinAndSelect("examination_result.customer", "customer") // .leftJoinAndSelect("examination_result_title.examinations", "examination") .leftJoinAndSelect("examination_result_title.nature", "nature").leftJoinAndSelect("examination_result_title.references", "references").leftJoinAndSelect("references.values", "references_values").leftJoinAndSelect("references.conditions", "references_conditions").leftJoinAndSelect("references.unit", "references_unit").leftJoinAndSelect("references_unit.nominator", "references_unit_nominator").leftJoinAndSelect("references_unit.denominator", "references_unit_denominator"); // .leftJoinAndSelect( // "reference.ethnicities_have_references", // "ethnicities_have_references" // ) // .leftJoinAndSelect("ethnicities_have_references.ethnicity", "ethnicity") // .where("ethnicity.id = customer.ethnicity_id") // .andWhere("reference.gender = customer.gender"); if (appointment_id) { queryBuilder.andWhere("examination_result.appointment_id = :id", { id: appointment_id }); } if (reference_id) { queryBuilder.andWhere("examination_result.reference_id = :id", { id: reference_id }); } _context3.next = 7; return queryBuilder.skip(0).take(10000).getManyAndCount(); case 7: return _context3.abrupt("return", _context3.sent); case 8: case "end": return _context3.stop(); } }, _callee3, this); })); function listAndCountDetails(_x3) { return _listAndCountDetails.apply(this, arguments); } return listAndCountDetails; }() }, { key: "retrieve", value: function () { var _retrieve = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(physicalMeasurementId, config) { var physicalMeasurement; return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return this.retrieve_({ id: physicalMeasurementId }, config); case 2: physicalMeasurement = _context4.sent; if (physicalMeasurement) { _context4.next = 5; break; } throw new _medusaCoreUtils.MedusaError(_medusaCoreUtils.MedusaError.Types.NOT_FOUND, "PhysicalMeasurement with ".concat(physicalMeasurementId, " was not found")); case 5: return _context4.abrupt("return", physicalMeasurement); case 6: case "end": return _context4.stop(); } }, _callee4, this); })); function retrieve(_x4, _x5) { return _retrieve.apply(this, arguments); } return retrieve; }() }, { key: "retrieveByExaminationResultId", value: function () { var _retrieveByExaminationResultId = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(examinationResultId, config) { var physicalMeasurement; return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { case 0: _context5.next = 2; return this.retrieve_({ examination_result_id: examinationResultId }, config); case 2: physicalMeasurement = _context5.sent; if (physicalMeasurement) { _context5.next = 5; break; } throw new _medusaCoreUtils.MedusaError(_medusaCoreUtils.MedusaError.Types.NOT_FOUND, "PhysicalMeasurement with ExaminationResultId ".concat(examinationResultId, " was not found")); case 5: return _context5.abrupt("return", physicalMeasurement); case 6: case "end": return _context5.stop(); } }, _callee5, this); })); function retrieveByExaminationResultId(_x6, _x7) { return _retrieveByExaminationResultId.apply(this, arguments); } return retrieveByExaminationResultId; }() }, { key: "retrieve_", value: function () { var _retrieve_ = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(selector, config) { var physicalMeasurementRepo, query, physicalMeasurement; return _regenerator["default"].wrap(function _callee6$(_context6) { while (1) switch (_context6.prev = _context6.next) { case 0: physicalMeasurementRepo = this.activeManager_.withRepository(this.physicalMeasurementRepository_); query = (0, _medusa.buildQuery)(selector, config); _context6.next = 4; return physicalMeasurementRepo.findOne(query); case 4: physicalMeasurement = _context6.sent; return _context6.abrupt("return", physicalMeasurement); case 6: case "end": return _context6.stop(); } }, _callee6, this); })); function retrieve_(_x8, _x9) { return _retrieve_.apply(this, arguments); } return retrieve_; }() }, { key: "create", value: function () { var _create = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(physicalMeasurementObject) { var _this2 = this; return _regenerator["default"].wrap(function _callee8$(_context8) { while (1) switch (_context8.prev = _context8.next) { case 0: _context8.next = 2; return this.atomicPhase_( /*#__PURE__*/function () { var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(manager) { var physicalMeasurementRepo, physicalMeasurement, result; return _regenerator["default"].wrap(function _callee7$(_context7) { while (1) switch (_context7.prev = _context7.next) { case 0: physicalMeasurementRepo = manager.withRepository(_this2.physicalMeasurementRepository_); _context7.prev = 1; physicalMeasurement = physicalMeasurementRepo.create(physicalMeasurementObject); _context7.next = 5; return physicalMeasurementRepo.save(physicalMeasurement); case 5: physicalMeasurement = _context7.sent; _context7.next = 8; return _this2.retrieve(physicalMeasurement.id, { relations: [] }); case 8: result = _context7.sent; _context7.next = 11; return _this2.eventBus_.withTransaction(manager).emit(PhysicalMeasurementService.Events.CREATED, { id: result.id }); case 11: return _context7.abrupt("return", result); case 14: _context7.prev = 14; _context7.t0 = _context7["catch"](1); throw (0, _medusa.formatException)(_context7.t0); case 17: case "end": return _context7.stop(); } }, _callee7, null, [[1, 14]]); })); return function (_x11) { return _ref3.apply(this, arguments); }; }()); case 2: return _context8.abrupt("return", _context8.sent); case 3: case "end": return _context8.stop(); } }, _callee8, this); })); function create(_x10) { return _create.apply(this, arguments); } return create; }() }, { key: "delete", value: function () { var _delete2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10(physicalMeasurementId) { var _this3 = this; return _regenerator["default"].wrap(function _callee10$(_context10) { while (1) switch (_context10.prev = _context10.next) { case 0: _context10.next = 2; return this.atomicPhase_( /*#__PURE__*/function () { var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(manager) { var physicalMeasurementRepo, physicalMeasurement; return _regenerator["default"].wrap(function _callee9$(_context9) { while (1) switch (_context9.prev = _context9.next) { case 0: physicalMeasurementRepo = manager.withRepository(_this3.physicalMeasurementRepository_); _context9.next = 3; return physicalMeasurementRepo.findOne({ where: { id: physicalMeasurementId } }); case 3: physicalMeasurement = _context9.sent; if (physicalMeasurement) { _context9.next = 6; break; } return _context9.abrupt("return"); case 6: _context9.next = 8; return physicalMeasurementRepo.softRemove(physicalMeasurement); case 8: _context9.next = 10; return _this3.eventBus_.withTransaction(manager).emit(PhysicalMeasurementService.Events.DELETED, { id: physicalMeasurementId }); case 10: return _context9.abrupt("return", Promise.resolve()); case 11: case "end": return _context9.stop(); } }, _callee9); })); return function (_x13) { return _ref4.apply(this, arguments); }; }()); case 2: return _context10.abrupt("return", _context10.sent); case 3: case "end": return _context10.stop(); } }, _callee10, this); })); function _delete(_x12) { return _delete2.apply(this, arguments); } return _delete; }() }, { key: "update", value: function () { var _update2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee12(physicalMeasurementId, _update) { var _this4 = this; return _regenerator["default"].wrap(function _callee12$(_context12) { while (1) switch (_context12.prev = _context12.next) { case 0: _context12.next = 2; return this.atomicPhase_( /*#__PURE__*/function () { var _ref5 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11(manager) { var physicalMeasurementRepo, physicalMeasurement, rest, _i, _Object$entries, _Object$entries$_i, key, value, result; return _regenerator["default"].wrap(function _callee11$(_context11) { while (1) switch (_context11.prev = _context11.next) { case 0: physicalMeasurementRepo = manager.withRepository(_this4.physicalMeasurementRepository_); _context11.next = 3; return _this4.retrieve(physicalMeasurementId, {}); case 3: physicalMeasurement = _context11.sent; rest = (0, _extends2["default"])({}, ((0, _objectDestructuringEmpty2["default"])(_update), _update)); for (_i = 0, _Object$entries = Object.entries(rest); _i < _Object$entries.length; _i++) { _Object$entries$_i = (0, _slicedToArray2["default"])(_Object$entries[_i], 2), key = _Object$entries$_i[0], value = _Object$entries$_i[1]; if ((0, _typeof2["default"])(value) !== "undefined") { physicalMeasurement[key] = value; } } _context11.next = 8; return physicalMeasurementRepo.save(physicalMeasurement); case 8: result = _context11.sent; _context11.next = 11; return _this4.eventBus_.withTransaction(manager).emit(PhysicalMeasurementService.Events.UPDATED, { id: result.id, fields: Object.keys(_update) }); case 11: return _context11.abrupt("return", result); case 12: case "end": return _context11.stop(); } }, _callee11); })); return function (_x16) { return _ref5.apply(this, arguments); }; }()); case 2: return _context12.abrupt("return", _context12.sent); case 3: case "end": return _context12.stop(); } }, _callee12, this); })); function update(_x14, _x15) { return _update2.apply(this, arguments); } return update; }() }]); }(_medusa.TransactionBaseService); // eslint-disable-next-line max-len (0, _defineProperty2["default"])(PhysicalMeasurementService, "IndexName", "physical-measurements"); (0, _defineProperty2["default"])(PhysicalMeasurementService, "Events", { UPDATED: "physical-measurement.updated", CREATED: "physical-measurement.created", DELETED: "physical-measurement.deleted" }); var _default = exports["default"] = PhysicalMeasurementService;