@@ -2,7 +2,7 @@ import { Injectable, Logger } from '@nestjs/common';
22import { ConfigService } from '@nestjs/config' ;
33import axios from 'axios' ;
44import { AwsSecretsService } from './aws-secrets.service' ;
5- import { MedicalDocumentAnalysis } from 'src/document-processor/services/aws-bedrock.service' ;
5+ import { LabValue } from 'src/document-processor/services/aws-bedrock.service' ;
66
77export interface PerplexityMessage {
88 role : 'system' | 'user' | 'assistant' ;
@@ -247,32 +247,29 @@ export class PerplexityService {
247247 }
248248
249249 /**
250- * Reviews and verifies a medical document analysis against trusted medical sources
250+ * Reviews and verifies a medical document lab values against trusted medical sources
251251 *
252- * @param analysis The medical document analysis to review
252+ * @param labValues The medical document lab values to review
253253 * @param originalText The original text of the medical document
254- * @returns The corrected medical document analysis
254+ * @returns The corrected medical document lab values
255255 */
256- async reviewMedicalAnalysis (
257- analysis : MedicalDocumentAnalysis ,
258- originalText : string ,
259- ) : Promise < any > {
260- this . logger . log ( 'Reviewing medical document analysis with Perplexity' ) ;
256+ async reviewLabValuesAnalysis ( labValues : LabValue [ ] , originalText : string ) : Promise < LabValue [ ] > {
257+ this . logger . log ( 'Reviewing medical document lab values with Perplexity' ) ;
261258
262259 const systemPrompt =
263- 'Medical information verification specialist. Verify analysis against trusted sources (Mayo Clinic, Cleveland Clinic, CDC, NIH, WHO, medical journals). Ensure accuracy of lab ranges, interpretations, and recommendations. Return only corrected JSON. IMPORTANT: Do not modify the metadata object.' ;
260+ 'Medical information verification specialist. Verify lab values against trusted sources (Mayo Clinic, Cleveland Clinic, CDC, NIH, WHO, medical journals). Ensure accuracy of lab ranges, interpretations, and recommendations. Return only corrected JSON. IMPORTANT: Do not modify the metadata object.' ;
264261
265- const analysisJson = JSON . stringify ( analysis , null , 2 ) ;
262+ const labValuesJson = JSON . stringify ( labValues , null , 2 ) ;
266263
267264 const userPrompt =
268- `Review this medical analysis for accuracy. Verify:\n` +
265+ `Review this medical lab values for accuracy. Verify:\n` +
269266 `1. Lab value reference ranges\n` +
270267 `2. Interpretations of abnormal values\n` +
271268 `3. Medical conclusions and recommendations\n` +
272269 `4. Lab value categorizations\n\n` +
273270 `CRITICAL INSTRUCTION: Do NOT modify {metadata}.\n\n` +
274271 `CRITICAL INSTRUCTION: Do NOT modify {medicalComments}.\n\n` +
275- `Analysis JSON:\n${ analysisJson } \n\n` +
272+ `Analysis JSON:\n${ labValuesJson } \n\n` +
276273 `Original Text:\n${ originalText } \n\n` +
277274 `Return ONLY corrected JSON with identical structure. No preamble, explanation, or text before/after JSON.` ;
278275
@@ -284,30 +281,30 @@ export class PerplexityService {
284281 try {
285282 const response = await this . createChatCompletion ( messages , {
286283 temperature : 0.3 , // Lower temperature for more accurate/factual responses
287- maxTokens : 4000 , // Ensure there's enough space for the full corrected analysis
284+ maxTokens : 4000 , // Ensure there's enough space for the full corrected labValues
288285 responseFormat : { type : 'json_object' } , // Use JSON mode for reliable JSON response
289286 } ) ;
290287
291- // Parse the response to get the corrected analysis
288+ // Parse the response to get the corrected labValues
292289 const responseText = response . choices [ 0 ] . message . content . trim ( ) ;
293290
294291 try {
295292 // Try to parse as JSON - Perplexity should return the corrected JSON
296- const correctedAnalysis = JSON . parse ( responseText ) ;
297- return correctedAnalysis ;
293+ const correctedLabValues = JSON . parse ( responseText ) ;
294+ return correctedLabValues ;
298295 } catch ( jsonParseError ) {
299- // If parsing fails, log the error but return the original analysis
296+ // If parsing fails, log the error but return the original labValues
300297 this . logger . error (
301298 `Failed to parse Perplexity review response as JSON: ${ jsonParseError instanceof Error ? jsonParseError . message : 'Unknown error' } ` ,
302299 ) ;
303- return analysis ;
300+ return labValues ;
304301 }
305302 } catch ( error ) {
306- // If the API call fails, log the error but return the original analysis
303+ // If the API call fails, log the error but return the original labValues
307304 this . logger . error (
308- `Error during medical analysis review: ${ error instanceof Error ? error . message : 'Unknown error' } ` ,
305+ `Error during medical labValues review: ${ error instanceof Error ? error . message : 'Unknown error' } ` ,
309306 ) ;
310- return analysis ;
307+ return labValues ;
311308 }
312309 }
313310}
0 commit comments