Search in sources :

Example 1 with AssessmentResponse

use of org.hl7.gravity.refimpl.sdohexchange.dto.response.AssessmentDto.AssessmentResponse in project Gravity-SDOH-Exchange-RI by FHIR.

the class AssessmentResponseToDtoConverter2 method convert.

@Override
public List<AssessmentResponse> convert(AseessmentInfoBundleExtractor.AssessmentInfoHolder infoHolder) {
    return infoHolder.getQuestionnaireResponse().getItem().stream().map(qr -> {
        AssessmentResponse assessmentResponse = new AssessmentResponse();
        assessmentResponse.setQuestion(new StringTypeDto(qr.getText()));
        Type itemAnswer = qr.getAnswerFirstRep().getValue();
        if (itemAnswer instanceof StringType) {
            assessmentResponse.setAnswer(new StringTypeDto(((StringType) itemAnswer).getValue()));
        } else if (itemAnswer instanceof Coding) {
            assessmentResponse.setAnswer(new StringTypeDto(((Coding) itemAnswer).getDisplay()));
        } else {
            assessmentResponse.getErrors().add(String.format("Answer cannot be resolved. %s type is not expected.", itemAnswer.getClass().getSimpleName()));
            assessmentResponse.setAnswer(new StringTypeDto("Answer cannot be parsed."));
        }
        return assessmentResponse;
    }).collect(Collectors.toList());
}
Also used : StringTypeDto(org.hl7.gravity.refimpl.sdohexchange.dto.response.StringTypeDto) Converter(org.springframework.core.convert.converter.Converter) List(java.util.List) Type(org.hl7.fhir.r4.model.Type) AssessmentResponse(org.hl7.gravity.refimpl.sdohexchange.dto.response.AssessmentDto.AssessmentResponse) Coding(org.hl7.fhir.r4.model.Coding) StringType(org.hl7.fhir.r4.model.StringType) AseessmentInfoBundleExtractor(org.hl7.gravity.refimpl.sdohexchange.fhir.extract.AseessmentInfoBundleExtractor) Collectors(java.util.stream.Collectors) Type(org.hl7.fhir.r4.model.Type) StringType(org.hl7.fhir.r4.model.StringType) StringTypeDto(org.hl7.gravity.refimpl.sdohexchange.dto.response.StringTypeDto) StringType(org.hl7.fhir.r4.model.StringType) Coding(org.hl7.fhir.r4.model.Coding) AssessmentResponse(org.hl7.gravity.refimpl.sdohexchange.dto.response.AssessmentDto.AssessmentResponse)

Example 2 with AssessmentResponse

use of org.hl7.gravity.refimpl.sdohexchange.dto.response.AssessmentDto.AssessmentResponse in project Gravity-SDOH-Exchange-RI by FHIR.

the class AssessmentResponseToDtoConverter method convert.

@Override
public List<AssessmentResponse> convert(AseessmentInfoBundleExtractor.AssessmentInfoHolder infoHolder) {
    Map<String, String> items = new HashMap<>();
    infoHolder.getQuestionnaireResponse().getItem().forEach(i -> items.put(i.getLinkId(), i.getText()));
    return infoHolder.getObservations().stream().filter(Observation::hasValue).map(o -> {
        AssessmentDto.AssessmentResponse assessmentResponse = new AssessmentDto.AssessmentResponse();
        String code = o.getCode().getCodingFirstRep().getCode();
        String question = items.get("/" + code);
        if (question == null) {
            question = code;
            assessmentResponse.getErrors().add("No question text found. Using a code instead.");
        }
        assessmentResponse.setQuestion(new StringTypeDto(question));
        assessmentResponse.setAnswer(typeToDtoConverter.convert(o.getValue()));
        return assessmentResponse;
    }).collect(Collectors.toList());
}
Also used : StringTypeDto(org.hl7.gravity.refimpl.sdohexchange.dto.response.StringTypeDto) Converter(org.springframework.core.convert.converter.Converter) List(java.util.List) AssessmentResponse(org.hl7.gravity.refimpl.sdohexchange.dto.response.AssessmentDto.AssessmentResponse) Map(java.util.Map) AssessmentDto(org.hl7.gravity.refimpl.sdohexchange.dto.response.AssessmentDto) HashMap(java.util.HashMap) AseessmentInfoBundleExtractor(org.hl7.gravity.refimpl.sdohexchange.fhir.extract.AseessmentInfoBundleExtractor) Collectors(java.util.stream.Collectors) Observation(org.hl7.fhir.r4.model.Observation) StringTypeDto(org.hl7.gravity.refimpl.sdohexchange.dto.response.StringTypeDto) HashMap(java.util.HashMap) AssessmentResponse(org.hl7.gravity.refimpl.sdohexchange.dto.response.AssessmentDto.AssessmentResponse) Observation(org.hl7.fhir.r4.model.Observation) AssessmentDto(org.hl7.gravity.refimpl.sdohexchange.dto.response.AssessmentDto) AssessmentResponse(org.hl7.gravity.refimpl.sdohexchange.dto.response.AssessmentDto.AssessmentResponse)

Aggregations

List (java.util.List)2 Collectors (java.util.stream.Collectors)2 AssessmentResponse (org.hl7.gravity.refimpl.sdohexchange.dto.response.AssessmentDto.AssessmentResponse)2 StringTypeDto (org.hl7.gravity.refimpl.sdohexchange.dto.response.StringTypeDto)2 AseessmentInfoBundleExtractor (org.hl7.gravity.refimpl.sdohexchange.fhir.extract.AseessmentInfoBundleExtractor)2 Converter (org.springframework.core.convert.converter.Converter)2 HashMap (java.util.HashMap)1 Map (java.util.Map)1 Coding (org.hl7.fhir.r4.model.Coding)1 Observation (org.hl7.fhir.r4.model.Observation)1 StringType (org.hl7.fhir.r4.model.StringType)1 Type (org.hl7.fhir.r4.model.Type)1 AssessmentDto (org.hl7.gravity.refimpl.sdohexchange.dto.response.AssessmentDto)1