From 994bb359e57226b61b59a525adab61f1e56f235f Mon Sep 17 00:00:00 2001 From: KeeyanGhoreshi Date: Fri, 1 Mar 2024 16:42:50 -0500 Subject: [PATCH 1/2] add launch --- src/hooks/hookResources.ts | 50 +++++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/src/hooks/hookResources.ts b/src/hooks/hookResources.ts index 2bea88c7..2ed16499 100644 --- a/src/hooks/hookResources.ts +++ b/src/hooks/hookResources.ts @@ -383,7 +383,7 @@ export async function handleCardOrder( createSmartLink(requirement.name, requirement.appContext, contextRequest) ); if (patient && patient.resourceType === 'Patient') { - createQuestionnaireSuggestion(card, requirement, patient); + createQuestionnaireSuggestion(card, requirement, patient, contextRequest); } smartLinkCount++; } @@ -394,7 +394,7 @@ export async function handleCardOrder( createSmartLink(requirement.name, requirement.appContext, contextRequest) ); if (patient && patient.resourceType === 'Patient') { - createQuestionnaireSuggestion(card, requirement, patient); + createQuestionnaireSuggestion(card, requirement, patient, contextRequest); } smartLinkCount++; } @@ -405,7 +405,7 @@ export async function handleCardOrder( createSmartLink(requirement.name, requirement.appContext, contextRequest) ); if (patient && patient.resourceType === 'Patient') { - createQuestionnaireSuggestion(card, requirement, patient); + createQuestionnaireSuggestion(card, requirement, patient, contextRequest); } smartLinkCount++; } @@ -494,7 +494,9 @@ export function handleHook( export function createQuestionnaireSuggestion( card: Card, requirement: Requirement, - patient: Patient + patient: Patient, + request: MedicationRequest + ) { if (requirement.appContext && requirement.appContext.includes('=')) { const qArr = requirement.appContext.split('='); // break up into parts @@ -510,8 +512,8 @@ export function createQuestionnaireSuggestion( if (qUrl) { const action: Action = { type: 'create', - description: `Create task for "completion of ${requirement.name} Questionnaire`, - resource: createQuestionnaireCompletionTask(requirement.name, qUrl, patient) + description: `Create task for "completion of ${requirement.name} Questionnaire"`, + resource: createQuestionnaireCompletionTask(requirement, patient, qUrl, request) }; const suggestion: Suggestion = { label: `Add "Completion of ${requirement.name} Questionnaire" to task list`, @@ -522,9 +524,10 @@ export function createQuestionnaireSuggestion( } } export function createQuestionnaireCompletionTask( - questionnaireTitle: string, + requirement: Requirement, + patient: Patient, questionnaireUrl: string, - patient: Patient + request: MedicationRequest ) { const taskResource: Task = { resourceType: 'Task', @@ -535,10 +538,15 @@ export function createQuestionnaireCompletionTask( { system: 'http://hl7.org/fhir/uv/sdc/CodeSystem/temp', code: 'complete-questionnaire' + }, + { + system : 'http://hl7.org/fhir/smart-app-launch/CodeSystem/smart-codes', + code : 'launch-app-ehr', + display : 'Launch application using the SMART EHR launch' } ] }, - description: `Complete ${questionnaireTitle} Questionnaire`, + description: `Complete ${requirement.name} Questionnaire`, for: { reference: `${patient.resourceType}/${patient.id}` }, @@ -549,6 +557,30 @@ export function createQuestionnaireCompletionTask( text: 'questionnaire' }, valueCanonical: `${questionnaireUrl}` + }, + { + type : { + coding : [ + { + system : 'http://hl7.org/fhir/smart-app-launch/CodeSystem/smart-codes', + code : 'smartonfhir-application', + display : 'SMART on FHIR application URL.' + } + ] + }, + valueUrl : config.smart.endpoint + }, + { + type : { + coding : [ + { + system : 'http://hl7.org/fhir/smart-app-launch/CodeSystem/smart-codes', + code : 'smartonfhir-appcontext', + display : 'Application context related to this launch.' + } + ] + }, + valueString : `${requirement.appContext}&order=${JSON.stringify(request)}&coverage=${request?.insurance?.[0].reference}` } ] }; From 07782d177aa7a46538492464ac8bd5c491de3a9c Mon Sep 17 00:00:00 2001 From: KeeyanGhoreshi Date: Tue, 5 Mar 2024 11:06:19 -0500 Subject: [PATCH 2/2] lint --- src/hooks/hookResources.ts | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/hooks/hookResources.ts b/src/hooks/hookResources.ts index 2ed16499..c24ba2fc 100644 --- a/src/hooks/hookResources.ts +++ b/src/hooks/hookResources.ts @@ -496,7 +496,6 @@ export function createQuestionnaireSuggestion( requirement: Requirement, patient: Patient, request: MedicationRequest - ) { if (requirement.appContext && requirement.appContext.includes('=')) { const qArr = requirement.appContext.split('='); // break up into parts @@ -540,9 +539,9 @@ export function createQuestionnaireCompletionTask( code: 'complete-questionnaire' }, { - system : 'http://hl7.org/fhir/smart-app-launch/CodeSystem/smart-codes', - code : 'launch-app-ehr', - display : 'Launch application using the SMART EHR launch' + system: 'http://hl7.org/fhir/smart-app-launch/CodeSystem/smart-codes', + code: 'launch-app-ehr', + display: 'Launch application using the SMART EHR launch' } ] }, @@ -559,28 +558,30 @@ export function createQuestionnaireCompletionTask( valueCanonical: `${questionnaireUrl}` }, { - type : { - coding : [ + type: { + coding: [ { - system : 'http://hl7.org/fhir/smart-app-launch/CodeSystem/smart-codes', - code : 'smartonfhir-application', - display : 'SMART on FHIR application URL.' + system: 'http://hl7.org/fhir/smart-app-launch/CodeSystem/smart-codes', + code: 'smartonfhir-application', + display: 'SMART on FHIR application URL.' } ] }, - valueUrl : config.smart.endpoint + valueUrl: config.smart.endpoint }, { - type : { - coding : [ + type: { + coding: [ { - system : 'http://hl7.org/fhir/smart-app-launch/CodeSystem/smart-codes', - code : 'smartonfhir-appcontext', - display : 'Application context related to this launch.' + system: 'http://hl7.org/fhir/smart-app-launch/CodeSystem/smart-codes', + code: 'smartonfhir-appcontext', + display: 'Application context related to this launch.' } ] }, - valueString : `${requirement.appContext}&order=${JSON.stringify(request)}&coverage=${request?.insurance?.[0].reference}` + valueString: `${requirement.appContext}&order=${JSON.stringify(request)}&coverage=${ + request?.insurance?.[0].reference + }` } ] };