@openhealth/oht-custom-parser-lib 0.2.61 → 0.2.62
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.
|
@@ -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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"}
|