@openhealth/oht-custom-parser-lib 0.1.11 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/index.d.ts +11 -0
  2. package/dist/index.js +60 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/service/auxiliaryFunctions.service.d.ts +19 -0
  5. package/dist/service/auxiliaryFunctions.service.js +64 -0
  6. package/dist/service/auxiliaryFunctions.service.js.map +1 -0
  7. package/dist/service/ohtMeasurementsExtractor.service.d.ts +31 -0
  8. package/dist/service/ohtMeasurementsExtractor.service.js +403 -0
  9. package/dist/service/ohtMeasurementsExtractor.service.js.map +1 -0
  10. package/dist/service/reportCreator.service.d.ts +8 -0
  11. package/dist/service/reportCreator.service.js +129 -0
  12. package/dist/service/reportCreator.service.js.map +1 -0
  13. package/dist/service/slackMessages.service.d.ts +9 -0
  14. package/dist/service/slackMessages.service.js +92 -0
  15. package/dist/service/slackMessages.service.js.map +1 -0
  16. package/dist/types/custom-parser.types.d.ts +56 -0
  17. package/dist/types/custom-parser.types.js +28 -0
  18. package/dist/types/custom-parser.types.js.map +1 -0
  19. package/dist/types/oht.types.d.ts +300 -0
  20. package/dist/types/oht.types.js +90 -0
  21. package/dist/types/oht.types.js.map +1 -0
  22. package/dist/types/slackMessages.types.d.ts +5 -0
  23. package/dist/types/slackMessages.types.js +3 -0
  24. package/dist/types/slackMessages.types.js.map +1 -0
  25. package/dist/util-ts/dataUtils.d.ts +3 -0
  26. package/dist/util-ts/dataUtils.js +19 -0
  27. package/dist/util-ts/dataUtils.js.map +1 -0
  28. package/dist/util-ts/googleStorageUtils.d.ts +3 -0
  29. package/dist/util-ts/googleStorageUtils.js +47 -0
  30. package/dist/util-ts/googleStorageUtils.js.map +1 -0
  31. package/dist/util-ts/pinoLogger.d.ts +12 -0
  32. package/dist/util-ts/pinoLogger.js +31 -0
  33. package/dist/util-ts/pinoLogger.js.map +1 -0
  34. package/dist/util-ts/regexUtils.d.ts +2 -0
  35. package/dist/util-ts/regexUtils.js +20 -0
  36. package/dist/util-ts/regexUtils.js.map +1 -0
  37. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ohtMeasurementsExtractor.service.js","sourceRoot":"","sources":["../../service/ohtMeasurementsExtractor.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { DataImportFileUpload } from "../types/oht.types";
2
+ declare function makeApiCallWithRetry(method: string, url: string, data: any, ohtCoreApiKey: string | undefined, retries?: number): Promise<import("axios").AxiosResponse<any, any>>;
3
+ declare function parseErrorObj(resp: any): {
4
+ message: any;
5
+ config: any;
6
+ };
7
+ declare function postDataImportFileUploadToCore(dataImportFileUpload: DataImportFileUpload, rejectedStatus: string | undefined, rejectReason: string | undefined, isReportParsedCorrectly: boolean, filename: string, ohtCoreApiKey: string): Promise<DataImportFileUpload | null>;
8
+ export { postDataImportFileUploadToCore, makeApiCallWithRetry, parseErrorObj };
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.postDataImportFileUploadToCore = postDataImportFileUploadToCore;
7
+ exports.makeApiCallWithRetry = makeApiCallWithRetry;
8
+ exports.parseErrorObj = parseErrorObj;
9
+ const https_1 = __importDefault(require("https"));
10
+ const bottleneck_1 = __importDefault(require("bottleneck"));
11
+ const axios_1 = __importDefault(require("axios"));
12
+ const oht_types_1 = require("../types/oht.types");
13
+ const pinoLogger_1 = __importDefault(require("../util-ts/pinoLogger"));
14
+ const logger = (0, pinoLogger_1.default)();
15
+ const dotenv_1 = __importDefault(require("dotenv"));
16
+ const auxiliaryFunctions_service_1 = require("./auxiliaryFunctions.service");
17
+ dotenv_1.default.config({ path: `.env.local` });
18
+ const OHT_CORE_URL = process.env.OHT_CORE_URL;
19
+ const httpsAgent = new https_1.default.Agent({
20
+ keepAlive: true, // Set keepAlive to true for persistent connections
21
+ timeout: 60000, // Increase the timeout to 60 seconds
22
+ secureProtocol: 'TLSv1_2_method',
23
+ });
24
+ // Initialize the rate limiter
25
+ const limiter = new bottleneck_1.default({
26
+ minTime: 200, // Time in ms between each task (e.g., 200ms)
27
+ maxConcurrent: 1, // Maximum number of tasks running at the same time
28
+ });
29
+ // Wrap the API call function
30
+ // Wrap the API call function
31
+ const makeApiCall = limiter.wrap(async function (method, url, data, ohtCoreApiKey) {
32
+ const authHeader = `Basic ${ohtCoreApiKey}`;
33
+ const headers = {
34
+ 'Authorization': authHeader
35
+ };
36
+ return (0, axios_1.default)({
37
+ method,
38
+ url,
39
+ headers,
40
+ data,
41
+ httpsAgent,
42
+ });
43
+ });
44
+ // Function to handle API calls with retries
45
+ async function makeApiCallWithRetry(method, url, data, ohtCoreApiKey, retries = 3) {
46
+ for (let attempt = 1; attempt <= retries; attempt++) {
47
+ try {
48
+ return await makeApiCall(method, url, data, ohtCoreApiKey);
49
+ }
50
+ catch (error) {
51
+ if (attempt === retries) {
52
+ throw error;
53
+ }
54
+ logger.warn({ method, url }, `Attempt ${attempt} failed. Retrying...`);
55
+ }
56
+ }
57
+ }
58
+ function parseErrorObj(resp) {
59
+ let error = {
60
+ message: resp.message, // Basic error message
61
+ // stack: resp.stack, // Stack trace for debugging
62
+ config: resp.config // Axios request config that led to the error
63
+ };
64
+ if (resp.response) {
65
+ error = {
66
+ ...error,
67
+ // @ts-expect-error: adding response data and status to error message
68
+ responseData: resp.response.data,
69
+ status: resp.response.status,
70
+ };
71
+ }
72
+ else if (resp.request) {
73
+ error = {
74
+ ...error,
75
+ // @ts-expect-error: adding request to error message
76
+ error: resp.request
77
+ };
78
+ }
79
+ return error;
80
+ }
81
+ async function postDataImportFileUploadToCore(dataImportFileUpload, rejectedStatus, rejectReason, isReportParsedCorrectly, filename, ohtCoreApiKey) {
82
+ let status = isReportParsedCorrectly ?
83
+ oht_types_1.DataImportFileUploadStatus.PROCESSED :
84
+ oht_types_1.DataImportFileUploadStatus.FOR_REVIEW;
85
+ const patchStatus = rejectedStatus ?? status;
86
+ const ohtCoreFileUploadUrl = `${OHT_CORE_URL}/v1/file-uploads/${dataImportFileUpload.id}`;
87
+ const ohtCoreFileUploadSetStatusUrl = `${OHT_CORE_URL}/v1/file-uploads/status/set/${dataImportFileUpload.id}`;
88
+ const ohtCoreDigitalizationUrl = `${OHT_CORE_URL}/v1/file-uploads/${dataImportFileUpload.id}/digitalization`;
89
+ try {
90
+ const initialResponse = await makeApiCallWithRetry('patch', ohtCoreFileUploadUrl, {
91
+ ...dataImportFileUpload,
92
+ status: patchStatus,
93
+ rejectReason,
94
+ digitalization: {
95
+ ...dataImportFileUpload.digitalization,
96
+ pipelineStep: `${dataImportFileUpload.notes}: Render Report`
97
+ },
98
+ }, ohtCoreApiKey);
99
+ logger.info({ response: initialResponse }, `Resp: PATCH status: ${patchStatus} ${ohtCoreFileUploadUrl}, filename: ${filename}`);
100
+ if (isReportParsedCorrectly && rejectedStatus === undefined) {
101
+ try {
102
+ return await (0, auxiliaryFunctions_service_1.postFileUploadSetStatus)(oht_types_1.DataImportFileUploadStatus.READY, dataImportFileUpload.id, filename, ohtCoreApiKey);
103
+ }
104
+ catch (error) {
105
+ const errorDetail = parseErrorObj(error);
106
+ logger.error({ resp: errorDetail }, `ERROR: POST status: READY ${ohtCoreFileUploadSetStatusUrl}, filename: ${filename}`);
107
+ throw error;
108
+ }
109
+ }
110
+ logger.warn({
111
+ isReportParsedCorrectly,
112
+ rejectedStatus,
113
+ initialResponse
114
+ }, `Report not parsed correctly fileUploadID ${dataImportFileUpload.id}, filename: ${filename}`);
115
+ return initialResponse?.data;
116
+ }
117
+ catch (error) {
118
+ const errorDetail = parseErrorObj(error);
119
+ logger.error({ resp: errorDetail }, `ERROR: PATCH status: ${patchStatus} ${ohtCoreFileUploadUrl}, rejectedStatus: ${rejectedStatus} filename: ${filename}`);
120
+ // set digitalization error
121
+ await makeApiCallWithRetry('patch', ohtCoreDigitalizationUrl, {
122
+ status: oht_types_1.DigitizationStatus.ERROR,
123
+ pipelineStep: oht_types_1.PipelineStep.EXAM_DETAIL_EXTRACTION_STEP,
124
+ pipelineStepData: rejectReason,
125
+ }, ohtCoreApiKey);
126
+ return null; // TODO check which dataImportFileUpload should we return
127
+ }
128
+ }
129
+ //# sourceMappingURL=reportCreator.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reportCreator.service.js","sourceRoot":"","sources":["../../service/reportCreator.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { SlackMessage } from "../types/slackMessages.types";
2
+ declare function aggregateMessages(slackMsgErrors: SlackMessage[]): string;
3
+ declare function getSlackFileIssueNotificationMessage(message: string, lab: string, fileUrl: string): Record<string, any>;
4
+ /**
5
+ * Sends a message to a Slack channel.
6
+ * @param {Record<string, any>} payload - The message payload to be sent.
7
+ */
8
+ declare function sendMessageToSlack(payload: Record<string, any>): Promise<void>;
9
+ export { getSlackFileIssueNotificationMessage, sendMessageToSlack, aggregateMessages };
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getSlackFileIssueNotificationMessage = getSlackFileIssueNotificationMessage;
7
+ exports.sendMessageToSlack = sendMessageToSlack;
8
+ exports.aggregateMessages = aggregateMessages;
9
+ const axios_1 = __importDefault(require("axios"));
10
+ const dotenv_1 = __importDefault(require("dotenv"));
11
+ const pinoLogger_1 = __importDefault(require("../util-ts/pinoLogger"));
12
+ const logger = (0, pinoLogger_1.default)();
13
+ dotenv_1.default.config({ path: `.env.local` });
14
+ // Get the Slack webhook URL from the environment variable
15
+ const slackWebhookUrl = process.env.SLACK_WEBHOOK_URL;
16
+ function aggregateMessages(slackMsgErrors) {
17
+ const messageMap = slackMsgErrors.reduce((acc, { message, item }) => {
18
+ if (item) {
19
+ if (!acc[message]) {
20
+ acc[message] = [];
21
+ }
22
+ acc[message].push(item);
23
+ }
24
+ else {
25
+ if (!acc[message]) {
26
+ acc[message] = null;
27
+ }
28
+ }
29
+ return acc;
30
+ }, {});
31
+ return Object.entries(messageMap)
32
+ .map(([message, items]) => {
33
+ if (items) {
34
+ const joinedItems = items.map(item => `-> ${item}`).join('\n');
35
+ return message.replace('[PLACEHOLDER]', `[\n${joinedItems}\n]`);
36
+ }
37
+ else {
38
+ return message;
39
+ }
40
+ })
41
+ .join('\n');
42
+ }
43
+ // Function to generate a Slack notification message for file issues
44
+ function getSlackFileIssueNotificationMessage(message, lab, fileUrl) {
45
+ return {
46
+ blocks: [
47
+ {
48
+ type: 'section',
49
+ text: {
50
+ type: 'mrkdwn',
51
+ text: `*Issue processing file from <${lab}>*`,
52
+ },
53
+ },
54
+ {
55
+ type: 'section',
56
+ text: {
57
+ type: 'mrkdwn',
58
+ text: `*File:* <${fileUrl}|View File>`,
59
+ },
60
+ },
61
+ {
62
+ type: 'divider',
63
+ },
64
+ {
65
+ type: 'section',
66
+ text: {
67
+ type: 'mrkdwn',
68
+ text: message,
69
+ },
70
+ },
71
+ ],
72
+ };
73
+ }
74
+ /**
75
+ * Sends a message to a Slack channel.
76
+ * @param {Record<string, any>} payload - The message payload to be sent.
77
+ */
78
+ async function sendMessageToSlack(payload) {
79
+ try {
80
+ const response = await axios_1.default.post(slackWebhookUrl, payload);
81
+ if (response.status === 200) {
82
+ logger.info('Message successfully sent to Slack.');
83
+ }
84
+ else {
85
+ logger.info('Error sending message to Slack:', response.status, response.statusText);
86
+ }
87
+ }
88
+ catch (error) {
89
+ logger.warn('Error sending message to Slack:', error);
90
+ }
91
+ }
92
+ //# sourceMappingURL=slackMessages.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slackMessages.service.js","sourceRoot":"","sources":["../../service/slackMessages.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { SlackMessage } from "./slackMessages.types";
2
+ import { PatientInfo } from "./oht.types";
3
+ export declare const unitSynonyms: Record<string, string>;
4
+ export interface ValueExtraction {
5
+ valuePosition?: string;
6
+ defaultValueExtractionFunc?: (value: string) => string | null;
7
+ }
8
+ export interface RangeExtractionResponse {
9
+ from: number | null;
10
+ to: number | null;
11
+ isRangeParsedCorrectly: boolean;
12
+ }
13
+ export interface RangeExtraction {
14
+ useInternalRange: boolean;
15
+ rangePosition?: string;
16
+ extractionRegex?: RegExp;
17
+ extractionFunc?: (exam: any, labToOhtMapper: LabToOhtMapper, patientInfo: PatientInfo, documentDate?: Date) => RangeExtractionResponse;
18
+ defaultRangeExtractionFunc?: (labToOhtMapper: LabToOhtMapper, exam: any) => RangeExtractionResponse;
19
+ }
20
+ export interface UnitExtraction {
21
+ predefinedUnit?: string;
22
+ unitPosition?: string;
23
+ extractionRegex?: RegExp;
24
+ extractionFunc?: (examResult: any) => string | null;
25
+ }
26
+ export interface ReferenceAsAnnotation {
27
+ use: boolean;
28
+ position?: string;
29
+ extractionFunc?: (exam: any, labToOhtMapper: LabToOhtMapper, patientInfo: PatientInfo, documentDate?: Date) => string | null;
30
+ }
31
+ export interface UnknownMeasurementExtraction {
32
+ biomarkerName?: string;
33
+ value?: string;
34
+ unit?: string;
35
+ annotation?: string;
36
+ }
37
+ export interface LabToOhtMapper {
38
+ ohtBmId?: number;
39
+ labKey: string;
40
+ rawExam?: string;
41
+ material?: string;
42
+ method?: string;
43
+ valueExtraction?: ValueExtraction;
44
+ unitExtraction?: UnitExtraction;
45
+ rangeExtraction?: RangeExtraction;
46
+ referenceAsAnnotation?: ReferenceAsAnnotation;
47
+ unknownMeasurement?: UnknownMeasurementExtraction;
48
+ }
49
+ export interface LabToOhtContract {
50
+ labToOhtList: LabToOhtMapper[];
51
+ slackMessages: SlackMessage[];
52
+ patientInfo: PatientInfo;
53
+ documentDate?: Date;
54
+ sourceFilename: string;
55
+ externalPatientId: string;
56
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unitSynonyms = void 0;
4
+ exports.unitSynonyms = {
5
+ 'mm³': '/mm³',
6
+ '/mm3': '/mm³',
7
+ 'mg/dl': 'mg/dL',
8
+ 'milh./mm3': 'milhões/mm³',
9
+ 'milh./mm3³': 'milhões/mm³',
10
+ 'u3': 'µm³',
11
+ 'µm ³': 'µm³',
12
+ '10^6/µ L': '10^6/µL',
13
+ 'mUI/ mL': 'mIU/mL',
14
+ 'miu/ mL': 'mIU/mL',
15
+ 'mui/ml': 'mIU/mL',
16
+ 'ml/min/1,73m2': 'mL/min',
17
+ 'ml/min': 'mL/min/1,73m2',
18
+ 'seg': 's',
19
+ 'NA': 'None',
20
+ 'na': 'None',
21
+ '': 'None',
22
+ 'IU/L': 'U/L',
23
+ 'u/l': 'IU/L',
24
+ 'mcg/dl': 'µg/dL',
25
+ 'µui/ml': 'µIU/mL',
26
+ 'tera/L': '10^6/µL',
27
+ };
28
+ //# sourceMappingURL=custom-parser.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-parser.types.js","sourceRoot":"","sources":["../../types/custom-parser.types.ts"],"names":[],"mappings":";;;AAIa,QAAA,YAAY,GAA2B;IAClD,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,aAAa;IAC3B,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,QAAQ;IACnB,QAAQ,EAAE,QAAQ;IAClB,eAAe,EAAE,QAAQ;IACzB,QAAQ,EAAE,eAAe;IACzB,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,MAAM;IACV,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,SAAS;CACpB,CAAC"}
@@ -0,0 +1,300 @@
1
+ export interface OHTPartner {
2
+ id?: string;
3
+ _id: string;
4
+ createdAt: string;
5
+ updatedAt: string;
6
+ name: string;
7
+ countryCode: string;
8
+ pipeline: string;
9
+ language: string;
10
+ labProfileId?: string;
11
+ reportStyle: string;
12
+ apiVersion: string;
13
+ requiredFields: string[];
14
+ outputTypes: string[];
15
+ panelCustomisation?: PartnerCustomPanel;
16
+ reportCustomisation?: ReportCustomisation;
17
+ style: ReportStyleConfig[];
18
+ }
19
+ export type ReportCustomisation = {
20
+ rules: any[];
21
+ displaySettings: ReportDisplaySettings;
22
+ enableHistoricalData: boolean;
23
+ enableHistoricalMode: boolean;
24
+ includeLOINCCodes: boolean;
25
+ };
26
+ export type ReportDisplaySettings = {
27
+ displayExternalCompatibilityDisclaimer: boolean;
28
+ displayInternalCompatibilityDisclaimer: boolean;
29
+ displayBiomarkerSpecificDisclaimer: boolean;
30
+ displayInternalAnnotations: boolean;
31
+ displayCalculations: boolean;
32
+ displayHistoricalGenericDisclaimer: boolean;
33
+ };
34
+ export type PartnerCustomPanel = {
35
+ includedBiomarkerIds: number[];
36
+ biomarkerCustomisations: BiomarkerCustomisation[];
37
+ hubGroupViewEnabled: boolean;
38
+ };
39
+ export type BiomarkerCustomisation = {
40
+ biomarkerId: number;
41
+ key: string;
42
+ targetUnit: string;
43
+ };
44
+ export type LanguageCode = 'en' | 'es' | 'fr' | 'pt';
45
+ export type ReportStyleConfig = {
46
+ name: string;
47
+ logoPath?: string;
48
+ footerLogoPath?: string;
49
+ showSummary: boolean;
50
+ showUserImage: boolean;
51
+ showEvaluation: boolean;
52
+ generateEvaluation: boolean;
53
+ language?: LanguageCode;
54
+ default: boolean;
55
+ keyPath: string;
56
+ keyValue: string;
57
+ originalDownloadEnabled: boolean;
58
+ showOnlyFirstName: boolean;
59
+ headless?: boolean;
60
+ };
61
+ export interface SignedUpload {
62
+ id?: string;
63
+ _id: string;
64
+ contentType: string;
65
+ createdAt: string;
66
+ partnerId: string;
67
+ path: string;
68
+ status: string;
69
+ updatedAt: string;
70
+ userId: string;
71
+ externalId: string;
72
+ }
73
+ export interface MessagePayload {
74
+ contentType: string;
75
+ name: string;
76
+ partnerConfig: OHTPartner;
77
+ signedUpload: SignedUpload;
78
+ }
79
+ export type DataImportFileUpload = {
80
+ id: string;
81
+ description: string;
82
+ signedUploadId: string;
83
+ filename: string;
84
+ mimeType: string;
85
+ fileSizeBytes: number;
86
+ uploadedByUserId: string;
87
+ status: DataImportFileUploadStatus;
88
+ isArchived: boolean;
89
+ isDeleted: boolean;
90
+ lastProcessedByUserId?: string;
91
+ rejectReason?: string;
92
+ patientInfo: PatientInfo;
93
+ documentDate?: Date;
94
+ labProfileId?: string;
95
+ labId?: string;
96
+ partnerId: string;
97
+ externalPatientId: string;
98
+ digitalization: Digitization;
99
+ unknownMeasurements: UnknownMeasurement[];
100
+ measurements: Measurement[];
101
+ notes: string;
102
+ reportStyle: string;
103
+ createdAt: Date;
104
+ updatedAt: Date;
105
+ reportExternalId?: string;
106
+ documentFingerprint?: string;
107
+ };
108
+ export interface Measurement {
109
+ biomarkerId: number;
110
+ valueType: BiomarkerValueType;
111
+ alphanumericValue: string | null;
112
+ alphanumericRiskLevelId?: string;
113
+ value: number | null;
114
+ comparator: MeasurementValueComparator;
115
+ minNormalValue: number | null;
116
+ maxNormalValue: number | null;
117
+ rangeAnnotation?: string;
118
+ unit: string;
119
+ showVisualisationIfAnnotated: boolean;
120
+ score?: number;
121
+ method?: string;
122
+ material?: string;
123
+ collectionDate?: Date;
124
+ isDigitalizationApproved?: boolean;
125
+ isManualChecked?: boolean;
126
+ isAiParsed?: boolean;
127
+ isHumanParsed?: boolean;
128
+ }
129
+ export interface UnknownMeasurement {
130
+ biomarkerName: string;
131
+ value: string;
132
+ unit?: string;
133
+ annotation?: string;
134
+ isAiParsed?: boolean;
135
+ isHumanParsed?: boolean;
136
+ }
137
+ export interface PatientInfo {
138
+ firstName: string;
139
+ sex: Sex;
140
+ birthdate?: Date;
141
+ lastName?: string;
142
+ cpf?: string;
143
+ address?: string;
144
+ height?: number;
145
+ weight?: number;
146
+ isDigitalizationApproved: boolean;
147
+ }
148
+ export type Digitization = {
149
+ status: DigitizationStatus;
150
+ pipelineStep?: string;
151
+ pipelineStepPercentageCompleted?: number;
152
+ pipelineStepData?: Record<string, any>;
153
+ lastUpdated?: string;
154
+ };
155
+ export declare enum Sex {
156
+ MALE = "MALE",
157
+ FEMALE = "FEMALE",
158
+ OTHER = "OTHER"
159
+ }
160
+ export declare enum DataImportFileUploadStatus {
161
+ UPLOADED = "UPLOADED",
162
+ PENDING = "PENDING",
163
+ PROCESSING = "PROCESSING",
164
+ FOR_REVIEW = "FOR_REVIEW",
165
+ IN_REVIEW = "IN_REVIEW",
166
+ PROCESSED = "PROCESSED",
167
+ READY = "READY",
168
+ EDITING = "EDITING",
169
+ APPROVED = "APPROVED",
170
+ REJECTED = "REJECTED",
171
+ MISSING_DATA = "MISSING_DATA"
172
+ }
173
+ export declare enum BiomarkerValueType {
174
+ ALPHANUMERICAL = "ALPHANUMERICAL",
175
+ NUMERICAL = "NUMERICAL"
176
+ }
177
+ export declare enum MeasurementValueComparator {
178
+ EQUAL = "EQUAL",
179
+ GREATER_THAN = "GREATER_THAN",
180
+ LESS_THAN = "LESS_THAN"
181
+ }
182
+ export declare enum DigitizationStatus {
183
+ PENDING = "PENDING",
184
+ WAITING = "WAITING",
185
+ PROCESSING = "PROCESSING",
186
+ DONE = "DONE",
187
+ ERROR = "ERROR",
188
+ DISABLED = "DISABLED"
189
+ }
190
+ export declare enum PipelineStep {
191
+ REPORT_ANALYSIS_STEP = "REPORT_ANALYSIS_STEP",
192
+ EXAMS_LIST_STEP = "EXAMS_LIST_STEP",
193
+ EXAM_DETAIL_EXTRACTION_STEP = "EXAM_DETAIL_EXTRACTION_STEP",
194
+ BIOMARKER_MAPPING_STEP = "BIOMARKER_MAPPING_STEP"
195
+ }
196
+ export type Biomarker = {
197
+ id: number;
198
+ title: string;
199
+ link: string;
200
+ modifiedAt: string;
201
+ acf: BiomarkerAcf;
202
+ createdAt: string;
203
+ updatedAt: string;
204
+ };
205
+ export type BiomarkerAcf = {
206
+ goLiveStatus: GoLiveStatus;
207
+ bm_historical_view_active: boolean;
208
+ fullName: string;
209
+ shortName: string;
210
+ abbreviationName: string;
211
+ key: string;
212
+ aliasNames: NameAlias[];
213
+ standardUnit: string;
214
+ alternativeUnits: AlternativeUnit[];
215
+ longDescription: string;
216
+ shortDescription: string;
217
+ defaultType: string;
218
+ priority: string;
219
+ compatibility: BiomarkerCompatibility;
220
+ manualCheck: ManualCheck;
221
+ genericDisclaimerText: string;
222
+ genericDisclaimerLogic: AcfBiomarkerGenericDisclaimerLogic;
223
+ customCompatibilityDescription: string;
224
+ visualRanges: VisualRange[];
225
+ displayDecimals: number;
226
+ plausibilityRangeCheck: number;
227
+ plausibilityRangeCheckHigh: number;
228
+ referenceRanges: AcfReferenceRange[];
229
+ greatersmallerthanAllowed: boolean;
230
+ rangeAnnotation: string;
231
+ rangeAnnotationCheck: AcfBiomarkerRangeAnnotationCheck;
232
+ reviewStatus: string;
233
+ workPrio: string;
234
+ workingOrder: number;
235
+ };
236
+ export declare enum GoLiveStatus {
237
+ Green = "green",
238
+ Yellow = "yellow",
239
+ Red = "red"
240
+ }
241
+ export type AlternativeUnit = {
242
+ name: string;
243
+ conversionFactor: number;
244
+ displayDecimals: number;
245
+ isVisible: boolean;
246
+ };
247
+ export type NameAlias = {
248
+ name: string;
249
+ };
250
+ export type VisualRange = {
251
+ min: number;
252
+ max: number;
253
+ appliesTo: string;
254
+ };
255
+ export type AcfReferenceRange = {
256
+ from: number;
257
+ to: number;
258
+ greaterThan: number;
259
+ type: ReferenceRangeType;
260
+ alphanumericalMatch: string;
261
+ sex: Sex;
262
+ ageFrom: number;
263
+ ageTo: number;
264
+ riskLevel: string;
265
+ isStandard: boolean;
266
+ isVisible: boolean;
267
+ isCriticial: boolean;
268
+ exceptionCompatibility: string;
269
+ exceptionUnit: string;
270
+ exceptionAlphanumericalMatch: string;
271
+ description: string;
272
+ };
273
+ export declare enum ReferenceRangeType {
274
+ NUMERICAL = "numerical",
275
+ GREATER_THAN = "> XX",
276
+ ALPHANUMERICAL = "alphanumerical"
277
+ }
278
+ export declare enum BiomarkerCompatibility {
279
+ Internal = "internal",
280
+ External = "external",
281
+ ExternalAlphanumerical = "external_alphanumerical",
282
+ ExternalNoVisualRange = "external_no_visual_range",
283
+ ExternalStrict = "external_strict",
284
+ Custom = "custom"
285
+ }
286
+ export declare enum ManualCheck {
287
+ NO = "No",
288
+ MANDATORY = "Mandatory"
289
+ }
290
+ export declare enum AcfBiomarkerGenericDisclaimerLogic {
291
+ DONT_SHOW = "DONT_SHOW",
292
+ SHOW_ALWAYS = "SHOW_ALWAYS"
293
+ }
294
+ export declare enum AcfBiomarkerRangeAnnotationCheck {
295
+ DONT_SHOW = "DONT_SHOW",
296
+ SHOW_WITH_EXTERNAL = "SHOW_WITH_EXTERNAL",
297
+ SHOW_IF_NO_EXTERNAL = "SHOW_IF_NO_EXTERNAL",
298
+ SHOW_WOMEN_IF_NO_EXTERNAL = "SHOW_WOMEN_IF_NO_EXTERNAL",
299
+ SHOW_MEN_IF_NO_EXTERNAL = "SHOW_MEN_IF_NO_EXTERNAL"
300
+ }