Skip to content

Commit 6935d25

Browse files
Adjusted how max card count calculates
1 parent 311d6e5 commit 6935d25

File tree

2 files changed

+20
-17
lines changed

2 files changed

+20
-17
lines changed

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,4 @@ public class Configuration {
2828
public Boolean getPriorAuth() { return priorAuth; }
2929
public Boolean getCoverage() { return coverage; }
3030
public int getMaxCards() { return maxCards; }
31-
32-
public boolean canAddCard(int currentCardCount) {
33-
return currentCardCount <= maxCards;
34-
}
3531
}

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

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,8 @@ public CdsResponse handleRequest(@Valid @RequestBody requestTypeT request, URL a
196196
// no error cards on empty when order-select request
197197

198198
boolean foundApplicableRule = false;
199+
int availableCardsLeft = hookConfiguration.getMaxCards();
200+
199201
for (CoverageRequirementRuleResult lookupResult : lookupResults) {
200202
requestLog.addTopic(requestService, lookupResult.getTopic());
201203
CqlResultsForCard results = executeCqlAndGetRelevantResults(lookupResult.getContext(), lookupResult.getTopic());
@@ -205,11 +207,16 @@ public CdsResponse handleRequest(@Valid @RequestBody requestTypeT request, URL a
205207
if (!results.ruleApplies())
206208
continue;
207209

210+
logger.info(String.valueOf(availableCardsLeft));
211+
212+
if (availableCardsLeft <= 0)
213+
break;
214+
208215
foundApplicableRule = true;
209216

210217
if (results.getCoverageRequirements().getApplies()) {
211218
// if prior auth already approved
212-
if (coverageRequirements.isPriorAuthApproved() && hookConfiguration.canAddCard(response.getCards().size())) {
219+
if (coverageRequirements.isPriorAuthApproved()) {
213220
response.addCard(cardBuilder.priorAuthCard(results, results.getRequest(), fhirComponents, coverageRequirements.getPriorAuthId(),
214221
request.getContext().getPatientId(), lookupResult.getCriteria().getPayorId(), request.getContext().getUserId(),
215222
applicationBaseUrl.toString() + "/fhir/" + fhirComponents.getFhirVersion().toString(),
@@ -220,35 +227,32 @@ public CdsResponse handleRequest(@Valid @RequestBody requestTypeT request, URL a
220227
if (coverageRequirements.isDocumentationRequired() || coverageRequirements.isPriorAuthRequired()) {
221228
if (!coverageRequirements.hasQuestionnaireUri()) {
222229
logger.warn("Unspecified Questionnaire URI; summary card sent to client");
223-
if (hookConfiguration.getCoverage())
230+
if (hookConfiguration.getCoverage()) {
224231
response.addCard(cardBuilder.transform(CardTypes.COVERAGE, results));
232+
}
225233
break;
226234
}
227235

228236
List<Link> smartAppLinks = createQuestionnaireLinks(request, applicationBaseUrl, lookupResult, results);
229237

230-
if (hookConfiguration.canAddCard(response.getCards().size())
231-
&& coverageRequirements.isPriorAuthRequired()
232-
&& hookConfiguration.getPriorAuth()) {
238+
if (coverageRequirements.isPriorAuthRequired() && hookConfiguration.getPriorAuth()) {
233239
Card card = cardBuilder.transform(CardTypes.PRIOR_AUTH, results, smartAppLinks);
234240
card.addSuggestionsItem(cardBuilder.createSuggestionWithNote(card, results.getRequest(), fhirComponents,
235241
"Save Update To EHR", "Update original " + results.getRequest().fhirType() + " to add note",
236242
true, CoverageGuidance.ADMIN));
237243
response.addCard(card);
238-
} else if (hookConfiguration.canAddCard(response.getCards().size())
239-
&& coverageRequirements.isDocumentationRequired()
240-
&& hookConfiguration.getDTRClin()) {
244+
availableCardsLeft--;
245+
} else if (coverageRequirements.isDocumentationRequired() && hookConfiguration.getDTRClin()) {
241246
Card card = cardBuilder.transform(CardTypes.DTR_CLIN, results, smartAppLinks);
242247
card.addSuggestionsItem(cardBuilder.createSuggestionWithNote(card, results.getRequest(), fhirComponents,
243248
"Save Update To EHR", "Update original " + results.getRequest().fhirType() + " to add note",
244249
true, CoverageGuidance.CLINICAL));
245250
response.addCard(card);
251+
availableCardsLeft--;
246252
}
247253

248254
// add a card for an alternative therapy if there is one
249-
if (hookConfiguration.canAddCard(response.getCards().size())
250-
&& results.getAlternativeTherapy().getApplies()
251-
&& hookConfiguration.getAlternativeTherapy()) {
255+
if (availableCardsLeft != 0 && results.getAlternativeTherapy().getApplies() && hookConfiguration.getAlternativeTherapy()) {
252256
try {
253257
response.addCard(cardBuilder.alternativeTherapyCard(results.getAlternativeTherapy(),
254258
results.getRequest(), fhirComponents));
@@ -261,19 +265,22 @@ public CdsResponse handleRequest(@Valid @RequestBody requestTypeT request, URL a
261265

262266
// no prior auth or documentation required
263267
logger.info("Add the no doc or prior auth required card");
264-
if (hookConfiguration.canAddCard(response.getCards().size()) && hookConfiguration.getCoverage()) {
268+
if (availableCardsLeft != 0 && hookConfiguration.getCoverage()) {
265269
Card card = cardBuilder.transform(CardTypes.COVERAGE, results);
266270
card.addSuggestionsItem(cardBuilder.createSuggestionWithNote(card, results.getRequest(), fhirComponents,
267271
"Save Update To EHR", "Update original " + results.getRequest().fhirType() + " to add note",
268272
true, CoverageGuidance.COVERED));
269273
card.setSelectionBehavior(Card.SelectionBehaviorEnum.ANY);
270274
response.addCard(card);
271275
}
276+
277+
logger.info(String.valueOf(availableCardsLeft));
272278
}
273279

274280
// apply the DrugInteractions
275-
if (hookConfiguration.canAddCard(response.getCards().size()) && results.getDrugInteraction().getApplies()) {
281+
if (availableCardsLeft != 0 && results.getDrugInteraction().getApplies()) {
276282
response.addCard(cardBuilder.drugInteractionCard(results.getDrugInteraction(), results.getRequest()));
283+
availableCardsLeft--;
277284
}
278285
}
279286

0 commit comments

Comments
 (0)