From 85980c69462e85a841b1cb2c1e0a69d430e9a32b Mon Sep 17 00:00:00 2001 From: "taha.attari@smilecdr.com" Date: Tue, 2 Jan 2024 14:23:31 -0500 Subject: [PATCH 1/4] [APHL-784] update test --- .../org/opencds/cqf/ruler/cr/r4/RepositoryServiceTest.java | 2 ++ .../resources/ersd-active-transaction-bundle-example.json | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/plugin/cr/src/test/java/org/opencds/cqf/ruler/cr/r4/RepositoryServiceTest.java b/plugin/cr/src/test/java/org/opencds/cqf/ruler/cr/r4/RepositoryServiceTest.java index fc124f182..caae77ca7 100644 --- a/plugin/cr/src/test/java/org/opencds/cqf/ruler/cr/r4/RepositoryServiceTest.java +++ b/plugin/cr/src/test/java/org/opencds/cqf/ruler/cr/r4/RepositoryServiceTest.java @@ -103,6 +103,7 @@ void draftOperation_test() { assertTrue(baseLib.hasExtension(KnowledgeArtifactProcessor.releaseDescriptionUrl)); assertTrue(baseLib.hasExtension(KnowledgeArtifactProcessor.releaseLabelUrl)); assertTrue(baseLib.hasApprovalDate()); + assertTrue(baseLib.hasEffectivePeriod()); String version = "1.0.1.23"; String draftedVersion = version + "-draft"; Parameters params = parameters(part("version", version) ); @@ -123,6 +124,7 @@ void draftOperation_test() { assertFalse(lib.hasApprovalDate()); assertFalse(lib.hasExtension(KnowledgeArtifactProcessor.releaseDescriptionUrl)); assertFalse(lib.hasExtension(KnowledgeArtifactProcessor.releaseLabelUrl)); + assertFalse(lib.hasEffectivePeriod()); List relatedArtifacts = lib.getRelatedArtifact(); assertTrue(!relatedArtifacts.isEmpty()); assertTrue(Canonicals.getVersion(relatedArtifacts.get(0).getResource()).equals(draftedVersion)); diff --git a/plugin/cr/src/test/resources/ersd-active-transaction-bundle-example.json b/plugin/cr/src/test/resources/ersd-active-transaction-bundle-example.json index 15362d8e5..4ee47f164 100644 --- a/plugin/cr/src/test/resources/ersd-active-transaction-bundle-example.json +++ b/plugin/cr/src/test/resources/ersd-active-transaction-bundle-example.json @@ -27,6 +27,10 @@ "url": "http://hl7.org/fhir/us/ecr/Library/SpecificationLibrary", "version": "1.0.0.23", "approvalDate": "1990-01-01", + "effectivePeriod": { + "start": "2023-01-01", + "end": "2023-12-01" + }, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/artifact-releaseLabel", From a96dd73417456a4b637f378092ee8a97d5123f6b Mon Sep 17 00:00:00 2001 From: "taha.attari@smilecdr.com" Date: Tue, 2 Jan 2024 14:25:40 -0500 Subject: [PATCH 2/4] [APHL-784] remove effective period as part of draft operation --- .../org/opencds/cqf/ruler/cr/KnowledgeArtifactProcessor.java | 1 + 1 file changed, 1 insertion(+) diff --git a/plugin/cr/src/main/java/org/opencds/cqf/ruler/cr/KnowledgeArtifactProcessor.java b/plugin/cr/src/main/java/org/opencds/cqf/ruler/cr/KnowledgeArtifactProcessor.java index 27a1d9262..1b61b2949 100644 --- a/plugin/cr/src/main/java/org/opencds/cqf/ruler/cr/KnowledgeArtifactProcessor.java +++ b/plugin/cr/src/main/java/org/opencds/cqf/ruler/cr/KnowledgeArtifactProcessor.java @@ -320,6 +320,7 @@ public Bundle createDraftBundle(IdType baseArtifactId, FhirDal fhirDal, String v .collect(Collectors.toList()); baseArtifact.setExtension(removeReleaseLabelAndDescription); baseArtifactAdapter.setApprovalDate(null); + baseArtifactAdapter.setEffectivePeriod(null); String draftVersion = version + "-draft"; String draftVersionUrl = Canonicals.getUrl(baseArtifact.getUrl()) + "|" + draftVersion; From 703e9fd5fa10607f7dec2c4a22a889343444dc00 Mon Sep 17 00:00:00 2001 From: "taha.attari@smilecdr.com" Date: Tue, 2 Jan 2024 15:16:15 -0500 Subject: [PATCH 3/4] [APHL-784] update test to account for all owned resources --- .../ruler/cr/KnowledgeArtifactProcessor.java | 2 +- .../ruler/cr/r4/RepositoryServiceTest.java | 71 +++++++++++++------ 2 files changed, 52 insertions(+), 21 deletions(-) diff --git a/plugin/cr/src/main/java/org/opencds/cqf/ruler/cr/KnowledgeArtifactProcessor.java b/plugin/cr/src/main/java/org/opencds/cqf/ruler/cr/KnowledgeArtifactProcessor.java index 1b61b2949..ec7de7df2 100644 --- a/plugin/cr/src/main/java/org/opencds/cqf/ruler/cr/KnowledgeArtifactProcessor.java +++ b/plugin/cr/src/main/java/org/opencds/cqf/ruler/cr/KnowledgeArtifactProcessor.java @@ -320,7 +320,6 @@ public Bundle createDraftBundle(IdType baseArtifactId, FhirDal fhirDal, String v .collect(Collectors.toList()); baseArtifact.setExtension(removeReleaseLabelAndDescription); baseArtifactAdapter.setApprovalDate(null); - baseArtifactAdapter.setEffectivePeriod(null); String draftVersion = version + "-draft"; String draftVersionUrl = Canonicals.getUrl(baseArtifact.getUrl()) + "|" + draftVersion; @@ -414,6 +413,7 @@ private List createDraftsOfArtifactAndRelated(MetadataResource if (newResource == null) { KnowledgeArtifactAdapter sourceResourceAdapter = new KnowledgeArtifactAdapter<>(resourceToDraft); + sourceResourceAdapter.setEffectivePeriod(null); newResource = sourceResourceAdapter.copy(); newResource.setStatus(Enumerations.PublicationStatus.DRAFT); newResource.setVersion(draftVersion); diff --git a/plugin/cr/src/test/java/org/opencds/cqf/ruler/cr/r4/RepositoryServiceTest.java b/plugin/cr/src/test/java/org/opencds/cqf/ruler/cr/r4/RepositoryServiceTest.java index caae77ca7..d1f0197ca 100644 --- a/plugin/cr/src/test/java/org/opencds/cqf/ruler/cr/r4/RepositoryServiceTest.java +++ b/plugin/cr/src/test/java/org/opencds/cqf/ruler/cr/r4/RepositoryServiceTest.java @@ -103,7 +103,6 @@ void draftOperation_test() { assertTrue(baseLib.hasExtension(KnowledgeArtifactProcessor.releaseDescriptionUrl)); assertTrue(baseLib.hasExtension(KnowledgeArtifactProcessor.releaseLabelUrl)); assertTrue(baseLib.hasApprovalDate()); - assertTrue(baseLib.hasEffectivePeriod()); String version = "1.0.1.23"; String draftedVersion = version + "-draft"; Parameters params = parameters(part("version", version) ); @@ -124,13 +123,42 @@ void draftOperation_test() { assertFalse(lib.hasApprovalDate()); assertFalse(lib.hasExtension(KnowledgeArtifactProcessor.releaseDescriptionUrl)); assertFalse(lib.hasExtension(KnowledgeArtifactProcessor.releaseLabelUrl)); - assertFalse(lib.hasEffectivePeriod()); List relatedArtifacts = lib.getRelatedArtifact(); assertTrue(!relatedArtifacts.isEmpty()); assertTrue(Canonicals.getVersion(relatedArtifacts.get(0).getResource()).equals(draftedVersion)); assertTrue(Canonicals.getVersion(relatedArtifacts.get(1).getResource()).equals(draftedVersion)); } @Test + void draft_operation_no_effectivePeriod_test() { + loadTransaction("ersd-active-transaction-bundle-example.json"); + Library baseLib = getClient() + .read() + .resource(Library.class) + .withId(specificationLibReference.split("/")[1]) + .execute(); + assertTrue(baseLib.hasEffectivePeriod()); + PlanDefinition planDef = getClient() + .read() + .resource(PlanDefinition.class) + .withId("plandefinition-ersd-instance-example") + .execute(); + assertTrue(planDef.hasEffectivePeriod()); + String version = "1.0.1.23"; + Parameters params = parameters(part("version", version) ); + Bundle returnedBundle = getClient().operation() + .onInstance(specificationLibReference) + .named("$draft") + .withParameters(params) + .returnResourceType(Bundle.class) + .execute(); + getMetadataResourcesFromBundle(returnedBundle) + .stream() + .forEach(resource -> { + KnowledgeArtifactAdapter adapter = new KnowledgeArtifactAdapter(resource); + assertFalse(adapter.getEffectivePeriod().hasStart() || adapter.getEffectivePeriod().hasEnd()); + }); + } + @Test void draftOperation_version_conflict_test() { loadTransaction("ersd-active-transaction-bundle-example.json"); loadResource("minimal-draft-to-test-version-conflict.json"); @@ -443,7 +471,26 @@ void releaseResource_propagate_effective_period() { .execute(); assertNotNull(returnResource); - returnResource.getEntry() + getMetadataResourcesFromBundle(returnResource) + .stream() + .forEach(resource -> { + assertNotNull(resource); + if(!resource.getClass().getSimpleName().equals("ValueSet")){ + KnowledgeArtifactAdapter adapter = new KnowledgeArtifactAdapter<>(resource); + assertTrue(adapter.getEffectivePeriod().hasStart()); + Date start = adapter.getEffectivePeriod().getStart(); + Calendar calendar = new GregorianCalendar(); + calendar.setTime(start); + int year = calendar.get(Calendar.YEAR); + int month = calendar.get(Calendar.MONTH) + 1; + int day = calendar.get(Calendar.DAY_OF_MONTH); + String startString = year + "-" + month + "-" + day; + assertTrue(startString.equals(effectivePeriodToPropagate)); + } + }); + } + List getMetadataResourcesFromBundle(Bundle bundle) { + return bundle.getEntry() .stream() .map(entry -> entry.getResponse().getLocation()) .map(location -> { @@ -461,24 +508,8 @@ void releaseResource_propagate_effective_period() { default: return null; } - }) - .forEach(resource -> { - assertNotNull(resource); - if(!resource.getClass().getSimpleName().equals("ValueSet")){ - KnowledgeArtifactAdapter adapter = new KnowledgeArtifactAdapter<>(resource); - assertTrue(adapter.getEffectivePeriod().hasStart()); - Date start = adapter.getEffectivePeriod().getStart(); - Calendar calendar = new GregorianCalendar(); - calendar.setTime(start); - int year = calendar.get(Calendar.YEAR); - int month = calendar.get(Calendar.MONTH) + 1; - int day = calendar.get(Calendar.DAY_OF_MONTH); - String startString = year + "-" + month + "-" + day; - assertTrue(startString.equals(effectivePeriodToPropagate)); - } - }); + }).collect(Collectors.toList()); } - @Test void releaseResource_latestFromTx_NotSupported_test() { loadTransaction("ersd-small-approved-draft-bundle.json"); From 9d443a1503e3ebecf639a9ceead7a9599d323157 Mon Sep 17 00:00:00 2001 From: "taha.attari@smilecdr.com" Date: Tue, 2 Jan 2024 16:10:00 -0500 Subject: [PATCH 4/4] update version --- .../org/opencds/cqf/ruler/cr/r4/RepositoryServiceTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin/cr/src/test/java/org/opencds/cqf/ruler/cr/r4/RepositoryServiceTest.java b/plugin/cr/src/test/java/org/opencds/cqf/ruler/cr/r4/RepositoryServiceTest.java index d1f0197ca..19d0b6027 100644 --- a/plugin/cr/src/test/java/org/opencds/cqf/ruler/cr/r4/RepositoryServiceTest.java +++ b/plugin/cr/src/test/java/org/opencds/cqf/ruler/cr/r4/RepositoryServiceTest.java @@ -129,7 +129,7 @@ void draftOperation_test() { assertTrue(Canonicals.getVersion(relatedArtifacts.get(1).getResource()).equals(draftedVersion)); } @Test - void draft_operation_no_effectivePeriod_test() { + void draftOperation_no_effectivePeriod_test() { loadTransaction("ersd-active-transaction-bundle-example.json"); Library baseLib = getClient() .read() @@ -143,7 +143,7 @@ void draft_operation_no_effectivePeriod_test() { .withId("plandefinition-ersd-instance-example") .execute(); assertTrue(planDef.hasEffectivePeriod()); - String version = "1.0.1.23"; + String version = "1.01.21.273"; Parameters params = parameters(part("version", version) ); Bundle returnedBundle = getClient().operation() .onInstance(specificationLibReference)