Search in sources :

Example 1 with ConversionException

use of org.ehrbase.fhirbridge.ehr.converter.ConversionException in project fhir-bridge by ehrbase.

the class DiagnosticReportLabCompositionConverter method convertInternal.

@Override
protected GECCOLaborbefundComposition convertInternal(DiagnosticReport diagnosticReport) {
    if (diagnosticReport.hasContained()) {
        if (diagnosticReport.getContained().get(0).getResourceType() != ResourceType.Observation) {
            throw new ConversionException("One contained Observation was expected, the contained is present but no observation is within. Instance: " + diagnosticReport.getContained().get(0).getResourceType().toString());
        }
        GECCOLaborbefundComposition result = new GECCOLaborbefundComposition();
        result.setStatusDefiningCode(convertStatus(diagnosticReport));
        result.setKategorie(convertCategory(diagnosticReport));
        result.setLaborergebnis(convertLaborergebnis(diagnosticReport));
        return result;
    } else {
        throw new ConversionException("One contained Observation was expected " + diagnosticReport.getContained().size() + " were received in DiagnosticReport " + diagnosticReport.getId());
    }
}
Also used : ConversionException(org.ehrbase.fhirbridge.ehr.converter.ConversionException) GECCOLaborbefundComposition(org.ehrbase.fhirbridge.ehr.opt.geccolaborbefundcomposition.GECCOLaborbefundComposition)

Example 2 with ConversionException

use of org.ehrbase.fhirbridge.ehr.converter.ConversionException in project fhir-bridge by ehrbase.

the class ZusammenfassungDerBeschaeftigungEvaluationConverter method convertInternal.

@Override
protected ZusammenfassungDerBeschaeftigungEvaluation convertInternal(QuestionnaireResponse.QuestionnaireResponseItemComponent questionnaireResponseItemComponent) {
    ZusammenfassungDerBeschaeftigungEvaluation zusammenfassungDerBeschaftigungEvaluation = new ZusammenfassungDerBeschaeftigungEvaluation();
    BeschaeftigungCluster beschaftigungCluster = new BeschaeftigungCluster();
    switch(getQuestionValueCodeToString(questionnaireResponseItemComponent)) {
        case "community":
            beschaftigungCluster.setBerufsbereichDefiningCode(BerufsbereichDefiningCode.GEMEINSCHAFTSEINRICHTUNG_SCHULE_KITA_UNIVERSITAET_HEIM_ETC);
            break;
        case "medical":
            beschaftigungCluster.setBerufsbereichDefiningCode(BerufsbereichDefiningCode.MEDIZINISCHEN_BEREICH_PFLEGE_ARZTPRAXIS_ODER_KRANKENHAUS);
            break;
        case "LA46-8":
            beschaftigungCluster.setBerufsbereichDefiningCode(BerufsbereichDefiningCode.SONSTIGES);
            break;
        default:
            throw new ConversionException("The Value Code is not supported, supported ones are community, medical, LA46-8");
    }
    zusammenfassungDerBeschaftigungEvaluation.setBeschaeftigung(beschaftigungCluster);
    return zusammenfassungDerBeschaftigungEvaluation;
}
Also used : ConversionException(org.ehrbase.fhirbridge.ehr.converter.ConversionException) ZusammenfassungDerBeschaeftigungEvaluation(org.ehrbase.fhirbridge.ehr.opt.d4lquestionnairecomposition.definition.ZusammenfassungDerBeschaeftigungEvaluation) BeschaeftigungCluster(org.ehrbase.fhirbridge.ehr.opt.d4lquestionnairecomposition.definition.BeschaeftigungCluster)

Example 3 with ConversionException

use of org.ehrbase.fhirbridge.ehr.converter.ConversionException in project fhir-bridge by ehrbase.

the class ReisehistorieAdminEntryConverter method setReiseHistorie.

private void setReiseHistorie(List<ReisehistorieBestimmtesReisezielCluster> reisehistorieBestimmtesReisezielClusters, Observation.ObservationComponentComponent observationComponent) {
    Coding coding = observationComponent.getCode().getCoding().get(0);
    validateCodeSystemLOINC(coding.getSystem());
    String code = coding.getCode();
    if (code.equals(HistoryOfTravelCode.LOINC_DATE_TRAVEL_STARTED.getCode())) {
        reisehistorieBestimmtesReisezielClusters.add(convertEinreiseDatum(observationComponent));
    } else if (code.equals(HistoryOfTravelCode.LOINC_DATE_OF_DEPARTURE_FROM_TRAVEL_DESTINATION.getCode())) {
        reisehistorieBestimmtesReisezielClusters.add(convertAbfahrtsDatum(observationComponent));
    } else if (code.equals(HistoryOfTravelCode.LOINC_CITY_OF_TRAVEL.getCode())) {
        reisehistorieBestimmtesReisezielClusters.add(convertStadtValue(observationComponent));
    } else if (code.equals(HistoryOfTravelCode.LOINC_STATE_OF_TRAVEL.getCode())) {
        reisehistorieBestimmtesReisezielClusters.add(convertBundeslandRegion(observationComponent));
    } else if (code.equals(HistoryOfTravelCode.LOINC_COUNTRY_OF_TRAVEL.getCode())) {
        reisehistorieBestimmtesReisezielClusters.add(convertLandCode(observationComponent));
    } else {
        throw new ConversionException("Expected loinc-code for history of travel, but got '" + coding.getSystem() + ":" + code + "' instead");
    }
}
Also used : ConversionException(org.ehrbase.fhirbridge.ehr.converter.ConversionException) Coding(org.hl7.fhir.r4.model.Coding)

Example 4 with ConversionException

use of org.ehrbase.fhirbridge.ehr.converter.ConversionException in project fhir-bridge by ehrbase.

the class GeccoMedikationObservationConverter method mapStatus.

protected StatusCluster mapStatus(MedicationStatement resource) {
    // TODO also reject unfinished ones
    StatusCluster statusCluster = new StatusCluster();
    String fhirStatus = resource.getStatusElement().getCode();
    if (fhirStatus.equals(StatusDefiningCode.ABGESCHLOSSEN.getValue()) || fhirStatus.equals("completed")) {
        statusCluster.setStatusDefiningCode(StatusDefiningCode.ABGESCHLOSSEN);
    } else if (fhirStatus.equals(StatusDefiningCode.AKTIV.getValue()) || fhirStatus.equals("active")) {
        statusCluster.setStatusDefiningCode(StatusDefiningCode.AKTIV);
    } else if (fhirStatus.equals(StatusDefiningCode.ANGEHALTEN.getValue()) || fhirStatus.equals("on-hold")) {
        statusCluster.setStatusDefiningCode(StatusDefiningCode.ANGEHALTEN);
    } else if (fhirStatus.equals(StatusDefiningCode.BEABSICHTIGT.getValue()) || fhirStatus.equals("intended")) {
        statusCluster.setStatusDefiningCode(StatusDefiningCode.BEABSICHTIGT);
    } else if (fhirStatus.equals(StatusDefiningCode.FEHLERHAFTE_ANWENDUNG.getValue()) || fhirStatus.equals("entered-in-error")) {
        throw new InvalidStatusCodeException(resource.getStatusElement().getCode());
    } else if (fhirStatus.equals(StatusDefiningCode.GESTOPPT.getValue()) || fhirStatus.equals("stopped")) {
        statusCluster.setStatusDefiningCode(StatusDefiningCode.GESTOPPT);
    } else if (fhirStatus.equals(StatusDefiningCode.NICHT_GENOMMEN.getValue()) || fhirStatus.equals("not-taken")) {
        statusCluster.setStatusDefiningCode(StatusDefiningCode.NICHT_GENOMMEN);
    } else if (fhirStatus.equals(StatusDefiningCode.UNBEKANNT.getValue()) || fhirStatus.equals("unknown")) {
        statusCluster.setStatusDefiningCode(StatusDefiningCode.UNBEKANNT);
    } else {
        throw new ConversionException("Invalid Status code " + fhirStatus);
    }
    return statusCluster;
}
Also used : ConversionException(org.ehrbase.fhirbridge.ehr.converter.ConversionException) StatusCluster(org.ehrbase.fhirbridge.ehr.opt.geccomedikationcomposition.definition.StatusCluster) InvalidStatusCodeException(org.ehrbase.fhirbridge.ehr.converter.InvalidStatusCodeException)

Example 5 with ConversionException

use of org.ehrbase.fhirbridge.ehr.converter.ConversionException in project fhir-bridge by ehrbase.

the class SpecimenConverter method mapSpecimenStatus.

private Optional<ProbeEignungZumTestenChoice> mapSpecimenStatus(Specimen specimenTarget) {
    EignungZumTestenDefiningCode eignungZumTestenDefiningcode;
    switch(specimenTarget.getStatus()) {
        case AVAILABLE:
            eignungZumTestenDefiningcode = EignungZumTestenDefiningCode.ZUFRIEDENSTELLEND;
            break;
        case UNSATISFACTORY:
            eignungZumTestenDefiningcode = EignungZumTestenDefiningCode.MANGELHAFT_VERARBEITET;
            break;
        case ENTEREDINERROR:
        case UNAVAILABLE:
        case NULL:
            eignungZumTestenDefiningcode = EignungZumTestenDefiningCode.MANGELHAFT_NICHT_VERARBEITET;
            break;
        default:
            throw new ConversionException("Unsupported value for specimen status " + specimenTarget.getStatus());
    }
    ProbeEignungZumTestenDvCodedText eignungZumTesten = new ProbeEignungZumTestenDvCodedText();
    eignungZumTesten.setEignungZumTestenDefiningCode(eignungZumTestenDefiningcode);
    return Optional.of(eignungZumTesten);
}
Also used : ConversionException(org.ehrbase.fhirbridge.ehr.converter.ConversionException) EignungZumTestenDefiningCode(org.ehrbase.fhirbridge.ehr.opt.geccolaborbefundcomposition.definition.EignungZumTestenDefiningCode) ProbeEignungZumTestenDvCodedText(org.ehrbase.fhirbridge.ehr.opt.geccolaborbefundcomposition.definition.ProbeEignungZumTestenDvCodedText)

Aggregations

ConversionException (org.ehrbase.fhirbridge.ehr.converter.ConversionException)15 DvIdentifier (com.nedap.archie.rm.datavalues.DvIdentifier)1 PartyIdentified (com.nedap.archie.rm.generic.PartyIdentified)1 PartySelf (com.nedap.archie.rm.generic.PartySelf)1 URI (java.net.URI)1 URISyntaxException (java.net.URISyntaxException)1 ArrayList (java.util.ArrayList)1 InvalidStatusCodeException (org.ehrbase.fhirbridge.ehr.converter.InvalidStatusCodeException)1 BeschaeftigungCluster (org.ehrbase.fhirbridge.ehr.opt.d4lquestionnairecomposition.definition.BeschaeftigungCluster)1 ImmunsuppressivaEvaluation (org.ehrbase.fhirbridge.ehr.opt.d4lquestionnairecomposition.definition.ImmunsuppressivaEvaluation)1 KortisionEvaluation (org.ehrbase.fhirbridge.ehr.opt.d4lquestionnairecomposition.definition.KortisionEvaluation)1 WohnsituationEvaluation (org.ehrbase.fhirbridge.ehr.opt.d4lquestionnairecomposition.definition.WohnsituationEvaluation)1 ZusammenfassungDerBeschaeftigungEvaluation (org.ehrbase.fhirbridge.ehr.opt.d4lquestionnairecomposition.definition.ZusammenfassungDerBeschaeftigungEvaluation)1 ProblemDiagnoseSchweregradDvCodedText (org.ehrbase.fhirbridge.ehr.opt.diagnosecomposition.definition.ProblemDiagnoseSchweregradDvCodedText)1 SchweregradDefiningCode (org.ehrbase.fhirbridge.ehr.opt.diagnosecomposition.definition.SchweregradDefiningCode)1 GECCOLaborbefundComposition (org.ehrbase.fhirbridge.ehr.opt.geccolaborbefundcomposition.GECCOLaborbefundComposition)1 EignungZumTestenDefiningCode (org.ehrbase.fhirbridge.ehr.opt.geccolaborbefundcomposition.definition.EignungZumTestenDefiningCode)1 ProbeEignungZumTestenDvCodedText (org.ehrbase.fhirbridge.ehr.opt.geccolaborbefundcomposition.definition.ProbeEignungZumTestenDvCodedText)1 StatusCluster (org.ehrbase.fhirbridge.ehr.opt.geccomedikationcomposition.definition.StatusCluster)1 EinzelheitenDerKommunikationAdresseDvText (org.ehrbase.fhirbridge.ehr.opt.geccopersonendatencomposition.definition.EinzelheitenDerKommunikationAdresseDvText)1