diff --git a/src/fhir/guidanceResponseUtilities.ts b/src/fhir/guidanceResponseUtilities.ts index 1743ead3..b6806e18 100644 --- a/src/fhir/guidanceResponseUtilities.ts +++ b/src/fhir/guidanceResponseUtilities.ts @@ -28,6 +28,7 @@ export class GuidanceResponseUtilities { etasu: Pick< RemsCase, | 'drugName' + | 'auth_number' | 'status' | 'drugCode' | 'patientFirstName' @@ -77,7 +78,7 @@ export class GuidanceResponseUtilities { outputParameters.parameter?.push(parameter); } }); - + outputParameters.parameter?.push({ name: 'auth_number', valueString: etasu?.auth_number }); return outputParameters; } @@ -85,6 +86,7 @@ export class GuidanceResponseUtilities { etasu: Pick< RemsCase, | 'drugName' + | 'auth_number' | 'status' | 'drugCode' | 'patientFirstName' diff --git a/src/fhir/models.ts b/src/fhir/models.ts index b1015386..566f5e26 100644 --- a/src/fhir/models.ts +++ b/src/fhir/models.ts @@ -32,6 +32,7 @@ export interface MetRequirements extends Document { export interface RemsCase extends Document { case_number: string; + auth_number: string; status: string; drugName: string; drugCode: string; @@ -88,6 +89,7 @@ export const metRequirementsCollection = model( const remsCaseCollectionSchema = new Schema({ case_number: { type: String }, + auth_number: { type: String }, status: { type: String }, drugName: { type: String }, patientFirstName: { type: String }, diff --git a/src/lib/etasu.ts b/src/lib/etasu.ts index f4558116..a397c2a7 100644 --- a/src/lib/etasu.ts +++ b/src/lib/etasu.ts @@ -33,6 +33,11 @@ router.get('/met/:caseId', async (req: Request, res: Response) => { res.send(await remsCaseCollection.findOne({ case_number: req.params.caseId })); }); +router.get('/met/auth/:authNumber', async (req: Request, res: Response) => { + console.log('get etasu by authnumber: ' + req.params.authNumber); + res.send(await remsCaseCollection.findOne({ auth_number: req.params.authNumber })); +}); + export const getCaseInfo = async ( remsCaseSearchDict: FilterQuery, medicationSearchDict: FilterQuery @@ -40,6 +45,7 @@ export const getCaseInfo = async ( RemsCase, | 'status' | 'drugName' + | 'auth_number' | 'drugCode' | 'patientFirstName' | 'patientLastName' @@ -60,6 +66,7 @@ export const getCaseInfo = async ( RemsCase, | 'status' | 'drugName' + | 'auth_number' | 'drugCode' | 'patientFirstName' | 'patientLastName' @@ -68,6 +75,7 @@ export const getCaseInfo = async ( > = { status: 'Approved', drugName: drug?.name, + auth_number: remsCaseSearchDict.auth_number || '', drugCode: drug?.code, patientFirstName: remsCaseSearchDict.patientFirstName || '', patientLastName: remsCaseSearchDict.patientLastName || '', @@ -221,6 +229,7 @@ const createMetRequirementAndNewCase = async ( const remsRequest: Pick< RemsCase, | 'case_number' + | 'auth_number' | 'status' | 'drugName' | 'drugCode' @@ -230,6 +239,7 @@ const createMetRequirementAndNewCase = async ( | 'metRequirements' > = { case_number: case_number, + auth_number: '', status: remsRequestCompletedStatus, drugName: drug?.name, drugCode: drug?.code, @@ -377,6 +387,7 @@ const createMetRequirementAndUpdateCase = async ( if (!foundUncompleted && remsRequestToUpdate?.status === 'Pending') { remsRequestToUpdate.status = 'Approved'; + remsRequestToUpdate.auth_number = uid(); await remsRequestToUpdate.save(); } }