From 2b0dbf72247ec42902174672cb83e233b7d9f254 Mon Sep 17 00:00:00 2001 From: Lloyd McKenzie Date: Fri, 6 Sep 2019 21:26:26 -0600 Subject: [PATCH] Add pattern support to 2016may --- .../java/org/hl7/fhir/dstu3/conformance/ProfileUtilities.java | 3 +++ .../java/org/hl7/fhir/r5/conformance/ProfileUtilities.java | 1 + 2 files changed, 4 insertions(+) diff --git a/org.hl7.fhir.dstu3/src/main/java/org/hl7/fhir/dstu3/conformance/ProfileUtilities.java b/org.hl7.fhir.dstu3/src/main/java/org/hl7/fhir/dstu3/conformance/ProfileUtilities.java index dc0cbfe18..a710f21ef 100644 --- a/org.hl7.fhir.dstu3/src/main/java/org/hl7/fhir/dstu3/conformance/ProfileUtilities.java +++ b/org.hl7.fhir.dstu3/src/main/java/org/hl7/fhir/dstu3/conformance/ProfileUtilities.java @@ -3640,6 +3640,8 @@ public class ProfileUtilities extends TranslatingUtilities { public static ElementDefinitionSlicingDiscriminatorComponent interpretR2Discriminator(String discriminator) { + if (discriminator.endsWith("@pattern")) + return makeDiscriminator(DiscriminatorType.PATTERN, discriminator.length() == 8 ? "" : discriminator.substring(0,discriminator.length()-9)); if (discriminator.endsWith("@profile")) return makeDiscriminator(DiscriminatorType.PROFILE, discriminator.length() == 8 ? "" : discriminator.substring(discriminator.length()-9)); if (discriminator.endsWith("@type")) @@ -3656,6 +3658,7 @@ public class ProfileUtilities extends TranslatingUtilities { public static String buildR2Discriminator(ElementDefinitionSlicingDiscriminatorComponent t) throws FHIRException { switch (t.getType()) { case PROFILE: return t.getPath()+"/@profile"; + case PATTERN: return t.getPath()+"/@pattern"; case TYPE: return t.getPath()+"/@type"; case VALUE: return t.getPath(); case EXISTS: return t.getPath(); // determination of value vs. exists is based on whether there's only 2 slices - one with minOccurs=1 and other with maxOccur=0 diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/ProfileUtilities.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/ProfileUtilities.java index a3ec7a33b..7fc0699dc 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/ProfileUtilities.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/ProfileUtilities.java @@ -4675,6 +4675,7 @@ public class ProfileUtilities extends TranslatingUtilities { public static String buildR2Discriminator(ElementDefinitionSlicingDiscriminatorComponent t) throws FHIRException { switch (t.getType()) { case PROFILE: return t.getPath()+"/@profile"; + case PATTERN: return t.getPath()+"/@pattern"; case TYPE: return t.getPath()+"/@type"; case VALUE: return t.getPath(); case EXISTS: return t.getPath(); // determination of value vs. exists is based on whether there's only 2 slices - one with minOccurs=1 and other with maxOccur=0