Skip to content

Commit

Permalink
Issue #1421 - update code validation to enforce new validation rules
Browse files Browse the repository at this point in the history
Signed-off-by: Mike Schroeder <mschroed@us.ibm.com>
  • Loading branch information
michaelwschroeder committed Sep 1, 2020
1 parent b4c82db commit 74affa6
Show file tree
Hide file tree
Showing 1,279 changed files with 85,419 additions and 558,494 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import com.ibm.fhir.model.resource.Task;
import com.ibm.fhir.model.resource.ValueSet;
import com.ibm.fhir.model.type.Age;
import com.ibm.fhir.model.type.Coding;
import com.ibm.fhir.model.type.DataRequirement;
import com.ibm.fhir.model.type.Duration;
import com.ibm.fhir.model.type.Element;
Expand Down Expand Up @@ -55,6 +56,12 @@ protected Builder<?> addData(Builder<?> builder, int choiceIndicator) throws Exc
}

private Builder<?> addData(Builder<?> builder, int choiceIndicator, String referenceTargetProfile) throws Exception {
if (builder instanceof Coding.Builder){
// we have a Coding type - treat as a primitive type (i.e. an edge node) due to validation rules
setDataAbsentReason((Coding.Builder) builder);
return builder;
}

Method[] methods = builder.getClass().getDeclaredMethods();

boolean empty = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
import com.ibm.fhir.model.resource.Resource;
import com.ibm.fhir.model.type.BackboneElement;
import com.ibm.fhir.model.type.Code;
import com.ibm.fhir.model.type.CodeableConcept;
import com.ibm.fhir.model.type.Coding;
import com.ibm.fhir.model.type.Element;
import com.ibm.fhir.model.type.Extension;
import com.ibm.fhir.model.type.Narrative;
Expand Down Expand Up @@ -237,6 +239,16 @@ protected Element.Builder setDataAbsentReason(Element.Builder builder) {
return builder.extension(e);
}

protected CodeableConcept.Builder setDataAbsentReasonCoding(CodeableConcept.Builder builder) {
Coding coding = Coding.builder()
.extension(Extension.builder()
.url("http://hl7.org/fhir/StructureDefinition/data-absent-reason")
.value(Code.of("unknown"))
.build())
.build();
return builder.coding(coding);
}

protected String titleCase(String name) {
return name.substring(0, 1).toUpperCase() + name.substring(1);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import com.ibm.fhir.model.resource.AllergyIntolerance;
import com.ibm.fhir.model.resource.Resource;
import com.ibm.fhir.model.type.Code;
import com.ibm.fhir.model.type.CodeableConcept;
import com.ibm.fhir.model.type.Coding;
import com.ibm.fhir.model.type.Element;
import com.ibm.fhir.model.type.Identifier;
Expand Down Expand Up @@ -45,6 +46,12 @@ private Builder<?> addData(Builder<?> builder, int choiceIndicator, String refer
tag((Resource.Builder) builder, "ibm/minimal");
}

if (builder instanceof CodeableConcept.Builder){
// we have a CodeableConcept type - add Coding with data-absent-reason extension due to validation rules
setDataAbsentReasonCoding((CodeableConcept.Builder) builder);
return builder;
}

boolean empty = true;

Method[] methods = builder.getClass().getDeclaredMethods();
Expand Down
Loading

0 comments on commit 74affa6

Please sign in to comment.