Skip to content
This repository was archived by the owner on Jul 31, 2023. It is now read-only.

Commit 620fdc7

Browse files
authored
Merge pull request #25 from mcode/REMS-160
Rems 160
2 parents 414b3f2 + 2c87a02 commit 620fdc7

3 files changed

Lines changed: 49 additions & 1 deletion

File tree

resources/src/main/java/org/cdshooks/CoverageRequirements.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ public class CoverageRequirements {
88
private String details;
99
private String infoLink;
1010
private String questionnaireOrderUri;
11+
private String questionnairePrescriberEnrollmentUri;
12+
private String questionnairePrescriberKnowledgeAssessmentUri;
1113
private String questionnaireFaceToFaceUri;
1214
private String questionnaireLabUri;
1315
private String questionnaireProgressNoteUri;
@@ -68,6 +70,24 @@ public String getQuestionnaireFaceToFaceUri() {
6870
return this.questionnaireFaceToFaceUri;
6971
}
7072

73+
public CoverageRequirements setQuestionnairePrescriberEnrollmentUri(String questionnairePrescriberEnrollmentUri) {
74+
this.questionnairePrescriberEnrollmentUri = questionnairePrescriberEnrollmentUri;
75+
return this;
76+
}
77+
78+
public String getQuestionnairePrescriberEnrollmentUri() {
79+
return this.questionnairePrescriberEnrollmentUri;
80+
}
81+
82+
public CoverageRequirements setQuestionnairePrescriberKnowledgeAssessmentUri(String questionnairePrescriberKnowledgeAssessmentUri) {
83+
this.questionnairePrescriberKnowledgeAssessmentUri = questionnairePrescriberKnowledgeAssessmentUri;
84+
return this;
85+
}
86+
87+
public String getQuestionnairePrescriberKnowledgeAssessmentUri() {
88+
return this.questionnairePrescriberKnowledgeAssessmentUri;
89+
}
90+
7191
public CoverageRequirements setQuestionnaireFaceToFaceUri(String questionnaireFaceToFaceUri) {
7292
this.questionnaireFaceToFaceUri = questionnaireFaceToFaceUri;
7393
return this;
@@ -117,6 +137,7 @@ public CoverageRequirements setQuestionnaireDispenseUri(String questionnaireDisp
117137
this.questionnaireDispenseUri = questionnaireDispenseUri;
118138
return this;
119139
}
140+
120141
public String getRequestId() {
121142
return requestId;
122143
}

server/src/main/java/org/hl7/davinci/endpoint/cdshooks/services/crd/CdsService.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import org.hl7.davinci.r4.crdhook.CrdPrefetch;
2626
import org.hl7.davinci.r4.crdhook.DiscoveryExtension;
2727
import org.hl7.davinci.r4.crdhook.orderselect.OrderSelectRequest;
28-
import org.hl7.davinci.endpoint.database.FhirResourceRepository;
2928
import org.opencds.cqf.cql.engine.execution.Context;
3029
import org.slf4j.Logger;
3130
import org.slf4j.LoggerFactory;
@@ -145,6 +144,8 @@ public CdsResponse handleRequest(@Valid @RequestBody requestTypeT request, URL a
145144

146145
} else if (coverageRequirements.isDocumentationRequired() || coverageRequirements.isPriorAuthRequired()) {
147146
if (StringUtils.isNotEmpty(coverageRequirements.getQuestionnaireOrderUri())
147+
|| StringUtils.isNotEmpty(coverageRequirements.getQuestionnairePrescriberEnrollmentUri())
148+
|| StringUtils.isNotEmpty(coverageRequirements.getQuestionnairePrescriberKnowledgeAssessmentUri())
148149
|| StringUtils.isNotEmpty(coverageRequirements.getQuestionnaireFaceToFaceUri())
149150
|| StringUtils.isNotEmpty(coverageRequirements.getQuestionnaireLabUri())
150151
|| StringUtils.isNotEmpty(coverageRequirements.getQuestionnaireProgressNoteUri())
@@ -228,6 +229,16 @@ private List<Link> createQuestionnaireLinks(requestTypeT request, URL applicatio
228229
coverageRequirements.getQuestionnaireOrderUri(), coverageRequirements.getRequestId(),
229230
lookupResult.getCriteria(), coverageRequirements.isPriorAuthRequired(), "Patient Enrollment Form"));
230231
}
232+
if (StringUtils.isNotEmpty(coverageRequirements.getQuestionnairePrescriberEnrollmentUri())) {
233+
listOfLinks.add(smartLinkBuilder(request.getContext().getPatientId(), request.getFhirServer(), applicationBaseUrl,
234+
coverageRequirements.getQuestionnairePrescriberEnrollmentUri(), coverageRequirements.getRequestId(),
235+
lookupResult.getCriteria(), coverageRequirements.isPriorAuthRequired(), "Prescriber Enrollment Form"));
236+
}
237+
if (StringUtils.isNotEmpty(coverageRequirements.getQuestionnairePrescriberKnowledgeAssessmentUri())) {
238+
listOfLinks.add(smartLinkBuilder(request.getContext().getPatientId(), request.getFhirServer(), applicationBaseUrl,
239+
coverageRequirements.getQuestionnairePrescriberKnowledgeAssessmentUri(), coverageRequirements.getRequestId(),
240+
lookupResult.getCriteria(), coverageRequirements.isPriorAuthRequired(), "Prescriber Knowledge Assessment Form"));
241+
}
231242
if (StringUtils.isNotEmpty(coverageRequirements.getQuestionnaireFaceToFaceUri())) {
232243
listOfLinks.add(smartLinkBuilder(request.getContext().getPatientId(), request.getFhirServer(), applicationBaseUrl,
233244
coverageRequirements.getQuestionnaireFaceToFaceUri(), coverageRequirements.getRequestId(),

server/src/main/java/org/hl7/davinci/endpoint/cdshooks/services/crd/r4/OrderSignService.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,22 @@ protected CqlResultsForCard executeCqlAndGetRelevantResults(Context context, Str
156156
logger.info("-- No face to face questionnaire defined");
157157
}
158158

159+
try {
160+
if (evaluateStatement("RESULT_QuestionnairePrescriberEnrollmentUri", context) != null) {
161+
coverageRequirements.setQuestionnairePrescriberEnrollmentUri(evaluateStatement("RESULT_QuestionnairePrescriberEnrollmentUri", context).toString());
162+
}
163+
} catch (Exception e) {
164+
logger.info("-- No Prescriber Enrollment defined");
165+
}
166+
167+
try {
168+
if (evaluateStatement("RESULT_QuestionnairePrescriberKnowledgeAssessmentUri", context) != null) {
169+
coverageRequirements.setQuestionnairePrescriberKnowledgeAssessmentUri(evaluateStatement("RESULT_QuestionnairePrescriberKnowledgeAssessmentUri", context).toString());
170+
}
171+
} catch (Exception e) {
172+
logger.info("-- No Prescriber Knowledge Assessment defined");
173+
}
174+
159175
try {
160176
if (evaluateStatement("RESULT_QuestionnaireLabUri", context) != null) {
161177
coverageRequirements.setQuestionnaireLabUri(evaluateStatement("RESULT_QuestionnaireLabUri", context).toString());

0 commit comments

Comments
 (0)