Search in sources :

Example 6 with MEDICATIONSTATEMENT

use of org.hl7.fhir.r4.model.codesystems.ResourceTypes.MEDICATIONSTATEMENT in project fhir-bridge by ehrbase.

the class ImmunglobulineBeliebigesEreignisPointEventConverter method convertInternal.

@Override
protected ImmunglobulineBeliebigesEreignisPointEvent convertInternal(MedicationStatement medicationStatement) {
    ImmunglobulineBeliebigesEreignisPointEvent immunglobulineBeliebigesEreignisPointEvent = new ImmunglobulineBeliebigesEreignisPointEvent();
    for (Coding coding : medicationStatement.getMedicationCodeableConcept().getCoding()) {
        if (coding.getSystem().equals("http://fhir.de/CodeSystem/bfarm/atc")) {
            DvCodedTextParser.getInstance().parseFHIRCoding(coding).ifPresent(immunglobulineBeliebigesEreignisPointEvent::setArzneimittelName);
        }
    }
    getGrundDefiningCode(medicationStatement).ifPresent(immunglobulineBeliebigesEreignisPointEvent::setGrund);
    return immunglobulineBeliebigesEreignisPointEvent;
}
Also used : Coding(org.hl7.fhir.r4.model.Coding) ImmunglobulineBeliebigesEreignisPointEvent(org.ehrbase.fhirbridge.ehr.opt.geccomedikationcomposition.definition.ImmunglobulineBeliebigesEreignisPointEvent)

Example 7 with MEDICATIONSTATEMENT

use of org.hl7.fhir.r4.model.codesystems.ResourceTypes.MEDICATIONSTATEMENT in project fhir-bridge by ehrbase.

the class ImmunglobulineObservationConverter method convertInternal.

@Override
protected ImmunglobulineObservation convertInternal(MedicationStatement resource) {
    ImmunglobulineObservation immunglobulineObservation = new ImmunglobulineObservation();
    List<ImmunglobulineBeliebigesEreignisChoice> ereignisList = new ArrayList<>();
    for (Coding coding : resource.getMedicationCodeableConcept().getCoding()) {
        if (coding.getSystem().equals("http://fhir.de/CodeSystem/bfarm/atc")) {
            ereignisList.add(new ImmunglobulineBeliebigesEreignisPointEventConverter().convert(resource));
        }
    }
    immunglobulineObservation.setBeliebigesEreignis(ereignisList);
    return immunglobulineObservation;
}
Also used : Coding(org.hl7.fhir.r4.model.Coding) ArrayList(java.util.ArrayList) ImmunglobulineObservation(org.ehrbase.fhirbridge.ehr.opt.geccomedikationcomposition.definition.ImmunglobulineObservation) ImmunglobulineBeliebigesEreignisChoice(org.ehrbase.fhirbridge.ehr.opt.geccomedikationcomposition.definition.ImmunglobulineBeliebigesEreignisChoice)

Example 8 with MEDICATIONSTATEMENT

use of org.hl7.fhir.r4.model.codesystems.ResourceTypes.MEDICATIONSTATEMENT in project fhir-bridge by ehrbase.

the class FindMedicationStatementTransactionIT method findMedicationStatementSearch.

@Test
void findMedicationStatementSearch() throws IOException {
    for (int i = 0; i < 3; i++) {
        create("MedicationStatement/transactions/find-medication-statement-search.json");
    }
    Bundle bundle = search("MedicationStatement?subject.identifier=" + PATIENT_ID + "&status=not-taken");
    Assertions.assertEquals(3, bundle.getTotal());
    bundle.getEntry().forEach(entry -> {
        var medicationStatement = (MedicationStatement) entry.getResource();
        Assertions.assertEquals(PATIENT_ID, medicationStatement.getSubject().getIdentifier().getValue());
        Assertions.assertEquals(MedicationStatement.MedicationStatementStatus.NOTTAKEN, medicationStatement.getStatus());
    });
}
Also used : Bundle(org.hl7.fhir.r4.model.Bundle) MedicationStatement(org.hl7.fhir.r4.model.MedicationStatement) Test(org.junit.jupiter.api.Test)

Example 9 with MEDICATIONSTATEMENT

use of org.hl7.fhir.r4.model.codesystems.ResourceTypes.MEDICATIONSTATEMENT in project fhir-bridge by ehrbase.

the class MedicationStatementIT method testMapping.

@Override
public void testMapping(String resourcePath, String paragonPath) throws IOException {
    MedicationStatement medicationStatement = (MedicationStatement) super.testFileLoader.loadResource(resourcePath);
    GECCOMedikationCompositionConverter geccoMedikationCompositionConverter = new GECCOMedikationCompositionConverter();
    GECCOMedikationComposition mapped = geccoMedikationCompositionConverter.convert(medicationStatement);
    Diff diff = compareCompositions(getJavers(), paragonPath, mapped);
    assertEquals(0, diff.getChanges().size());
}
Also used : Diff(org.javers.core.diff.Diff) GECCOMedikationCompositionConverter(org.ehrbase.fhirbridge.ehr.converter.specific.medication.GECCOMedikationCompositionConverter) GECCOMedikationComposition(org.ehrbase.fhirbridge.ehr.opt.geccomedikationcomposition.GECCOMedikationComposition) MedicationStatement(org.hl7.fhir.r4.model.MedicationStatement)

Example 10 with MEDICATIONSTATEMENT

use of org.hl7.fhir.r4.model.codesystems.ResourceTypes.MEDICATIONSTATEMENT in project eCRNow by drajer-health.

the class LoadingQueryR4Bundle method createR4Bundle.

public Bundle createR4Bundle(LaunchDetails launchDetails, R4FhirData r4FhirData, Date start, Date end) {
    logger.trace("Initializing FHIR Context for Version:::: {}", launchDetails.getFhirVersion());
    FhirContext context = fhirContextInitializer.getFhirContext(launchDetails.getFhirVersion());
    IGenericClient client = fhirContextInitializer.createClient(context, launchDetails);
    Bundle bundle = r4ResourcesData.getCommonResources(r4FhirData, start, end, launchDetails, client, context);
    Encounter encounter = (Encounter) r4ResourcesData.getResourceFromBundle(bundle, Encounter.class);
    r4ResourcesData.loadPractitionersLocationAndOrganization(context, client, launchDetails, r4FhirData, encounter, bundle, start, end);
    r4ResourcesData.loadMedicationsData(context, client, launchDetails, r4FhirData, encounter, bundle, start, end);
    // Get Pregnancy Observations
    try {
        List<Observation> observationList = r4ResourcesData.getPregnancyObservationData(context, client, launchDetails, r4FhirData, encounter, start, end);
        r4FhirData.setPregnancyObs(observationList);
        for (Observation observation : observationList) {
            BundleEntryComponent observationsEntry = new BundleEntryComponent().setResource(observation);
            bundle.addEntry(observationsEntry);
        }
    } catch (Exception e) {
        logger.error("Error in getting Pregnancy Observation Data", e);
    }
    // Get Travel Observations
    try {
        List<Observation> observationList = r4ResourcesData.getTravelObservationData(context, client, launchDetails, r4FhirData, encounter, start, end);
        r4FhirData.setTravelObs(observationList);
        for (Observation observation : observationList) {
            BundleEntryComponent observationsEntry = new BundleEntryComponent().setResource(observation);
            bundle.addEntry(observationsEntry);
        }
    } catch (Exception e) {
        logger.error("Error in getting Travel Observation Data", e);
    }
    // Get Social History Observations (Occupation)
    try {
        List<Observation> observationList = r4ResourcesData.getSocialHistoryObservationDataOccupation(context, client, launchDetails, r4FhirData, encounter, start, end);
        r4FhirData.setOccupationObs(observationList);
        for (Observation observation : observationList) {
            BundleEntryComponent observationsEntry = new BundleEntryComponent().setResource(observation);
            bundle.addEntry(observationsEntry);
        }
    } catch (Exception e) {
        logger.error("Error in getting Social History Observation(Occupation) Data", e);
    }
    // Get Pregnancy Conditions
    try {
        List<Condition> conditionList = r4ResourcesData.getPregnancyConditions(context, client, launchDetails, r4FhirData, encounter, start, end);
        r4FhirData.setPregnancyConditions(conditionList);
        for (Condition condition : conditionList) {
            BundleEntryComponent conditionEntry = new BundleEntryComponent().setResource(condition);
            bundle.addEntry(conditionEntry);
        }
    } catch (Exception e) {
        logger.error("Error in getting Pregnancy Conditions", e);
    }
    try {
        List<MedicationStatement> medStatementsList = r4ResourcesData.getMedicationStatementData(context, client, launchDetails, r4FhirData, encounter, start, end);
        r4FhirData.setMedications(medStatementsList);
        for (MedicationStatement medStatement : medStatementsList) {
            BundleEntryComponent medStatementEntry = new BundleEntryComponent().setResource(medStatement);
            bundle.addEntry(medStatementEntry);
        }
    } catch (Exception e) {
        logger.error("Error in getting the MedicationStatement Data", e);
    }
    // Add to the bundle
    try {
        List<Immunization> immunizationsList = r4ResourcesData.getImmunizationData(context, client, launchDetails, r4FhirData, encounter, start, end);
        r4FhirData.setImmunizations(immunizationsList);
        for (Immunization immunization : immunizationsList) {
            BundleEntryComponent immunizationEntry = new BundleEntryComponent().setResource(immunization);
            bundle.addEntry(immunizationEntry);
        }
    } catch (Exception e) {
        logger.error("Error in getting the Immunization Data", e);
    }
    // Add to the bundle
    try {
        List<DiagnosticReport> diagnosticReportList = r4ResourcesData.getDiagnosticReportData(context, client, launchDetails, r4FhirData, encounter, start, end);
        r4FhirData.setDiagReports(diagnosticReportList);
        for (DiagnosticReport diagnosticReport : diagnosticReportList) {
            BundleEntryComponent diagnosticReportEntry = new BundleEntryComponent().setResource(diagnosticReport);
            bundle.addEntry(diagnosticReportEntry);
        }
    } catch (Exception e) {
        logger.error("Error in getting the DiagnosticReport Data", e);
    }
    // Setting bundle to FHIR Data
    logger.info("------------------------------CodeableConcept Codes------------------------------\n" + "Encounter Codes Size=====> {} \n" + "Conditions Codes Size=====> {} \n" + "Observation Codes Size=====> {}\n" + "Medication Codes Size=====> {}\n" + "Immunization Codes Size=====> {}\n" + "DiagnosticReport Codes Size=====> {}\n" + "ServiceRequests Codes Size=====> {}", r4FhirData.getR4EncounterCodes().size(), r4FhirData.getR4ConditionCodes().size(), r4FhirData.getR4LabResultCodes().size(), r4FhirData.getR4MedicationCodes().size(), r4FhirData.getR4ImmunizationCodes().size(), r4FhirData.getR4DiagnosticReportCodes().size(), r4FhirData.getR4ServiceRequestCodes().size());
    String fileName = ActionRepo.getInstance().getLogFileDirectory() + "/LoadingQueryR4Bundle-" + launchDetails.getLaunchPatientId() + ".json";
    ApplicationUtils.saveDataToFile(context.newJsonParser().encodeResourceToString(bundle), fileName);
    return bundle;
}
Also used : Condition(org.hl7.fhir.r4.model.Condition) FhirContext(ca.uhn.fhir.context.FhirContext) Immunization(org.hl7.fhir.r4.model.Immunization) IGenericClient(ca.uhn.fhir.rest.client.api.IGenericClient) Bundle(org.hl7.fhir.r4.model.Bundle) DiagnosticReport(org.hl7.fhir.r4.model.DiagnosticReport) BundleEntryComponent(org.hl7.fhir.r4.model.Bundle.BundleEntryComponent) Observation(org.hl7.fhir.r4.model.Observation) Encounter(org.hl7.fhir.r4.model.Encounter) MedicationStatement(org.hl7.fhir.r4.model.MedicationStatement)

Aggregations

ArrayList (java.util.ArrayList)11 MedicationStatement (org.hl7.fhir.r4.model.MedicationStatement)9 Test (org.junit.jupiter.api.Test)9 Coding (org.hl7.fhir.r4.model.Coding)8 Reference (org.hl7.fhir.dstu3.model.Reference)6 IdType (org.hl7.fhir.dstu3.model.IdType)5 Date (java.util.Date)4 RCMRMT030101UK04Component2 (org.hl7.v3.RCMRMT030101UK04Component2)4 RCMRMT030101UK04EhrExtract (org.hl7.v3.RCMRMT030101UK04EhrExtract)4 DateTimeType (org.hl7.fhir.dstu3.model.DateTimeType)3 Extension (org.hl7.fhir.dstu3.model.Extension)3 Bundle (org.hl7.fhir.r4.model.Bundle)3 UnprocessableEntityException (ca.uhn.fhir.rest.server.exceptions.UnprocessableEntityException)2 FileOutputStream (java.io.FileOutputStream)2 List (java.util.List)2 Complex (org.hl7.fhir.dstu2016may.formats.RdfGenerator.Complex)2 MedicationRequest (org.hl7.fhir.dstu3.model.MedicationRequest)2 BundleEntryComponent (org.hl7.fhir.r4.model.Bundle.BundleEntryComponent)2 CodeableConcept (org.hl7.fhir.r4.model.CodeableConcept)2 Condition (org.hl7.fhir.r4.model.Condition)2