@openhealth/oht-custom-parser-lib 0.2.61 → 0.2.63
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.
- package/dist/service/auxiliaryFunctions.service.d.ts +16 -5
- package/dist/service/auxiliaryFunctions.service.js +36 -1
- package/dist/service/auxiliaryFunctions.service.js.map +1 -1
- package/dist/service/reportCreator.service.js +30 -38
- package/dist/service/reportCreator.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ErrorMessage } from '../types/error.types';
|
|
2
|
-
import { DataImportFileUpload, DataImportFileUploadStatus, Sex } from "../types/oht.types";
|
|
2
|
+
import { DataImportFileUpload, DataImportFileUploadStatus, DigitizationStatus, PipelineStep, Sex } from "../types/oht.types";
|
|
3
3
|
import dayjs from 'dayjs';
|
|
4
4
|
import { TransformationRulesChains } from "../types/custom-parser.types";
|
|
5
5
|
declare function getPatientAge(documentDate?: Date, patientBirthdate?: Date): number | null;
|
|
@@ -18,12 +18,23 @@ export interface FileUploadFilter {
|
|
|
18
18
|
search: string;
|
|
19
19
|
}
|
|
20
20
|
declare function queryFileUploadsWithFilters(filters: FileUploadFilter[], ohtCoreApiKey: string): Promise<DataImportFileUpload[]>;
|
|
21
|
+
/**
|
|
22
|
+
* Digitalization update fields matching the Go struct DigitalizationUpdateRequest
|
|
23
|
+
* All fields are optional except status (which is required in the digitalization object)
|
|
24
|
+
*/
|
|
25
|
+
interface DigitalizationUpdateFields {
|
|
26
|
+
status?: DigitizationStatus;
|
|
27
|
+
pipelineStep?: PipelineStep;
|
|
28
|
+
pipelineStepPercentageCompleted?: number;
|
|
29
|
+
pipelineStepData?: string;
|
|
30
|
+
pipelineVersion?: string | Record<string, any>;
|
|
31
|
+
timestamp?: string | dayjs.Dayjs;
|
|
32
|
+
lastUpdated?: dayjs.Dayjs;
|
|
33
|
+
}
|
|
21
34
|
declare function postFileUploadSetStatus(payload: {
|
|
22
35
|
status: DataImportFileUploadStatus;
|
|
23
|
-
digitalization
|
|
24
|
-
|
|
25
|
-
lastUpdated: dayjs.Dayjs;
|
|
26
|
-
};
|
|
36
|
+
digitalization?: DigitalizationUpdateFields;
|
|
37
|
+
rejectReason?: string;
|
|
27
38
|
}, fileUploadId: string, filename: string, ohtCoreApiKey: string): Promise<DataImportFileUpload>;
|
|
28
39
|
declare function getPartnerTransformationRules(partnerId: string, labKeys: string[], ohtCoreApiKey: string): Promise<TransformationRulesChains>;
|
|
29
40
|
export { parseExternalPatientId, parseGender, isPatientAgeValid, getPatientAge, handleRejection, queryFileUploadsWithFilters, postFileUploadSetStatus, getPartnerTransformationRules, };
|
|
@@ -76,7 +76,42 @@ async function queryFileUploadsWithFilters(filters, ohtCoreApiKey) {
|
|
|
76
76
|
async function postFileUploadSetStatus(payload, fileUploadId, filename, ohtCoreApiKey) {
|
|
77
77
|
const OHT_CORE_URL = process.env.OHT_CORE_URL;
|
|
78
78
|
const ohtCoreFileUploadSetStatusUrl = `${OHT_CORE_URL}/v1/file-uploads/status/set/${fileUploadId}`;
|
|
79
|
-
|
|
79
|
+
// Format the payload, converting dayjs objects to ISO strings
|
|
80
|
+
const formattedPayload = {
|
|
81
|
+
status: payload.status,
|
|
82
|
+
...(payload.rejectReason && { rejectReason: payload.rejectReason }),
|
|
83
|
+
};
|
|
84
|
+
// Format digitalization object if provided
|
|
85
|
+
if (payload.digitalization) {
|
|
86
|
+
const digitalization = {};
|
|
87
|
+
if (payload.digitalization.status !== undefined) {
|
|
88
|
+
digitalization.status = payload.digitalization.status;
|
|
89
|
+
}
|
|
90
|
+
if (payload.digitalization.pipelineStep !== undefined) {
|
|
91
|
+
digitalization.pipelineStep = payload.digitalization.pipelineStep;
|
|
92
|
+
}
|
|
93
|
+
if (payload.digitalization.pipelineStepPercentageCompleted !== undefined) {
|
|
94
|
+
digitalization.pipelineStepPercentageCompleted = payload.digitalization.pipelineStepPercentageCompleted;
|
|
95
|
+
}
|
|
96
|
+
if (payload.digitalization.pipelineStepData !== undefined) {
|
|
97
|
+
digitalization.pipelineStepData = payload.digitalization.pipelineStepData;
|
|
98
|
+
}
|
|
99
|
+
if (payload.digitalization.pipelineVersion !== undefined) {
|
|
100
|
+
digitalization.pipelineVersion = payload.digitalization.pipelineVersion;
|
|
101
|
+
}
|
|
102
|
+
// Handle timestamp - convert dayjs to ISO string, or use provided string
|
|
103
|
+
if (payload.digitalization.timestamp !== undefined) {
|
|
104
|
+
digitalization.timestamp = typeof payload.digitalization.timestamp === 'string'
|
|
105
|
+
? payload.digitalization.timestamp
|
|
106
|
+
: payload.digitalization.timestamp.toISOString();
|
|
107
|
+
}
|
|
108
|
+
else if (payload.digitalization.lastUpdated !== undefined) {
|
|
109
|
+
// Backward compatibility: convert lastUpdated to timestamp
|
|
110
|
+
digitalization.timestamp = payload.digitalization.lastUpdated.toISOString();
|
|
111
|
+
}
|
|
112
|
+
formattedPayload.digitalization = digitalization;
|
|
113
|
+
}
|
|
114
|
+
const processingResponse = await (0, apiUtils_1.makeApiCallWithRetry)('post', ohtCoreFileUploadSetStatusUrl, formattedPayload, ohtCoreApiKey);
|
|
80
115
|
logger.info({ resp: processingResponse?.data }, `Resp: POST status: ${payload.status} /file-uploads/${fileUploadId}, filename: ${filename}`);
|
|
81
116
|
return processingResponse?.data;
|
|
82
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auxiliaryFunctions.service.js","sourceRoot":"","sources":["../../service/auxiliaryFunctions.service.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"auxiliaryFunctions.service.js","sourceRoot":"","sources":["../../service/auxiliaryFunctions.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,15 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.postDataImportFileUploadToCore = postDataImportFileUploadToCore;
|
|
7
7
|
const oht_types_1 = require("../types/oht.types");
|
|
8
|
-
const dayjs_1 = __importDefault(require("dayjs"));
|
|
9
|
-
const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
|
|
10
|
-
const utc_1 = __importDefault(require("dayjs/plugin/utc"));
|
|
11
|
-
dayjs_1.default.extend(customParseFormat_1.default);
|
|
12
|
-
dayjs_1.default.extend(utc_1.default);
|
|
13
8
|
const pinoLogger_1 = __importDefault(require("../util-ts/pinoLogger"));
|
|
14
9
|
const logger = (0, pinoLogger_1.default)();
|
|
15
10
|
const dotenv_1 = __importDefault(require("dotenv"));
|
|
16
|
-
const auxiliaryFunctions_service_1 = require("./auxiliaryFunctions.service");
|
|
17
11
|
const dataUtils_1 = require("../util-ts/dataUtils");
|
|
18
12
|
const apiUtils_1 = require("../util-ts/apiUtils");
|
|
19
13
|
dotenv_1.default.config({ path: `.env.local` });
|
|
@@ -23,8 +17,7 @@ async function postDataImportFileUploadToCore(dataImportFileUpload, unknownMeasu
|
|
|
23
17
|
? oht_types_1.DataImportFileUploadStatus.PROCESSED
|
|
24
18
|
: oht_types_1.DataImportFileUploadStatus.FOR_REVIEW;
|
|
25
19
|
const patchStatus = rejectedStatus ?? status;
|
|
26
|
-
const
|
|
27
|
-
const ohtCoreFileUploadUrl = `${OHT_CORE_URL}/v1/file-uploads/${dataImportFileUpload.id}`;
|
|
20
|
+
const ohtCoreIngestionUrl = `${OHT_CORE_URL}/v1/file-uploads/${dataImportFileUpload.id}/ingestion`;
|
|
28
21
|
const ohtCoreDigitalizationUrl = `${OHT_CORE_URL}/v1/file-uploads/${dataImportFileUpload.id}/digitalization`;
|
|
29
22
|
// Get the owner user binding to update the user with patient information
|
|
30
23
|
const userBindingUrl = `${OHT_CORE_URL}/v1/useruploadbinding/useruploadbindings/${dataImportFileUpload.id}`;
|
|
@@ -51,17 +44,7 @@ async function postDataImportFileUploadToCore(dataImportFileUpload, unknownMeasu
|
|
|
51
44
|
const userResponse = await (0, apiUtils_1.makeApiCallWithRetry)('patch', userUrl, userPayload, ohtCoreApiKey);
|
|
52
45
|
logger.info({ response: userResponse.data }, `Resp: PATCH USER /v1/users/${ownerUserId}, filename: ${filename}`);
|
|
53
46
|
try {
|
|
54
|
-
|
|
55
|
-
...dataImportFileUpload,
|
|
56
|
-
status: patchStatus,
|
|
57
|
-
rejectReason,
|
|
58
|
-
digitalization: {
|
|
59
|
-
...dataImportFileUpload.digitalization,
|
|
60
|
-
pipelineStep: oht_types_1.PipelineStep.SENDING_RESULTS,
|
|
61
|
-
},
|
|
62
|
-
}, ohtCoreApiKey);
|
|
63
|
-
logger.info({ response: initialResponse.data }, `Resp: PATCH status: ${patchStatus} ${ohtCoreFileUploadUrl}, filename: ${filename}`);
|
|
64
|
-
// Send unknown measurements if they exist
|
|
47
|
+
// Send unknown measurements if they exist (before ingestion)
|
|
65
48
|
if (unknownMeasurements.unmappedlabkeys.length > 0) {
|
|
66
49
|
try {
|
|
67
50
|
await (0, dataUtils_1.updatePartnerCustomParserUnmappedLabKeys)(dataImportFileUpload.partnerId, unknownMeasurements, ohtCoreApiKey);
|
|
@@ -90,29 +73,38 @@ async function postDataImportFileUploadToCore(dataImportFileUpload, unknownMeasu
|
|
|
90
73
|
}, `Failed to send unknown units to server, filename: ${filename}`);
|
|
91
74
|
}
|
|
92
75
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
76
|
+
// Use ingestion endpoint - handles report creation and READY status automatically
|
|
77
|
+
const ingestionResponse = await (0, apiUtils_1.makeApiCallWithRetry)('patch', ohtCoreIngestionUrl, {
|
|
78
|
+
...dataImportFileUpload,
|
|
79
|
+
status: patchStatus,
|
|
80
|
+
rejectReason,
|
|
81
|
+
digitalization: {
|
|
82
|
+
...dataImportFileUpload.digitalization,
|
|
83
|
+
pipelineStep: oht_types_1.PipelineStep.SENDING_RESULTS,
|
|
84
|
+
},
|
|
85
|
+
}, ohtCoreApiKey);
|
|
86
|
+
logger.info({ response: ingestionResponse.data }, `Resp: PATCH ingestion status: ${patchStatus} ${ohtCoreIngestionUrl}, filename: ${filename}`);
|
|
87
|
+
// Ingestion endpoint returns acknowledgment: { message: "Ingestion started", fileUploadId: "..." }
|
|
88
|
+
// Processing (user updates, report creation, READY status) happens asynchronously in background
|
|
89
|
+
// For PROCESSED status, it will automatically:
|
|
90
|
+
// - Create report
|
|
91
|
+
// - Handle LabOrderID version deprecation (if labOrderId is present)
|
|
92
|
+
// - Set status to READY
|
|
93
|
+
// - Trigger all notifications and webhooks
|
|
94
|
+
if (!isReportParsedCorrectly || rejectedStatus !== undefined) {
|
|
95
|
+
logger.warn({
|
|
96
|
+
isReportParsedCorrectly,
|
|
97
|
+
rejectedStatus,
|
|
98
|
+
ingestionResponse: ingestionResponse.data,
|
|
99
|
+
}, `Report not parsed correctly fileUploadID ${dataImportFileUpload.id}, filename: ${filename}`);
|
|
105
100
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
initialResponse: initialResponse,
|
|
110
|
-
}, `Report not parsed correctly fileUploadID ${dataImportFileUpload.id}, filename: ${filename}`);
|
|
111
|
-
return initialResponse?.data;
|
|
101
|
+
// Return null since ingestion is asynchronous and we don't have the updated file upload object
|
|
102
|
+
// The caller should not rely on the returned value for status checking
|
|
103
|
+
return null;
|
|
112
104
|
}
|
|
113
105
|
catch (error) {
|
|
114
106
|
const errorDetail = (0, apiUtils_1.parseErrorObj)(error);
|
|
115
|
-
logger.error({ patchStatus, resp: errorDetail }, `ERROR: on report generation url:${
|
|
107
|
+
logger.error({ patchStatus, resp: errorDetail }, `ERROR: on report generation url:${ohtCoreIngestionUrl} filename: ${filename}`);
|
|
116
108
|
// set digitalization error
|
|
117
109
|
await (0, apiUtils_1.makeApiCallWithRetry)('patch', ohtCoreDigitalizationUrl, {
|
|
118
110
|
status: oht_types_1.DigitizationStatus.ERROR,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reportCreator.service.js","sourceRoot":"","sources":["../../service/reportCreator.service.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"reportCreator.service.js","sourceRoot":"","sources":["../../service/reportCreator.service.ts"],"names":[],"mappings":"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"}
|