Gg 202303 r5 fixes (#1148)

* update test package dependency

* Add back code missed when regenerating R5

* fix NPE

* update conversions for discovered issues for R5

---------

Co-authored-by: Grahame Grieve <grahameg@gmail.ccom>
This commit is contained in:
Grahame Grieve 2023-03-03 10:35:33 +11:00 committed by GitHub
parent a17ad1fa65
commit b18e541b5f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 311 additions and 15 deletions

View File

@ -2,6 +2,8 @@ package org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50;
import org.hl7.fhir.convertors.context.ConversionContext40_50;
import org.hl7.fhir.exceptions.FHIRException;
import org.hl7.fhir.r4.model.UrlType;
import org.hl7.fhir.r5.model.DataType;
public class Url40_50 {
public static org.hl7.fhir.r5.model.UrlType convertUrl(org.hl7.fhir.r4.model.UrlType src) throws FHIRException {
@ -15,4 +17,29 @@ public class Url40_50 {
ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
return tgt;
}
public static org.hl7.fhir.r5.model.UrlType convertUriToUrl(org.hl7.fhir.r4.model.UriType src) throws FHIRException {
org.hl7.fhir.r5.model.UrlType tgt = src.hasValue() ? new org.hl7.fhir.r5.model.UrlType(src.getValueAsString()) : new org.hl7.fhir.r5.model.UrlType();
ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
return tgt;
}
public static org.hl7.fhir.r4.model.UriType convertUrlToUri(org.hl7.fhir.r5.model.UrlType src) throws FHIRException {
org.hl7.fhir.r4.model.UriType tgt = src.hasValue() ? new org.hl7.fhir.r4.model.UriType(src.getValueAsString()) : new org.hl7.fhir.r4.model.UriType();
ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
return tgt;
}
public static org.hl7.fhir.r5.model.UriType convertUrlToUri(org.hl7.fhir.r4.model.UrlType src) throws FHIRException {
org.hl7.fhir.r5.model.UriType tgt = src.hasValue() ? new org.hl7.fhir.r5.model.UriType(src.getValueAsString()) : new org.hl7.fhir.r5.model.UriType();
ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
return tgt;
}
public static org.hl7.fhir.r4.model.UrlType convertUriToUrl(org.hl7.fhir.r5.model.UriType src) throws FHIRException {
org.hl7.fhir.r4.model.UrlType tgt = src.hasValue() ? new org.hl7.fhir.r4.model.UrlType(src.getValueAsString()) : new org.hl7.fhir.r4.model.UrlType();
ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
return tgt;
}
}

View File

@ -115,8 +115,9 @@ public class MessageHeader40_50 {
tgt.setNameElement(String40_50.convertString(src.getNameElement()));
if (src.hasTarget())
tgt.setTarget(Reference40_50.convertReference(src.getTarget()));
if (src.hasEndpoint())
tgt.setEndpoint(Uri40_50.convertUri(src.getEndpointElement()));
if (src.hasEndpoint()) {
tgt.setEndpoint(Url40_50.convertUrl(src.getEndpointElement()));
}
if (src.hasReceiver())
tgt.setReceiver(Reference40_50.convertReference(src.getReceiver()));
return tgt;
@ -131,8 +132,9 @@ public class MessageHeader40_50 {
tgt.setNameElement(String40_50.convertString(src.getNameElement()));
if (src.hasTarget())
tgt.setTarget(Reference40_50.convertReference(src.getTarget()));
if (src.hasEndpointUrlType())
if (src.hasEndpointUrlType()) {
tgt.setEndpointElement(Url40_50.convertUrl(src.getEndpointUrlType()));
}
if (src.hasReceiver())
tgt.setReceiver(Reference40_50.convertReference(src.getReceiver()));
return tgt;
@ -152,7 +154,7 @@ public class MessageHeader40_50 {
if (src.hasContact())
tgt.setContact(ContactPoint40_50.convertContactPoint(src.getContact()));
if (src.hasEndpoint())
tgt.setEndpoint(Uri40_50.convertUri(src.getEndpointElement()));
tgt.setEndpoint(Url40_50.convertUrl(src.getEndpointElement()));
return tgt;
}

View File

@ -67,8 +67,13 @@ public class Observation40_50 {
if (src.hasIssued())
tgt.setIssuedElement(Instant40_50.convertInstant(src.getIssuedElement()));
for (org.hl7.fhir.r4.model.Reference t : src.getPerformer()) tgt.addPerformer(Reference40_50.convertReference(t));
if (src.hasValue())
tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue()));
if (src.hasValue()) {
if (src.hasValueStringType()) {
tgt.setValue(String40_50.convertStringToMarkdown(src.getValueStringType()));
} else {
tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue()));
}
}
if (src.hasDataAbsentReason())
tgt.setDataAbsentReason(CodeableConcept40_50.convertCodeableConcept(src.getDataAbsentReason()));
for (org.hl7.fhir.r4.model.CodeableConcept t : src.getInterpretation())
@ -117,8 +122,13 @@ public class Observation40_50 {
if (src.hasIssued())
tgt.setIssuedElement(Instant40_50.convertInstant(src.getIssuedElement()));
for (org.hl7.fhir.r5.model.Reference t : src.getPerformer()) tgt.addPerformer(Reference40_50.convertReference(t));
if (src.hasValue())
tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue()));
if (src.hasValue()) {
if (src.hasValueMarkdownType()) {
tgt.setValue(String40_50.convertMarkdownToString(src.getValueMarkdownType()));
} else {
tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue()));
}
}
if (src.hasDataAbsentReason())
tgt.setDataAbsentReason(CodeableConcept40_50.convertCodeableConcept(src.getDataAbsentReason()));
for (org.hl7.fhir.r5.model.CodeableConcept t : src.getInterpretation())
@ -263,8 +273,13 @@ public class Observation40_50 {
ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
if (src.hasCode())
tgt.setCode(CodeableConcept40_50.convertCodeableConcept(src.getCode()));
if (src.hasValue())
tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue()));
if (src.hasValue()) {
if (src.hasValueStringType()) {
tgt.setValue(String40_50.convertStringToMarkdown(src.getValueStringType()));
} else {
tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue()));
}
}
if (src.hasDataAbsentReason())
tgt.setDataAbsentReason(CodeableConcept40_50.convertCodeableConcept(src.getDataAbsentReason()));
for (org.hl7.fhir.r4.model.CodeableConcept t : src.getInterpretation())
@ -281,8 +296,13 @@ public class Observation40_50 {
ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt);
if (src.hasCode())
tgt.setCode(CodeableConcept40_50.convertCodeableConcept(src.getCode()));
if (src.hasValue())
tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue()));
if (src.hasValue()) {
if (src.hasValueMarkdownType()) {
tgt.setValue(String40_50.convertMarkdownToString(src.getValueMarkdownType()));
} else {
tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue()));
}
}
if (src.hasDataAbsentReason())
tgt.setDataAbsentReason(CodeableConcept40_50.convertCodeableConcept(src.getDataAbsentReason()));
for (org.hl7.fhir.r5.model.CodeableConcept t : src.getInterpretation())

View File

@ -144,6 +144,16 @@ public class JavaEnumerationsGenerator extends JavaBaseGenerator {
write(" throw new FHIRException(\"Unknown "+name+" code '\"+codeString+\"'\");\r\n");
write(" }\r\n");
write(" public static boolean isValidCode(String codeString) {\r\n");
write(" if (codeString == null || \"\".equals(codeString))\r\n");
write(" return false;\r\n");
write(" return Utilities.existsInList(codeString");
for (ValueSetExpansionContainsComponent c : vs.getExpansion().getContains()) {
write(", \""+c.getCode()+"\"");
}
write(");\r\n");
write(" }\r\n");
write(" public String toCode() {\r\n");
write(" switch (this) {\r\n");
for (ValueSetExpansionContainsComponent c : vs.getExpansion().getContains()) {

View File

@ -33,6 +33,7 @@ package org.hl7.fhir.r5.model;
import org.hl7.fhir.instance.model.api.*;
import org.hl7.fhir.utilities.Utilities;
import org.hl7.fhir.exceptions.FHIRException;
public class Enumerations {
@ -109,6 +110,11 @@ public class Enumerations {
return MULTIPLE;
throw new FHIRException("Unknown ActionCardinalityBehavior code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "single", "multiple");
}
public String toCode() {
switch (this) {
case SINGLE: return "single";
@ -209,6 +215,11 @@ public class Enumerations {
return STOP;
throw new FHIRException("Unknown ActionConditionKind code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "applicability", "start", "stop");
}
public String toCode() {
switch (this) {
case APPLICABILITY: return "applicability";
@ -319,6 +330,11 @@ public class Enumerations {
return SENTENCEGROUP;
throw new FHIRException("Unknown ActionGroupingBehavior code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "visual-group", "logical-group", "sentence-group");
}
public String toCode() {
switch (this) {
case VISUALGROUP: return "visual-group";
@ -471,6 +487,11 @@ public class Enumerations {
return RELATEDPERSON;
throw new FHIRException("Unknown ActionParticipantType code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "careteam", "device", "group", "healthcareservice", "location", "organization", "patient", "practitioner", "practitionerrole", "relatedperson");
}
public String toCode() {
switch (this) {
case CARETEAM: return "careteam";
@ -645,6 +666,11 @@ public class Enumerations {
return NO;
throw new FHIRException("Unknown ActionPrecheckBehavior code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "yes", "no");
}
public String toCode() {
switch (this) {
case YES: return "yes";
@ -781,6 +807,11 @@ public class Enumerations {
return AFTEREND;
throw new FHIRException("Unknown ActionRelationshipType code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "before", "before-start", "before-end", "concurrent", "concurrent-with-start", "concurrent-with-end", "after", "after-start", "after-end");
}
public String toCode() {
switch (this) {
case BEFORE: return "before";
@ -951,6 +982,11 @@ public class Enumerations {
return MUSTUNLESSDOCUMENTED;
throw new FHIRException("Unknown ActionRequiredBehavior code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "must", "could", "must-unless-documented");
}
public String toCode() {
switch (this) {
case MUST: return "must";
@ -1079,6 +1115,11 @@ public class Enumerations {
return ONEORMORE;
throw new FHIRException("Unknown ActionSelectionBehavior code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "any", "all", "all-or-none", "exactly-one", "at-most-one", "one-or-more");
}
public String toCode() {
switch (this) {
case ANY: return "any";
@ -1225,6 +1266,11 @@ public class Enumerations {
return UNKNOWN;
throw new FHIRException("Unknown AdministrativeGender code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "male", "female", "other", "unknown");
}
public String toCode() {
switch (this) {
case MALE: return "male";
@ -1327,6 +1373,11 @@ public class Enumerations {
return null;
throw new FHIRException("Unknown AllLanguages code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString);
}
public String toCode() {
switch (this) {
case NULL: return null;
@ -1413,6 +1464,11 @@ public class Enumerations {
return EXAMPLE;
throw new FHIRException("Unknown BindingStrength code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "required", "extensible", "preferred", "example");
}
public String toCode() {
switch (this) {
case REQUIRED: return "required";
@ -1533,6 +1589,11 @@ public class Enumerations {
return REQUIREMENTS;
throw new FHIRException("Unknown CapabilityStatementKind code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "instance", "capability", "requirements");
}
public String toCode() {
switch (this) {
case INSTANCE: return "instance";
@ -1649,6 +1710,11 @@ public class Enumerations {
return PARTIAL;
throw new FHIRException("Unknown ClaimProcessingCodes code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "queued", "complete", "error", "partial");
}
public String toCode() {
switch (this) {
case QUEUED: return "queued";
@ -2243,6 +2309,11 @@ public class Enumerations {
return ZHTW;
throw new FHIRException("Unknown CommonLanguages code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "ar", "bg", "bg-BG", "bn", "cs", "cs-CZ", "bs", "bs-BA", "da", "da-DK", "de", "de-AT", "de-CH", "de-DE", "el", "el-GR", "en", "en-AU", "en-CA", "en-GB", "en-IN", "en-NZ", "en-SG", "en-US", "es", "es-AR", "es-ES", "es-UY", "et", "et-EE", "fi", "fr", "fr-BE", "fr-CH", "fr-FR", "fi-FI", "fr-CA", "fy", "fy-NL", "hi", "hr", "hr-HR", "is", "is-IS", "it", "it-CH", "it-IT", "ja", "ko", "lt", "lt-LT", "lv", "lv-LV", "nl", "nl-BE", "nl-NL", "no", "no-NO", "pa", "pl", "pl-PL", "pt", "pt-PT", "pt-BR", "ro", "ro-RO", "ru", "ru-RU", "sk", "sk-SK", "sl", "sl-SI", "sr", "sr-RS", "sv", "sv-SE", "te", "zh", "zh-CN", "zh-HK", "zh-SG", "zh-TW");
}
public String toCode() {
switch (this) {
case AR: return "ar";
@ -3161,6 +3232,11 @@ public class Enumerations {
return EPISODEOFCARE;
throw new FHIRException("Unknown CompartmentType code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "Patient", "Encounter", "RelatedPerson", "Practitioner", "Device", "EpisodeOfCare");
}
public String toCode() {
switch (this) {
case PATIENT: return "Patient";
@ -3349,6 +3425,11 @@ public class Enumerations {
return UNKNOWN;
throw new FHIRException("Unknown CompositionStatus code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "registered", "partial", "preliminary", "final", "amended", "corrected", "appended", "cancelled", "entered-in-error", "deprecated", "unknown");
}
public String toCode() {
switch (this) {
case REGISTERED: return "registered";
@ -3551,6 +3632,11 @@ public class Enumerations {
return NOTRELATEDTO;
throw new FHIRException("Unknown ConceptMapRelationship code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "related-to", "equivalent", "source-is-narrower-than-target", "source-is-broader-than-target", "not-related-to");
}
public String toCode() {
switch (this) {
case RELATEDTO: return "related-to";
@ -3687,6 +3773,11 @@ public class Enumerations {
return AUTHOREDBY;
throw new FHIRException("Unknown ConsentDataMeaning code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "instance", "related", "dependents", "authoredby");
}
public String toCode() {
switch (this) {
case INSTANCE: return "instance";
@ -3801,6 +3892,11 @@ public class Enumerations {
return PERMIT;
throw new FHIRException("Unknown ConsentProvisionType code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "deny", "permit");
}
public String toCode() {
switch (this) {
case DENY: return "deny";
@ -4975,6 +5071,11 @@ public class Enumerations {
return ZWL;
throw new FHIRException("Unknown Currencies code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", "FJD", "FKP", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "JEP", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRU", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "UYI", "UYU", "UZS", "VEF", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XOF", "XPD", "XPF", "XPT", "XSU", "XTS", "XUA", "XXX", "YER", "ZAR", "ZMW", "ZWL");
}
public String toCode() {
switch (this) {
case AED: return "AED";
@ -6899,6 +7000,11 @@ public class Enumerations {
return SUN;
throw new FHIRException("Unknown DaysOfWeek code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "mon", "tue", "wed", "thu", "fri", "sat", "sun");
}
public String toCode() {
switch (this) {
case MON: return "mon";
@ -7049,6 +7155,11 @@ public class Enumerations {
return PATIENTREPORTEDNAME;
throw new FHIRException("Unknown DeviceNameType code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "registered-name", "user-friendly-name", "patient-reported-name");
}
public String toCode() {
switch (this) {
case REGISTEREDNAME: return "registered-name";
@ -7195,6 +7306,11 @@ public class Enumerations {
return UNKNOWN;
throw new FHIRException("Unknown EncounterStatus code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "planned", "in-progress", "on-hold", "discharged", "completed", "cancelled", "discontinued", "entered-in-error", "unknown");
}
public String toCode() {
switch (this) {
case PLANNED: return "planned";
@ -7395,6 +7511,11 @@ public class Enumerations {
return UNKNOWN;
throw new FHIRException("Unknown EventStatus code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "preparation", "in-progress", "not-done", "on-hold", "stopped", "completed", "entered-in-error", "unknown");
}
public String toCode() {
switch (this) {
case PREPARATION: return "preparation";
@ -7561,6 +7682,11 @@ public class Enumerations {
return POLYCHOTOMOUS;
throw new FHIRException("Unknown EvidenceVariableHandling code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "continuous", "dichotomous", "ordinal", "polychotomous");
}
public String toCode() {
switch (this) {
case CONTINUOUS: return "continuous";
@ -7675,6 +7801,11 @@ public class Enumerations {
return SYSTEM;
throw new FHIRException("Unknown ExampleScenarioActorType code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "person", "system");
}
public String toCode() {
switch (this) {
case PERSON: return "person";
@ -8826,7 +8957,7 @@ The primary difference between a medicationstatement and a medicationadministrat
return VIRTUALSERVICEDETAIL;
if ("xhtml".equals(codeString))
return XHTML;
if ("Resource".equals(codeString))
if ("Resource".equals(codeString) || "Any".equals(codeString))
return RESOURCE;
if ("Binary".equals(codeString))
return BINARY;
@ -9152,6 +9283,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return PARAMETERS;
throw new FHIRException("Unknown FHIRTypes code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "Base", "Element", "BackboneElement", "DataType", "Address", "Annotation", "Attachment", "Availability", "BackboneType", "Dosage", "ElementDefinition", "MarketingStatus", "Population", "ProductShelfLife", "Timing", "CodeableConcept", "CodeableReference", "Coding", "ContactDetail", "ContactPoint", "Contributor", "DataRequirement", "Expression", "ExtendedContactDetail", "Extension", "HumanName", "Identifier", "Meta", "MonetaryComponent", "Money", "Narrative", "ParameterDefinition", "Period", "PrimitiveType", "base64Binary", "boolean", "date", "dateTime", "decimal", "instant", "integer", "positiveInt", "unsignedInt", "integer64", "string", "code", "id", "markdown", "time", "uri", "canonical", "oid", "url", "uuid", "Quantity", "Age", "Count", "Distance", "Duration", "Range", "Ratio", "RatioRange", "Reference", "RelatedArtifact", "SampledData", "Signature", "TriggerDefinition", "UsageContext", "VirtualServiceDetail", "xhtml", "Resource", "Binary", "Bundle", "DomainResource", "Account", "ActivityDefinition", "ActorDefinition", "AdministrableProductDefinition", "AdverseEvent", "AllergyIntolerance", "Appointment", "AppointmentResponse", "ArtifactAssessment", "AuditEvent", "Basic", "BiologicallyDerivedProduct", "BiologicallyDerivedProductDispense", "BodyStructure", "CanonicalResource", "CapabilityStatement", "CarePlan", "CareTeam", "ChargeItem", "ChargeItemDefinition", "Citation", "Claim", "ClaimResponse", "ClinicalImpression", "ClinicalUseDefinition", "CodeSystem", "Communication", "CommunicationRequest", "CompartmentDefinition", "Composition", "ConceptMap", "Condition", "ConditionDefinition", "Consent", "Contract", "Coverage", "CoverageEligibilityRequest", "CoverageEligibilityResponse", "DetectedIssue", "Device", "DeviceAssociation", "DeviceDefinition", "DeviceDispense", "DeviceMetric", "DeviceRequest", "DeviceUsage", "DiagnosticReport", "DocumentReference", "Encounter", "EncounterHistory", "Endpoint", "EnrollmentRequest", "EnrollmentResponse", "EpisodeOfCare", "EventDefinition", "Evidence", "EvidenceReport", "EvidenceVariable", "ExampleScenario", "ExplanationOfBenefit", "FamilyMemberHistory", "Flag", "FormularyItem", "GenomicStudy", "Goal", "GraphDefinition", "Group", "GuidanceResponse", "HealthcareService", "ImagingSelection", "ImagingStudy", "Immunization", "ImmunizationEvaluation", "ImmunizationRecommendation", "ImplementationGuide", "Ingredient", "InsurancePlan", "InventoryItem", "InventoryReport", "Invoice", "Library", "Linkage", "List", "Location", "ManufacturedItemDefinition", "Measure", "MeasureReport", "Medication", "MedicationAdministration", "MedicationDispense", "MedicationKnowledge", "MedicationRequest", "MedicationStatement", "MedicinalProductDefinition", "MessageDefinition", "MessageHeader", "MetadataResource", "MolecularSequence", "NamingSystem", "NutritionIntake", "NutritionOrder", "NutritionProduct", "Observation", "ObservationDefinition", "OperationDefinition", "OperationOutcome", "Organization", "OrganizationAffiliation", "PackagedProductDefinition", "Patient", "PaymentNotice", "PaymentReconciliation", "Permission", "Person", "PlanDefinition", "Practitioner", "PractitionerRole", "Procedure", "Provenance", "Questionnaire", "QuestionnaireResponse", "RegulatedAuthorization", "RelatedPerson", "RequestOrchestration", "Requirements", "ResearchStudy", "ResearchSubject", "RiskAssessment", "Schedule", "SearchParameter", "ServiceRequest", "Slot", "Specimen", "SpecimenDefinition", "StructureDefinition", "StructureMap", "Subscription", "SubscriptionStatus", "SubscriptionTopic", "Substance", "SubstanceDefinition", "SubstanceNucleicAcid", "SubstancePolymer", "SubstanceProtein", "SubstanceReferenceInformation", "SubstanceSourceMaterial", "SupplyDelivery", "SupplyRequest", "Task", "TerminologyCapabilities", "TestPlan", "TestReport", "TestScript", "Transport", "ValueSet", "VerificationResult", "VisionPrescription", "Parameters");
}
public String toCode() {
switch (this) {
case BASE: return "Base";
@ -11876,6 +12012,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return _5_0_0DRAFTFINAL;
throw new FHIRException("Unknown FHIRVersion code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "0.01", "0.05", "0.06", "0.11", "0.0", "0.0.80", "0.0.81", "0.0.82", "0.4", "0.4.0", "0.5", "0.5.0", "1.0", "1.0.0", "1.0.1", "1.0.2", "1.1", "1.1.0", "1.4", "1.4.0", "1.6", "1.6.0", "1.8", "1.8.0", "3.0", "3.0.0", "3.0.1", "3.0.2", "3.3", "3.3.0", "3.5", "3.5.0", "4.0", "4.0.0", "4.0.1", "4.1", "4.1.0", "4.2", "4.2.0", "4.3", "4.3.0", "4.3.0-cibuild", "4.3.0-snapshot1", "4.4", "4.4.0", "4.5", "4.5.0", "4.6", "4.6.0", "5.0", "5.0.0", "5.0.0-cibuild", "5.0.0-snapshot1", "5.0.0-snapshot2", "5.0.0-ballot", "5.0.0-snapshot3", "5.0.0-draft-final");
}
public String toCode() {
switch (this) {
case _0_01: return "0.01";
@ -12591,6 +12732,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return EXISTS;
throw new FHIRException("Unknown FilterOperator code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "=", "is-a", "descendent-of", "is-not-a", "regex", "in", "not-in", "generalizes", "child-of", "descendent-leaf", "exists");
}
public String toCode() {
switch (this) {
case EQUAL: return "=";
@ -12787,6 +12933,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return ENTEREDINERROR;
throw new FHIRException("Unknown FinancialResourceStatusCodes code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "active", "cancelled", "draft", "entered-in-error");
}
public String toCode() {
switch (this) {
case ACTIVE: return "active";
@ -12907,6 +13058,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return CHANGES;
throw new FHIRException("Unknown ListMode code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "working", "snapshot", "changes");
}
public String toCode() {
switch (this) {
case WORKING: return "working";
@ -13011,6 +13167,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return DECREASE;
throw new FHIRException("Unknown MeasureImprovementNotation code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "increase", "decrease");
}
public String toCode() {
switch (this) {
case INCREASE: return "increase";
@ -13093,6 +13254,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return null;
throw new FHIRException("Unknown MimeTypes code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString);
}
public String toCode() {
switch (this) {
case NULL: return null;
@ -13203,6 +13369,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return UNKNOWN;
throw new FHIRException("Unknown ObservationStatus code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "registered", "preliminary", "final", "amended", "corrected", "cancelled", "entered-in-error", "unknown");
}
public String toCode() {
switch (this) {
case REGISTERED: return "registered";
@ -13357,6 +13528,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return OUT;
throw new FHIRException("Unknown OperationParameterUse code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "in", "out");
}
public String toCode() {
switch (this) {
case IN: return "in";
@ -13463,6 +13639,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return UNKNOWN;
throw new FHIRException("Unknown PublicationStatus code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "draft", "active", "retired", "unknown");
}
public String toCode() {
switch (this) {
case DRAFT: return "draft";
@ -13595,6 +13776,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return AD;
throw new FHIRException("Unknown QuantityComparator code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "<", "<=", ">=", ">", "ad");
}
public String toCode() {
switch (this) {
case LESS_THAN: return "<";
@ -13761,6 +13947,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return OPTION;
throw new FHIRException("Unknown RequestIntent code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "proposal", "plan", "directive", "order", "original-order", "reflex-order", "filler-order", "instance-order", "option");
}
public String toCode() {
switch (this) {
case PROPOSAL: return "proposal";
@ -13937,6 +14128,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return STAT;
throw new FHIRException("Unknown RequestPriority code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "routine", "urgent", "asap", "stat");
}
public String toCode() {
switch (this) {
case ROUTINE: return "routine";
@ -14081,6 +14277,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return UNKNOWN;
throw new FHIRException("Unknown RequestStatus code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "draft", "active", "on-hold", "revoked", "completed", "entered-in-error", "unknown");
}
public String toCode() {
switch (this) {
case DRAFT: return "draft";
@ -15163,6 +15364,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return VISIONPRESCRIPTION;
throw new FHIRException("Unknown ResourceTypeEnum code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "Account", "ActivityDefinition", "ActorDefinition", "AdministrableProductDefinition", "AdverseEvent", "AllergyIntolerance", "Appointment", "AppointmentResponse", "ArtifactAssessment", "AuditEvent", "Basic", "Binary", "BiologicallyDerivedProduct", "BiologicallyDerivedProductDispense", "BodyStructure", "Bundle", "CapabilityStatement", "CarePlan", "CareTeam", "ChargeItem", "ChargeItemDefinition", "Citation", "Claim", "ClaimResponse", "ClinicalImpression", "ClinicalUseDefinition", "CodeSystem", "Communication", "CommunicationRequest", "CompartmentDefinition", "Composition", "ConceptMap", "Condition", "ConditionDefinition", "Consent", "Contract", "Coverage", "CoverageEligibilityRequest", "CoverageEligibilityResponse", "DetectedIssue", "Device", "DeviceAssociation", "DeviceDefinition", "DeviceDispense", "DeviceMetric", "DeviceRequest", "DeviceUsage", "DiagnosticReport", "DocumentReference", "Encounter", "EncounterHistory", "Endpoint", "EnrollmentRequest", "EnrollmentResponse", "EpisodeOfCare", "EventDefinition", "Evidence", "EvidenceReport", "EvidenceVariable", "ExampleScenario", "ExplanationOfBenefit", "FamilyMemberHistory", "Flag", "FormularyItem", "GenomicStudy", "Goal", "GraphDefinition", "Group", "GuidanceResponse", "HealthcareService", "ImagingSelection", "ImagingStudy", "Immunization", "ImmunizationEvaluation", "ImmunizationRecommendation", "ImplementationGuide", "Ingredient", "InsurancePlan", "InventoryItem", "InventoryReport", "Invoice", "Library", "Linkage", "List", "Location", "ManufacturedItemDefinition", "Measure", "MeasureReport", "Medication", "MedicationAdministration", "MedicationDispense", "MedicationKnowledge", "MedicationRequest", "MedicationStatement", "MedicinalProductDefinition", "MessageDefinition", "MessageHeader", "MolecularSequence", "NamingSystem", "NutritionIntake", "NutritionOrder", "NutritionProduct", "Observation", "ObservationDefinition", "OperationDefinition", "OperationOutcome", "Organization", "OrganizationAffiliation", "PackagedProductDefinition", "Parameters", "Patient", "PaymentNotice", "PaymentReconciliation", "Permission", "Person", "PlanDefinition", "Practitioner", "PractitionerRole", "Procedure", "Provenance", "Questionnaire", "QuestionnaireResponse", "RegulatedAuthorization", "RelatedPerson", "RequestOrchestration", "Requirements", "ResearchStudy", "ResearchSubject", "RiskAssessment", "Schedule", "SearchParameter", "ServiceRequest", "Slot", "Specimen", "SpecimenDefinition", "StructureDefinition", "StructureMap", "Subscription", "SubscriptionStatus", "SubscriptionTopic", "Substance", "SubstanceDefinition", "SubstanceNucleicAcid", "SubstancePolymer", "SubstanceProtein", "SubstanceReferenceInformation", "SubstanceSourceMaterial", "SupplyDelivery", "SupplyRequest", "Task", "TerminologyCapabilities", "TestPlan", "TestReport", "TestScript", "Transport", "ValueSet", "VerificationResult", "VisionPrescription");
}
public String toCode() {
switch (this) {
case ACCOUNT: return "Account";
@ -16859,6 +17065,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return AP;
throw new FHIRException("Unknown SearchComparator code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "eq", "ne", "gt", "lt", "ge", "le", "sa", "eb", "ap");
}
public String toCode() {
switch (this) {
case EQ: return "eq";
@ -17101,6 +17312,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return ITERATE;
throw new FHIRException("Unknown SearchModifierCode code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "missing", "exact", "contains", "not", "text", "in", "not-in", "below", "above", "type", "identifier", "of-type", "code-text", "text-advanced", "iterate");
}
public String toCode() {
switch (this) {
case MISSING: return "missing";
@ -17367,6 +17583,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return SPECIAL;
throw new FHIRException("Unknown SearchParamType code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "number", "date", "string", "token", "reference", "composite", "quantity", "uri", "special");
}
public String toCode() {
switch (this) {
case NUMBER: return "number";
@ -17549,6 +17770,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return ENTEREDINERROR;
throw new FHIRException("Unknown SubscriptionStatusCodes code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "requested", "active", "error", "off", "entered-in-error");
}
public String toCode() {
switch (this) {
case REQUESTED: return "requested";
@ -17679,6 +17905,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return PREDETERMINATION;
throw new FHIRException("Unknown Use code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "claim", "preauthorization", "predetermination");
}
public String toCode() {
switch (this) {
case CLAIM: return "claim";
@ -18991,6 +19222,11 @@ The primary difference between a medicationstatement and a medicationadministrat
return SUBSTANCESPECIFICATION;
throw new FHIRException("Unknown VersionIndependentResourceTypesAll code '"+codeString+"'");
}
public static boolean isValidCode(String codeString) {
if (codeString == null || "".equals(codeString))
return false;
return Utilities.existsInList(codeString, "Account", "ActivityDefinition", "ActorDefinition", "AdministrableProductDefinition", "AdverseEvent", "AllergyIntolerance", "Appointment", "AppointmentResponse", "ArtifactAssessment", "AuditEvent", "Basic", "Binary", "BiologicallyDerivedProduct", "BiologicallyDerivedProductDispense", "BodyStructure", "Bundle", "CanonicalResource", "CapabilityStatement", "CarePlan", "CareTeam", "ChargeItem", "ChargeItemDefinition", "Citation", "Claim", "ClaimResponse", "ClinicalImpression", "ClinicalUseDefinition", "CodeSystem", "Communication", "CommunicationRequest", "CompartmentDefinition", "Composition", "ConceptMap", "Condition", "ConditionDefinition", "Consent", "Contract", "Coverage", "CoverageEligibilityRequest", "CoverageEligibilityResponse", "DetectedIssue", "Device", "DeviceAssociation", "DeviceDefinition", "DeviceDispense", "DeviceMetric", "DeviceRequest", "DeviceUsage", "DiagnosticReport", "DocumentReference", "DomainResource", "Encounter", "EncounterHistory", "Endpoint", "EnrollmentRequest", "EnrollmentResponse", "EpisodeOfCare", "EventDefinition", "Evidence", "EvidenceReport", "EvidenceVariable", "ExampleScenario", "ExplanationOfBenefit", "FamilyMemberHistory", "Flag", "FormularyItem", "GenomicStudy", "Goal", "GraphDefinition", "Group", "GuidanceResponse", "HealthcareService", "ImagingSelection", "ImagingStudy", "Immunization", "ImmunizationEvaluation", "ImmunizationRecommendation", "ImplementationGuide", "Ingredient", "InsurancePlan", "InventoryItem", "InventoryReport", "Invoice", "Library", "Linkage", "List", "Location", "ManufacturedItemDefinition", "Measure", "MeasureReport", "Medication", "MedicationAdministration", "MedicationDispense", "MedicationKnowledge", "MedicationRequest", "MedicationStatement", "MedicinalProductDefinition", "MessageDefinition", "MessageHeader", "MetadataResource", "MolecularSequence", "NamingSystem", "NutritionIntake", "NutritionOrder", "NutritionProduct", "Observation", "ObservationDefinition", "OperationDefinition", "OperationOutcome", "Organization", "OrganizationAffiliation", "PackagedProductDefinition", "Parameters", "Patient", "PaymentNotice", "PaymentReconciliation", "Permission", "Person", "PlanDefinition", "Practitioner", "PractitionerRole", "Procedure", "Provenance", "Questionnaire", "QuestionnaireResponse", "RegulatedAuthorization", "RelatedPerson", "RequestOrchestration", "Requirements", "ResearchStudy", "ResearchSubject", "Resource", "RiskAssessment", "Schedule", "SearchParameter", "ServiceRequest", "Slot", "Specimen", "SpecimenDefinition", "StructureDefinition", "StructureMap", "Subscription", "SubscriptionStatus", "SubscriptionTopic", "Substance", "SubstanceDefinition", "SubstanceNucleicAcid", "SubstancePolymer", "SubstanceProtein", "SubstanceReferenceInformation", "SubstanceSourceMaterial", "SupplyDelivery", "SupplyRequest", "Task", "TerminologyCapabilities", "TestPlan", "TestReport", "TestScript", "Transport", "ValueSet", "VerificationResult", "VisionPrescription", "BodySite", "CatalogEntry", "Conformance", "DataElement", "DeviceComponent", "DeviceUseRequest", "DeviceUseStatement", "DiagnosticOrder", "DocumentManifest", "EffectEvidenceSynthesis", "EligibilityRequest", "EligibilityResponse", "ExpansionProfile", "ImagingManifest", "ImagingObjectSelection", "Media", "MedicationOrder", "MedicationUsage", "MedicinalProduct", "MedicinalProductAuthorization", "MedicinalProductContraindication", "MedicinalProductIndication", "MedicinalProductIngredient", "MedicinalProductInteraction", "MedicinalProductManufactured", "MedicinalProductPackaged", "MedicinalProductPharmaceutical", "MedicinalProductUndesirableEffect", "Order", "OrderResponse", "ProcedureRequest", "ProcessRequest", "ProcessResponse", "ReferralRequest", "RequestGroup", "ResearchDefinition", "ResearchElementDefinition", "RiskEvidenceSynthesis", "Sequence", "ServiceDefinition", "SubstanceSpecification");
}
public String toCode() {
switch (this) {
case ACCOUNT: return "Account";

View File

@ -239,6 +239,7 @@ public class ToolingExtensions {
public static final String WEB_EXTENSION_STYLE = "http://build.fhir.org/ig/FHIR/fhir-tools-ig/format-extensions.html#extension-related-extensions";
public static final String EXT_IGDEP_COMMENT = "http://hl7.org/fhir/tools/StructureDefinition/implementationguide-dependency-comment";
public static final String EXT_XPATH_CONSTRAINT = "http://hl7.org/fhir/4.0/StructureDefinition/extension-ElementDefinition.constraint.xpath";
public static final String EXT_OBLIGATION = "http://hl7.org/fhir/tools/StructureDefinition/obligation";
;
// specific extension helpers

View File

@ -701,7 +701,7 @@ public class StructureMapValidator extends BaseValidator {
if (ruleInfo.getDefVariable() != null && "create".equals(transform) && params.isEmpty()) {
VariableDefn v = variables.getVariable(ruleInfo.getDefVariable(), SOURCE);
if (v != null && (v.getEd().getType().size() == 1 || v.getType() != null)) {
if (v != null && v.getEd() != null && (v.getEd().getType().size() == 1 || v.getType() != null)) {
List<Element> dependents = rule.getChildrenByName("dependent");
if (dependents.size() == 1 && StructureMapUtilities.DEF_GROUP_NAME.equals(dependents.get(0).getChildValue("name"))) {
String type = v.getType() != null ? v.getType() : v.getEd().getTypeFirstRep().getWorkingCode();

View File

@ -19,7 +19,7 @@
<properties>
<hapi_fhir_version>6.2.1</hapi_fhir_version>
<validator_test_case_version>1.2.13</validator_test_case_version>
<validator_test_case_version>1.2.14-SNAPSHOT</validator_test_case_version>
<junit_jupiter_version>5.7.1</junit_jupiter_version>
<junit_platform_launcher_version>1.8.2</junit_platform_launcher_version>
<maven_surefire_version>3.0.0-M5</maven_surefire_version>