Search in sources :

Example 6 with DvTime

use of com.nedap.archie.rm.datavalues.quantity.datetime.DvTime in project openEHR_SDK by ehrbase.

the class CompareCanonicalDvDateTime method isExpectedEqualToCanonicalUsing.

public Object isExpectedEqualToCanonicalUsing(DvDateTime referenceDateTime) {
    // check each date/time part separately
    Format formatter = DateTimeFormatter.ISO_LOCAL_DATE.toFormat();
    DvDate actualDvDate = new DvDate(formatter.format(dvDateTime.getValue()));
    DvDate expectedDvDate = new DvDate(formatter.format(referenceDateTime.getValue()));
    formatter = DateTimeFormatter.ISO_LOCAL_TIME.toFormat();
    DvTime actualDvTime = new DvTime(formatter.format(dvDateTime.getValue()));
    DvTime expectedDvTime = new DvTime(formatter.format(referenceDateTime.getValue()));
    ZoneOffset actualZoneOffset = ZoneOffset.from(dvDateTime.getValue());
    ZoneOffset expectedZoneOffset = ZoneOffset.from(referenceDateTime.getValue());
    // perform comparison of parts
    DatePartComparator.compare(actualDvDate, expectedDvDate);
    if (!compareDateOnly)
        TimePartComparator.compare(actualDvTime, expectedDvTime);
    ZoneOffsetPartComparator.compare(actualZoneOffset, expectedZoneOffset);
    return null;
}
Also used : Format(java.text.Format) DvDate(com.nedap.archie.rm.datavalues.quantity.datetime.DvDate) DvTime(com.nedap.archie.rm.datavalues.quantity.datetime.DvTime) ZoneOffset(java.time.ZoneOffset)

Example 7 with DvTime

use of com.nedap.archie.rm.datavalues.quantity.datetime.DvTime in project openEHR_SDK by ehrbase.

the class StatusesTestOverwrite method time.

@Override
@Test
public void time() throws Exception {
    String template = this.getFileContent("/res/test_statuses.opt");
    Map<String, Object> flatComposition = Map.of("ctx/language", "sl", "ctx/territory", "SI", "ctx/composer_name", "George Orwell", "test_statuses/test_statuses:0/time", "13:20", "test_statuses/test_statuses:0/time|normal_status", "L", "test_statuses/test_statuses:0/time|magnitude_status", ">=", "test_statuses/test_statuses:0/time/_accuracy", "P1Y");
    RMDataFormat flatJson = getFlatJson(template, FlatFormat.SIM_SDT);
    Composition composition = flatJson.unmarshal(OBJECT_MAPPER.writeValueAsString(flatComposition));
    DvTime rmObject = (DvTime) composition.itemAtPath("/content[openEHR-EHR-OBSERVATION.test_statuses.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0012]/value");
    assertThat(rmObject.getNormalStatus()).isNotNull();
    assertThat(rmObject.getNormalStatus().getTerminologyId().getValue()).isEqualTo("openehr_normal_statuses");
    assertThat(rmObject.getNormalStatus().getCodeString()).isEqualTo("L");
    assertThat(rmObject.getMagnitudeStatus()).isEqualTo(">=");
    assertThat(rmObject.getAccuracy()).isNotNull().extracting(DvDuration::getValue).extracting(Object::toString).isEqualTo("P1Y");
    Map<String, Object> value = OBJECT_MAPPER.readValue(flatJson.marshal(composition), Map.class);
    assertThat(value).containsEntry("test_statuses/test_statuses:0/time|normal_status", "L").containsEntry("test_statuses/test_statuses:0/time|magnitude_status", ">=").containsEntry("test_statuses/test_statuses:0/time/_accuracy", "P1Y");
}
Also used : Composition(com.nedap.archie.rm.composition.Composition) RMDataFormat(org.ehrbase.serialisation.RMDataFormat) DvDuration(com.nedap.archie.rm.datavalues.quantity.datetime.DvDuration) DvTime(com.nedap.archie.rm.datavalues.quantity.datetime.DvTime) Test(org.junit.Test) StatusesTest(care.better.platform.web.template.StatusesTest)

Example 8 with DvTime

use of com.nedap.archie.rm.datavalues.quantity.datetime.DvTime in project openEHR_SDK by ehrbase.

the class StandardPartialTimeTest method testPartial1.

@Test
public void testPartial1() {
    DvTime dvTime = new DvTime("10:10+02:00");
    assertTrue(new StandardPartialTime(dvTime).isNonCompactIS8601Representation());
    assertTrue(new StandardPartialTime(dvTime).ishhmm());
    assertFalse(new StandardPartialTime(dvTime).ishhmmssfff());
}
Also used : DvTime(com.nedap.archie.rm.datavalues.quantity.datetime.DvTime) Test(org.junit.Test)

Example 9 with DvTime

use of com.nedap.archie.rm.datavalues.quantity.datetime.DvTime in project openEHR_SDK by ehrbase.

the class TemporalEncodingTest method testChronoFieldSupportTimeHHMM.

public void testChronoFieldSupportTimeHHMM() {
    DvTime dvTime = new DvTime("10:10");
    DvTimeAttributes timeAttributes = DvTimeAttributes.instanceFromValue(dvTime);
    assertTrue(timeAttributes.isRmDvTime());
    assertFalse(timeAttributes.isTimeHH());
    assertTrue(timeAttributes.isTimeHHMM());
    assertFalse(timeAttributes.isTimeHHMMSS());
    assertFalse(timeAttributes.isTimeHHMMSSmmm());
    assertEquals("10:10", timeAttributes.getValueAsProvided().toString());
    assertEquals(Integer.valueOf(TemporalAttributes.DV_TIME | TemporalAttributes.HOUR | TemporalAttributes.MINUTE_OF_HOUR), timeAttributes.getSupportedChronoFields());
}
Also used : DvTimeAttributes(org.ehrbase.serialisation.attributes.datavalues.datetime.time.DvTimeAttributes) DvTime(com.nedap.archie.rm.datavalues.quantity.datetime.DvTime)

Example 10 with DvTime

use of com.nedap.archie.rm.datavalues.quantity.datetime.DvTime in project openEHR_SDK by ehrbase.

the class DvTimeValidatorTest method testValidate_Pattern.

@Test
void testValidate_Pattern() throws Exception {
    var node = parseNode("/webtemplate_nodes/dv_time_pattern.json");
    var result = validator.validate(new DvTime(LocalTime.of(11, 30)), node);
    assertTrue(result.isEmpty());
}
Also used : DvTime(com.nedap.archie.rm.datavalues.quantity.datetime.DvTime) Test(org.junit.jupiter.api.Test)

Aggregations

DvTime (com.nedap.archie.rm.datavalues.quantity.datetime.DvTime)11 DvTimeAttributes (org.ehrbase.serialisation.attributes.datavalues.datetime.time.DvTimeAttributes)3 Test (org.junit.Test)3 Test (org.junit.jupiter.api.Test)3 Format (java.text.Format)2 ZoneOffset (java.time.ZoneOffset)2 StatusesTest (care.better.platform.web.template.StatusesTest)1 Composition (com.nedap.archie.rm.composition.Composition)1 DvDate (com.nedap.archie.rm.datavalues.quantity.datetime.DvDate)1 DvDuration (com.nedap.archie.rm.datavalues.quantity.datetime.DvDuration)1 OffsetDateTime (java.time.OffsetDateTime)1 RMDataFormat (org.ehrbase.serialisation.RMDataFormat)1