Skip to content

Commit

Permalink
cleaned up my code a bit
Browse files Browse the repository at this point in the history
  • Loading branch information
SaraMunich-Lantana committed Jun 20, 2024
1 parent 61ddc89 commit 48b5c7a
Showing 1 changed file with 8 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -98,25 +98,15 @@ public String execute(String resourceString, String questionnaireId) {
}
}

// Assuming that the resourceString might be a QuestionnaireResponse
if (resource.fhirType().equalsIgnoreCase("QuestionnaireResponse")) {
QuestionnaireResponse questionnaireResponse = (QuestionnaireResponse) resource;
processAnswers(questionnaireResponse, orders); // Use orders as the related Bundle

// add the bundle to the output parameters if it contains any resources
if (!completeBundle.isEmpty()) {
ParametersParameterComponent parameter = new ParametersParameterComponent();
parameter.setName("return");
parameter.setResource(questionnaireResponse);
parameter.setResource(completeBundle);
outputParameters.addParameter(parameter);
} else {
logger.info("No matching Questionnaires found");
if (!completeBundle.isEmpty()) {
ParametersParameterComponent parameter = new ParametersParameterComponent();
parameter.setName("return");
parameter.setResource(completeBundle);
outputParameters.addParameter(parameter);
} else {
logger.info("No matching Questionnaires found");
}
}
}

Expand Down Expand Up @@ -359,31 +349,12 @@ private void addMandatoryExtensions(QuestionnaireResponse questionnaireResponse,
intendedUseExtension.setValue(new StringType((String) cqlResults.get("intendedUse")));
}
questionnaireResponse.addExtension(intendedUseExtension);
}

private void addInformationOriginExtension(QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent answer, String origin) {
Extension extension = new Extension();
extension.setUrl("http://hl7.org/fhir/us/davinci-dtr/ValueSet/informationOrigins");
extension.setValue(new StringType(origin));
answer.addExtension(extension);
}

private void processAnswers(QuestionnaireResponse questionnaireResponse, Bundle bundle) {
for (QuestionnaireResponse.QuestionnaireResponseItemComponent item : questionnaireResponse.getItem()) {
for (QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent answer : item.getAnswer()) {
if (answer.hasValueCoding()) {
Coding coding = answer.getValueCoding();
if ("http://hl7.org/fhir/us/davinci-dtr/CodeSystem/temp".equals(coding.getSystem())) {
if ("auto".equals(coding.getCode())) {
addInformationOriginExtension(answer, "Auto populated");
} else if ("manual".equals(coding.getCode())) {
addInformationOriginExtension(answer, "Manual entry");
} else if ("override".equals(coding.getCode())) {
addInformationOriginExtension(answer, "Auto populated but overridden by a human");
}
}
}
}
// Create and set the intended use extension
Extension informationOrigin = new Extension("http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/information-origin");
if (cqlResults.containsKey("origin")) {
informationOrigin.setValue(new StringType((String) cqlResults.get("origin")));
}
questionnaireResponse.addExtension(informationOrigin);
}
}

0 comments on commit 48b5c7a

Please sign in to comment.