Search in sources :

Example 1 with BefundObservationContainment

use of org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.BefundObservationContainment in project openEHR_SDK by ehrbase.

the class EntityQueryTest method buildAqlWithNativePath.

@Test
public void buildAqlWithNativePath() {
    BefundObservationContainment befundObservationContainment = BefundObservationContainment.getInstance();
    ProVirusClusterContainment proVirusClusterContainment = ProVirusClusterContainment.getInstance();
    ProbeClusterContainment probeClusterContainment = ProbeClusterContainment.getInstance();
    Containment compositionContainment = new Containment("COMPOSITION");
    ContainmentExpression containment = compositionContainment.contains(befundObservationContainment).contains(proVirusClusterContainment.and(probeClusterContainment));
    EntityQuery<Record3<String, TemporalAccessor, UUID>> entityQuery = Query.buildEntityQuery(containment, proVirusClusterContainment.VIRUS_VALUE, probeClusterContainment.ZEITPUNKT_DER_PROBENENTNAHME_VALUE, new NativeSelectAqlField<>(compositionContainment, "/uid/value", "uid", UUID.class));
    entityQuery.where(Condition.equal(new NativeSelectAqlField<>(compositionContainment, "/name/value", String.class), "Mikrobiologischer Befund"));
    assertThat(entityQuery.buildAql()).isEqualTo("Select c0/items[at0024]/value/value as virusValue, c1/items[at0015]/value/value as zeitpunktDerProbenentnahmeValue, c2/uid/value as uid " + "from EHR e " + "contains COMPOSITION c2 " + "contains OBSERVATION o3[openEHR-EHR-OBSERVATION.laboratory_test_result.v1] " + "contains (CLUSTER c0[openEHR-EHR-CLUSTER.laboratory_test_analyte.v1] and CLUSTER c1[openEHR-EHR-CLUSTER.specimen.v1]) " + "where c2/name/value = 'Mikrobiologischer Befund'");
}
Also used : ProbeClusterContainment(org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.ProbeClusterContainment) NativeSelectAqlField(org.ehrbase.client.aql.field.NativeSelectAqlField) ContainmentExpression(org.ehrbase.client.aql.containment.ContainmentExpression) UUID(java.util.UUID) Record3(org.ehrbase.client.aql.record.Record3) BefundObservationContainment(org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.BefundObservationContainment) ProVirusClusterContainment(org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.ProVirusClusterContainment) EhrbaseBloodPressureSimpleDeV0CompositionContainment(org.ehrbase.client.classgenerator.examples.ehrbasebloodpressuresimpledev0composition.EhrbaseBloodPressureSimpleDeV0CompositionContainment) ProVirusClusterContainment(org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.ProVirusClusterContainment) ProbeClusterContainment(org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.ProbeClusterContainment) Containment(org.ehrbase.client.aql.containment.Containment) BefundObservationContainment(org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.BefundObservationContainment) BloodPressureTrainingSampleObservationContainment(org.ehrbase.client.classgenerator.examples.ehrbasebloodpressuresimpledev0composition.definition.BloodPressureTrainingSampleObservationContainment) Test(org.junit.Test)

Example 2 with BefundObservationContainment

use of org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.BefundObservationContainment in project openEHR_SDK by ehrbase.

the class CoronaTestIT method testNUMResearchCase_8.

/**
 * see https://wiki.vitagroup.ag/display/NUM/Research+Repository
 *
 * Containment test UC 8:
 *
 * contains COMPOSITION c
 * contains OBSERVATION v[openEHR-EHR-OBSERVATION.laboratory_test_result.v1]
 * contains (
 * CLUSTER h[openEHR-EHR-CLUSTER.laboratory_test_panel.v0] and
 * CLUSTER x[openEHR-EHR-CLUSTER.specimen.v1] and
 * CLUSTER q[openEHR-EHR-CLUSTER.laboratory_test_analyte.v1])
 */
@Test
public void testNUMResearchCase_8() {
    VirologischerBefundComposition virologischerBefundComposition = TestData.buildTestVirologischerBefundComposition();
    assertThat(virologischerBefundComposition.getBefund()).isNotNull();
    ehr = openEhrClient.ehrEndpoint().createEhr();
    openEhrClient.compositionEndpoint(ehr).mergeCompositionEntity(virologischerBefundComposition);
    // build AQL expression
    Containment compositionContainment = new Containment("COMPOSITION");
    BefundObservationContainment befundObservationContainment = BefundObservationContainment.getInstance();
    ProbeClusterContainment probeClusterContainment = ProbeClusterContainment.getInstance();
    KulturClusterContainment kulturClusterContainment = KulturClusterContainment.getInstance();
    ProVirusClusterContainment proVirusClusterContainment = ProVirusClusterContainment.getInstance();
    ContainmentExpression containmentExpression = compositionContainment.contains(befundObservationContainment.contains(kulturClusterContainment.and(probeClusterContainment.and(proVirusClusterContainment))));
    EntityQuery<Record2<String, Long>> entityQuery = Query.buildEntityQuery(containmentExpression, proVirusClusterContainment.VIRUS_VALUE, proVirusClusterContainment.ANALYSEERGEBNIS_REIHENFOLGE_MAGNITUDE);
    Parameter<UUID> ehrIdParameter = entityQuery.buildParameter();
    entityQuery.where(Condition.equal(EhrFields.EHR_ID(), ehrIdParameter).and(Condition.equal(new NativeSelectAqlField<>(compositionContainment, "/name/value", String.class), "Virologischer Befund")));
    List<Record2<String, Long>> actual = openEhrClient.aqlEndpoint().execute(entityQuery, ehrIdParameter.setValue(ehr));
    // NB. At the moment, we cannot specify DISTINCT with SDK
    assertThat(actual).extracting(Record2::value1, Record2::value2).containsExactlyInAnyOrder(new Tuple("SARS-Cov-2", 32L), new Tuple("SARS-Cov-2", 34L), new Tuple("SARS-Cov-2", 32L), new Tuple("SARS-Cov-2", 34L));
}
Also used : ContainmentExpression(org.ehrbase.client.aql.containment.ContainmentExpression) VirologischerBefundComposition(org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.VirologischerBefundComposition) ProVirusClusterContainment(org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.ProVirusClusterContainment) ProbeClusterContainment(org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.ProbeClusterContainment) KulturClusterContainment(org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.KulturClusterContainment) UUID(java.util.UUID) Record2(org.ehrbase.client.aql.record.Record2) Tuple(org.assertj.core.groups.Tuple) FieberOderErhohteKorpertemperaturObservationContainment(org.ehrbase.client.classgenerator.examples.coronaanamnesecomposition.definition.FieberOderErhohteKorpertemperaturObservationContainment) Containment(org.ehrbase.client.aql.containment.Containment) BefundObservationContainment(org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.BefundObservationContainment) VirologischerBefundCompositionContainment(org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.VirologischerBefundCompositionContainment) ReisefallObservationContainment(org.ehrbase.client.classgenerator.examples.coronaanamnesecomposition.definition.ReisefallObservationContainment) KulturClusterContainment(org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.KulturClusterContainment) ProbeClusterContainment(org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.ProbeClusterContainment) RisikogebietSectionContainment(org.ehrbase.client.classgenerator.examples.coronaanamnesecomposition.definition.RisikogebietSectionContainment) SymptomeSectionContainment(org.ehrbase.client.classgenerator.examples.coronaanamnesecomposition.definition.SymptomeSectionContainment) AufnahmedatenAdminEntryContainment(org.ehrbase.client.classgenerator.examples.stationarerversorgungsfallcomposition.definition.AufnahmedatenAdminEntryContainment) EntlassungsdatenAdminEntryContainment(org.ehrbase.client.classgenerator.examples.stationarerversorgungsfallcomposition.definition.EntlassungsdatenAdminEntryContainment) HustenObservationContainment(org.ehrbase.client.classgenerator.examples.coronaanamnesecomposition.definition.HustenObservationContainment) PatientenaufenthaltCompositionContainment(org.ehrbase.client.classgenerator.examples.patientenaufenthaltcomposition.PatientenaufenthaltCompositionContainment) VersorgungsortAdminEntryContainment(org.ehrbase.client.classgenerator.examples.patientenaufenthaltcomposition.definition.VersorgungsortAdminEntryContainment) StandortClusterContainment(org.ehrbase.client.classgenerator.examples.patientenaufenthaltcomposition.definition.StandortClusterContainment) CoronaAnamneseCompositionContainment(org.ehrbase.client.classgenerator.examples.coronaanamnesecomposition.CoronaAnamneseCompositionContainment) ProVirusClusterContainment(org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.ProVirusClusterContainment) HeiserkeitObservationContainment(org.ehrbase.client.classgenerator.examples.coronaanamnesecomposition.definition.HeiserkeitObservationContainment) StationarerVersorgungsfallCompositionContainment(org.ehrbase.client.classgenerator.examples.stationarerversorgungsfallcomposition.StationarerVersorgungsfallCompositionContainment) AbteilungsfallClusterContainment(org.ehrbase.client.classgenerator.examples.patientenaufenthaltcomposition.definition.AbteilungsfallClusterContainment) BefundObservationContainment(org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.BefundObservationContainment) Test(org.junit.Test)

Aggregations

UUID (java.util.UUID)2 Containment (org.ehrbase.client.aql.containment.Containment)2 ContainmentExpression (org.ehrbase.client.aql.containment.ContainmentExpression)2 BefundObservationContainment (org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.BefundObservationContainment)2 ProVirusClusterContainment (org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.ProVirusClusterContainment)2 ProbeClusterContainment (org.ehrbase.client.classgenerator.examples.virologischerbefundcomposition.definition.ProbeClusterContainment)2 Test (org.junit.Test)2 Tuple (org.assertj.core.groups.Tuple)1 NativeSelectAqlField (org.ehrbase.client.aql.field.NativeSelectAqlField)1 Record2 (org.ehrbase.client.aql.record.Record2)1 Record3 (org.ehrbase.client.aql.record.Record3)1 CoronaAnamneseCompositionContainment (org.ehrbase.client.classgenerator.examples.coronaanamnesecomposition.CoronaAnamneseCompositionContainment)1 FieberOderErhohteKorpertemperaturObservationContainment (org.ehrbase.client.classgenerator.examples.coronaanamnesecomposition.definition.FieberOderErhohteKorpertemperaturObservationContainment)1 HeiserkeitObservationContainment (org.ehrbase.client.classgenerator.examples.coronaanamnesecomposition.definition.HeiserkeitObservationContainment)1 HustenObservationContainment (org.ehrbase.client.classgenerator.examples.coronaanamnesecomposition.definition.HustenObservationContainment)1 ReisefallObservationContainment (org.ehrbase.client.classgenerator.examples.coronaanamnesecomposition.definition.ReisefallObservationContainment)1 RisikogebietSectionContainment (org.ehrbase.client.classgenerator.examples.coronaanamnesecomposition.definition.RisikogebietSectionContainment)1 SymptomeSectionContainment (org.ehrbase.client.classgenerator.examples.coronaanamnesecomposition.definition.SymptomeSectionContainment)1 EhrbaseBloodPressureSimpleDeV0CompositionContainment (org.ehrbase.client.classgenerator.examples.ehrbasebloodpressuresimpledev0composition.EhrbaseBloodPressureSimpleDeV0CompositionContainment)1 BloodPressureTrainingSampleObservationContainment (org.ehrbase.client.classgenerator.examples.ehrbasebloodpressuresimpledev0composition.definition.BloodPressureTrainingSampleObservationContainment)1