@@ -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,31 +247,27 @@ 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` +
273- `CRITICAL INSTRUCTION: Do NOT modify the metadata object.\n\n` +
274- `Analysis JSON:\n${ analysisJson } \n\n` +
270+ `Analysis JSON:\n${ labValuesJson } \n\n` +
275271 `Original Text:\n${ originalText } \n\n` +
276272 `Return ONLY corrected JSON with identical structure. No preamble, explanation, or text before/after JSON.` ;
277273
@@ -283,30 +279,30 @@ export class PerplexityService {
283279 try {
284280 const response = await this . createChatCompletion ( messages , {
285281 temperature : 0.3 , // Lower temperature for more accurate/factual responses
286- maxTokens : 4000 , // Ensure there's enough space for the full corrected analysis
282+ maxTokens : 4000 , // Ensure there's enough space for the full corrected labValues
287283 responseFormat : { type : 'json_object' } , // Use JSON mode for reliable JSON response
288284 } ) ;
289285
290- // Parse the response to get the corrected analysis
286+ // Parse the response to get the corrected labValues
291287 const responseText = response . choices [ 0 ] . message . content . trim ( ) ;
292288
293289 try {
294290 // Try to parse as JSON - Perplexity should return the corrected JSON
295- const correctedAnalysis = JSON . parse ( responseText ) ;
296- return correctedAnalysis ;
291+ const correctedLabValues = JSON . parse ( responseText ) ;
292+ return correctedLabValues ;
297293 } catch ( jsonParseError ) {
298- // If parsing fails, log the error but return the original analysis
294+ // If parsing fails, log the error but return the original labValues
299295 this . logger . error (
300296 `Failed to parse Perplexity review response as JSON: ${ jsonParseError instanceof Error ? jsonParseError . message : 'Unknown error' } ` ,
301297 ) ;
302- return analysis ;
298+ return labValues ;
303299 }
304300 } catch ( error ) {
305- // If the API call fails, log the error but return the original analysis
301+ // If the API call fails, log the error but return the original labValues
306302 this . logger . error (
307- `Error during medical analysis review: ${ error instanceof Error ? error . message : 'Unknown error' } ` ,
303+ `Error during medical labValues review: ${ error instanceof Error ? error . message : 'Unknown error' } ` ,
308304 ) ;
309- return analysis ;
305+ return labValues ;
310306 }
311307 }
312308}
0 commit comments