use of com.nedap.archie.rm.composition.Section in project openEHR_SDK by ehrbase.
the class DBEncodeTest method testDBEncodeDecodeInstruction.
@Test
public void testDBEncodeDecodeInstruction() throws IOException {
Composition composition = new CanonicalJson().unmarshal(IOUtils.toString(CompositionTestDataCanonicalJson.NESTED_EN_V1.getStream(), UTF_8), Composition.class);
CompositionSerializer compositionSerializer = new CompositionSerializer();
String encoded = compositionSerializer.dbEncode(composition);
Assert.assertTrue(encoded.contains(CompositionSerializer.TAG_EXPIRY_TIME));
String json = new LightRawJsonEncoder(encoded).encodeCompositionAsString();
Composition result = new CanonicalJson().unmarshal(json, Composition.class);
DvDateTime expiryTime = ((Instruction) ((Section) result.getContent().get(0)).getItems().get(0)).getExpiryTime();
Assert.assertNotNull(expiryTime);
Assert.assertEquals(OffsetDateTime.parse("2021-05-18T13:13:09.780+03:00"), expiryTime.getValue());
}
use of com.nedap.archie.rm.composition.Section in project openEHR_SDK by ehrbase.
the class DBEncodeTest method testDBDecodeIssue350.
@Test
public void testDBDecodeIssue350() throws Exception {
String db_encoded = new String(Files.readAllBytes(Paths.get("src/test/resources/sample_data/bug350_missing_data.json")));
assertNotNull(db_encoded);
// see if this can be interpreted by Archie
Composition object = new RawJson().unmarshal(db_encoded, Composition.class);
assertEquals(8, ((Section) object.itemsAtPath("/content[openEHR-EHR-SECTION.respect_headings.v0]").get(0)).getItems().size());
String interpreted = new CanonicalXML().marshal(object);
assertNotNull(interpreted);
}
use of com.nedap.archie.rm.composition.Section in project openEHR_SDK by ehrbase.
the class WorkflowIdTestOverwrite method workflowIdInCtx.
@Override
@Test
public void workflowIdInCtx() throws Exception {
String template = this.getFileContent("/res/Demo Vitals.opt");
Map<String, Object> flatComposition = ImmutableMap.<String, Object>builder().put("ctx/language", "sl").put("ctx/territory", "SI").put("ctx/composer_name", "Composer").put("ctx/id_scheme", "ispek").put("ctx/id_namespace", "ispek").put("ctx/end_time", "2016-01-01T12:30:30Z").put("ctx/work_flow_id|id", "wf_id").put("ctx/work_flow_id|namespace", "wf_ns").put("ctx/work_flow_id|id_scheme", "wf_scheme").put("ctx/work_flow_id|type", "wf_type").put("vitals/vitals/haemoglobin_a1c/any_event/test_status|terminology", "local").put("vitals/vitals/haemoglobin_a1c/any_event/test_status|code", "at0037").build();
RMDataFormat flatJson = getFlatJson(template, FlatFormat.SIM_SDT);
Composition composition = flatJson.unmarshal(OBJECT_MAPPER.writeValueAsString(flatComposition));
Entry contentItem = (Entry) ((Section) composition.getContent().get(0)).getItems().get(0);
ObjectRef<? extends ObjectId> workflowId = contentItem.getWorkflowId();
assertThat(workflowId).isNotNull();
assertThat(workflowId.getId()).hasSameClassAs(new GenericId()).extracting(ObjectId::getValue, i -> ((GenericId) i).getScheme()).containsExactly("wf_id", "wf_scheme");
assertThat(workflowId.getNamespace()).isEqualTo("wf_ns");
assertThat(workflowId.getType()).isEqualTo("wf_type");
Map<String, Object> map = OBJECT_MAPPER.readValue(flatJson.marshal(composition), Map.class);
assertThat(map).containsEntry("vitals/vitals/haemoglobin_a1c:0/_work_flow_id|id", "wf_id").containsEntry("vitals/vitals/haemoglobin_a1c:0/_work_flow_id|id_scheme", "wf_scheme").containsEntry("vitals/vitals/haemoglobin_a1c:0/_work_flow_id|type", "wf_type").containsEntry("vitals/vitals/haemoglobin_a1c:0/_work_flow_id|namespace", "wf_ns");
}
use of com.nedap.archie.rm.composition.Section in project openEHR_SDK by ehrbase.
the class WorkflowIdTestOverwrite method workflowIdDirect.
@Override
@Test
public void workflowIdDirect() throws Exception {
String template = this.getFileContent("/res/Demo Vitals.opt");
OffsetDateTime dateTime = ZonedDateTime.of(2015, 1, 1, 10, 31, 16, 0, ZoneId.systemDefault()).toOffsetDateTime();
Map<String, Object> flatComposition = ImmutableMap.<String, Object>builder().put("ctx/language", "sl").put("ctx/territory", "SI").put("ctx/composer_name", "Composer").put("ctx/id_scheme", "ispek").put("ctx/id_namespace", "ispek").put("ctx/end_time", "2016-01-01T12:30:30Z").put("vitals/vitals/haemoglobin_a1c/history_origin", DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(dateTime)).put("vitals/vitals/haemoglobin_a1c/any_event/test_status|terminology", "local").put("vitals/vitals/haemoglobin_a1c/any_event/test_status|code", "at0037").put("vitals/vitals/haemoglobin_a1c/_work_flow_id|id", "1").put("vitals/vitals/haemoglobin_a1c/_work_flow_id|id_scheme", "x").put("vitals/vitals/haemoglobin_a1c/_work_flow_id|namespace", "y").put("vitals/vitals/haemoglobin_a1c/_work_flow_id|type", "wf").build();
RMDataFormat flatJson = getFlatJson(template, FlatFormat.SIM_SDT);
Composition composition = flatJson.unmarshal(OBJECT_MAPPER.writeValueAsString(flatComposition));
Entry contentItem = (Entry) ((Section) composition.getContent().get(0)).getItems().get(0);
ObjectRef<? extends ObjectId> workflowId = contentItem.getWorkflowId();
assertThat(workflowId).isNotNull();
assertThat(workflowId.getId()).hasSameClassAs(new GenericId()).extracting(ObjectId::getValue, i -> ((GenericId) i).getScheme()).containsExactly("1", "x");
assertThat(workflowId.getNamespace()).isEqualTo("y");
assertThat(workflowId.getType()).isEqualTo("wf");
Map<String, Object> map = OBJECT_MAPPER.readValue(flatJson.marshal(composition), Map.class);
assertThat(map).containsEntry("vitals/vitals/haemoglobin_a1c:0/_work_flow_id|id", "1").containsEntry("vitals/vitals/haemoglobin_a1c:0/_work_flow_id|id_scheme", "x").containsEntry("vitals/vitals/haemoglobin_a1c:0/_work_flow_id|type", "wf").containsEntry("vitals/vitals/haemoglobin_a1c:0/_work_flow_id|namespace", "y");
}
use of com.nedap.archie.rm.composition.Section in project openEHR_SDK by ehrbase.
the class WorkflowIdTestOverwrite method workflowIdInCtxAndDirect.
@Override
@Test
public void workflowIdInCtxAndDirect() throws Exception {
String template = this.getFileContent("/res/Demo Vitals.opt");
Map<String, Object> flatComposition = ImmutableMap.<String, Object>builder().put("ctx/language", "sl").put("ctx/territory", "SI").put("ctx/composer_name", "Composer").put("ctx/id_scheme", "ispek").put("ctx/id_namespace", "ispek").put("ctx/end_time", "2016-01-01T12:30:30Z").put("ctx/work_flow_id|id", "wf_id").put("ctx/work_flow_id|namespace", "wf_ns").put("ctx/work_flow_id|id_scheme", "wf_scheme").put("ctx/work_flow_id|type", "wf_type").put("vitals/vitals/haemoglobin_a1c/any_event/test_status|terminology", "local").put("vitals/vitals/haemoglobin_a1c/any_event/test_status|code", "at0037").put("vitals/vitals/haemoglobin_a1c:1/any_event/test_status|terminology", "local").put("vitals/vitals/haemoglobin_a1c:1/any_event/test_status|code", "at0037").put("vitals/vitals/haemoglobin_a1c:1/_work_flow_id|id", "1").put("vitals/vitals/haemoglobin_a1c:1/_work_flow_id|id_scheme", "x").put("vitals/vitals/haemoglobin_a1c:1/_work_flow_id|namespace", "y").put("vitals/vitals/haemoglobin_a1c:1/_work_flow_id|type", "wf").build();
RMDataFormat flatJson = getFlatJson(template, FlatFormat.SIM_SDT);
Composition composition = flatJson.unmarshal(OBJECT_MAPPER.writeValueAsString(flatComposition));
Entry contentItem1 = (Entry) ((Section) composition.getContent().get(0)).getItems().get(0);
ObjectRef<? extends ObjectId> workflowId1 = contentItem1.getWorkflowId();
assertThat(workflowId1).isNotNull();
assertThat(workflowId1.getId()).hasSameClassAs(new GenericId()).extracting(ObjectId::getValue, i -> ((GenericId) i).getScheme()).containsExactly("wf_id", "wf_scheme");
assertThat(workflowId1.getNamespace()).isEqualTo("wf_ns");
assertThat(workflowId1.getType()).isEqualTo("wf_type");
Entry contentItem2 = (Entry) ((Section) composition.getContent().get(0)).getItems().get(1);
ObjectRef<? extends ObjectId> workflowId2 = contentItem2.getWorkflowId();
assertThat(workflowId2).isNotNull();
assertThat(workflowId2.getId()).hasSameClassAs(new GenericId()).extracting(ObjectId::getValue, i -> ((GenericId) i).getScheme()).containsExactly("1", "x");
assertThat(workflowId2.getNamespace()).isEqualTo("y");
assertThat(workflowId2.getType()).isEqualTo("wf");
Map<String, Object> map = OBJECT_MAPPER.readValue(flatJson.marshal(composition), Map.class);
assertThat(map).containsEntry("vitals/vitals/haemoglobin_a1c:0/_work_flow_id|id", "wf_id").containsEntry("vitals/vitals/haemoglobin_a1c:0/_work_flow_id|id_scheme", "wf_scheme").containsEntry("vitals/vitals/haemoglobin_a1c:0/_work_flow_id|type", "wf_type").containsEntry("vitals/vitals/haemoglobin_a1c:0/_work_flow_id|namespace", "wf_ns").containsEntry("vitals/vitals/haemoglobin_a1c:1/_work_flow_id|id", "1").containsEntry("vitals/vitals/haemoglobin_a1c:1/_work_flow_id|id_scheme", "x").containsEntry("vitals/vitals/haemoglobin_a1c:1/_work_flow_id|type", "wf").containsEntry("vitals/vitals/haemoglobin_a1c:1/_work_flow_id|namespace", "y");
}
Aggregations