Merge remote-tracking branch 'origin/master' into do-i18n-plurals

This commit is contained in:
dotasek 2022-11-07 09:23:36 -05:00
commit ffec2ce1c5
248 changed files with 1922 additions and 1353 deletions

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>5.6.76-SNAPSHOT</version> <version>5.6.77-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -283,6 +283,9 @@ public class ActivityDefinition30_50 {
case SUPPLYREQUEST: case SUPPLYREQUEST:
tgt.setValue(org.hl7.fhir.r5.model.ActivityDefinition.RequestResourceTypes.SUPPLYREQUEST); tgt.setValue(org.hl7.fhir.r5.model.ActivityDefinition.RequestResourceTypes.SUPPLYREQUEST);
break; break;
case TASK:
tgt.setValue(org.hl7.fhir.r5.model.ActivityDefinition.RequestResourceTypes.TASK);
break;
case VISIONPRESCRIPTION: case VISIONPRESCRIPTION:
tgt.setValue(org.hl7.fhir.r5.model.ActivityDefinition.RequestResourceTypes.VISIONPRESCRIPTION); tgt.setValue(org.hl7.fhir.r5.model.ActivityDefinition.RequestResourceTypes.VISIONPRESCRIPTION);
break; break;
@ -338,6 +341,9 @@ public class ActivityDefinition30_50 {
case SUPPLYREQUEST: case SUPPLYREQUEST:
tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.SUPPLYREQUEST); tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.SUPPLYREQUEST);
break; break;
case TASK:
tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.TASK);
break;
case VISIONPRESCRIPTION: case VISIONPRESCRIPTION:
tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.VISIONPRESCRIPTION); tgt.setValue(org.hl7.fhir.dstu3.model.ActivityDefinition.ActivityDefinitionKind.VISIONPRESCRIPTION);
break; break;

View File

@ -295,6 +295,9 @@ public class ActivityDefinition40_50 {
case SUPPLYREQUEST: case SUPPLYREQUEST:
tgt.setValue(org.hl7.fhir.r5.model.ActivityDefinition.RequestResourceTypes.SUPPLYREQUEST); tgt.setValue(org.hl7.fhir.r5.model.ActivityDefinition.RequestResourceTypes.SUPPLYREQUEST);
break; break;
case TASK:
tgt.setValue(org.hl7.fhir.r5.model.ActivityDefinition.RequestResourceTypes.TASK);
break;
case VISIONPRESCRIPTION: case VISIONPRESCRIPTION:
tgt.setValue(org.hl7.fhir.r5.model.ActivityDefinition.RequestResourceTypes.VISIONPRESCRIPTION); tgt.setValue(org.hl7.fhir.r5.model.ActivityDefinition.RequestResourceTypes.VISIONPRESCRIPTION);
break; break;
@ -350,6 +353,9 @@ public class ActivityDefinition40_50 {
case SUPPLYREQUEST: case SUPPLYREQUEST:
tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.SUPPLYREQUEST); tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.SUPPLYREQUEST);
break; break;
case TASK:
tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.TASK);
break;
case VISIONPRESCRIPTION: case VISIONPRESCRIPTION:
tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.VISIONPRESCRIPTION); tgt.setValue(org.hl7.fhir.r4.model.ActivityDefinition.ActivityDefinitionKind.VISIONPRESCRIPTION);
break; break;

View File

@ -295,6 +295,9 @@ public class ActivityDefinition43_50 {
case SUPPLYREQUEST: case SUPPLYREQUEST:
tgt.setValue(org.hl7.fhir.r5.model.ActivityDefinition.RequestResourceTypes.SUPPLYREQUEST); tgt.setValue(org.hl7.fhir.r5.model.ActivityDefinition.RequestResourceTypes.SUPPLYREQUEST);
break; break;
case TASK:
tgt.setValue(org.hl7.fhir.r5.model.ActivityDefinition.RequestResourceTypes.TASK);
break;
case VISIONPRESCRIPTION: case VISIONPRESCRIPTION:
tgt.setValue(org.hl7.fhir.r5.model.ActivityDefinition.RequestResourceTypes.VISIONPRESCRIPTION); tgt.setValue(org.hl7.fhir.r5.model.ActivityDefinition.RequestResourceTypes.VISIONPRESCRIPTION);
break; break;
@ -350,6 +353,9 @@ public class ActivityDefinition43_50 {
case SUPPLYREQUEST: case SUPPLYREQUEST:
tgt.setValue(org.hl7.fhir.r4b.model.ActivityDefinition.RequestResourceType.SUPPLYREQUEST); tgt.setValue(org.hl7.fhir.r4b.model.ActivityDefinition.RequestResourceType.SUPPLYREQUEST);
break; break;
case TASK:
tgt.setValue(org.hl7.fhir.r4b.model.ActivityDefinition.RequestResourceType.TASK);
break;
case VISIONPRESCRIPTION: case VISIONPRESCRIPTION:
tgt.setValue(org.hl7.fhir.r4b.model.ActivityDefinition.RequestResourceType.VISIONPRESCRIPTION); tgt.setValue(org.hl7.fhir.r4b.model.ActivityDefinition.RequestResourceType.VISIONPRESCRIPTION);
break; break;

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>5.6.76-SNAPSHOT</version> <version>5.6.77-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>5.6.76-SNAPSHOT</version> <version>5.6.77-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>5.6.76-SNAPSHOT</version> <version>5.6.77-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>5.6.76-SNAPSHOT</version> <version>5.6.77-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -84,16 +84,88 @@ public class TerminologyCache {
private static final String ENTRY_MARKER = "-------------------------------------------------------------------------------------"; private static final String ENTRY_MARKER = "-------------------------------------------------------------------------------------";
private static final String BREAK = "####"; private static final String BREAK = "####";
private SystemNameKeyGenerator systemNameKeyGenerator = new SystemNameKeyGenerator();
protected SystemNameKeyGenerator getSystemNameKeyGenerator() {
return systemNameKeyGenerator;
}
public class SystemNameKeyGenerator {
public static final String SNOMED_SCT_CODESYSTEM_URL = "http://snomed.info/sct";
public static final String RXNORM_CODESYSTEM_URL = "http://www.nlm.nih.gov/research/umls/rxnorm";
public static final String LOINC_CODESYSTEM_URL = "http://loinc.org";
public static final String UCUM_CODESYSTEM_URL = "http://unitsofmeasure.org";
public static final String HL7_TERMINOLOGY_CODESYSTEM_BASE_URL = "http://terminology.hl7.org/CodeSystem/";
public static final String HL7_SID_CODESYSTEM_BASE_URL = "http://hl7.org/fhir/sid/";
public static final String HL7_FHIR_CODESYSTEM_BASE_URL = "http://hl7.org/fhir/";
public static final String ISO_CODESYSTEM_URN = "urn:iso:std:iso:";
public static final String LANG_CODESYSTEM_URN = "urn:ietf:bcp:47";
public static final String MIMETYPES_CODESYSTEM_URN = "urn:ietf:bcp:13";
public static final String _11073_CODESYSTEM_URN = "urn:iso:std:iso:11073:10101";
public static final String DICOM_CODESYSTEM_URL = "http://dicom.nema.org/resources/ontology/DCM";
public String getNameForSystem(String system) {
final int lastPipe = system.lastIndexOf('|');
final String systemBaseName = lastPipe == -1 ? system : system.substring(0,lastPipe);
final String systemVersion = lastPipe == -1 ? null : system.substring(lastPipe + 1);
if (systemBaseName.equals(SNOMED_SCT_CODESYSTEM_URL))
return getVersionedSystem("snomed", systemVersion);
if (systemBaseName.equals(RXNORM_CODESYSTEM_URL))
return getVersionedSystem("rxnorm", systemVersion);
if (systemBaseName.equals(LOINC_CODESYSTEM_URL))
return getVersionedSystem("loinc", systemVersion);
if (systemBaseName.equals(UCUM_CODESYSTEM_URL))
return getVersionedSystem("ucum", systemVersion);
if (systemBaseName.startsWith(HL7_SID_CODESYSTEM_BASE_URL))
return getVersionedSystem(normalizeBaseURL(HL7_SID_CODESYSTEM_BASE_URL, systemBaseName), systemVersion);
if (systemBaseName.equals(_11073_CODESYSTEM_URN))
return getVersionedSystem("11073", systemVersion);
if (systemBaseName.startsWith(ISO_CODESYSTEM_URN))
return getVersionedSystem("iso"+systemBaseName.substring(ISO_CODESYSTEM_URN.length()).replace(":", ""), systemVersion);
if (systemBaseName.startsWith(HL7_TERMINOLOGY_CODESYSTEM_BASE_URL))
return getVersionedSystem(normalizeBaseURL(HL7_TERMINOLOGY_CODESYSTEM_BASE_URL, systemBaseName), systemVersion);
if (systemBaseName.startsWith(HL7_FHIR_CODESYSTEM_BASE_URL))
return getVersionedSystem(normalizeBaseURL(HL7_FHIR_CODESYSTEM_BASE_URL, systemBaseName), systemVersion);
if (systemBaseName.equals(LANG_CODESYSTEM_URN))
return getVersionedSystem("lang", systemVersion);
if (systemBaseName.equals(MIMETYPES_CODESYSTEM_URN))
return getVersionedSystem("mimetypes", systemVersion);
if (systemBaseName.equals(DICOM_CODESYSTEM_URL))
return getVersionedSystem("dicom", systemVersion);
return getVersionedSystem(systemBaseName.replace("/", "_").replace(":", "_").replace("?", "X").replace("#", "X"), systemVersion);
}
public String normalizeBaseURL(String baseUrl, String fullUrl) {
return fullUrl.substring(baseUrl.length()).replace("/", "");
}
public String getVersionedSystem(String baseSystem, String version) {
if (version != null) {
return baseSystem + "_" + version;
}
return baseSystem;
}
}
public class CacheToken { public class CacheToken {
private String name; private String name;
private String key; private String key;
private String request; private String request;
public void setName(String n) { public void setName(String n) {
String systemName = getSystemNameKeyGenerator().getNameForSystem(n);
if (name == null) if (name == null)
name = n; name = systemName;
else if (!n.equals(name)) else if (!systemName.equals(name))
name = NAME_FOR_NO_SYSTEM; name = NAME_FOR_NO_SYSTEM;
} }
public String getName() {
return name;
}
} }
private class CacheEntry { private class CacheEntry {
@ -126,7 +198,7 @@ public class TerminologyCache {
public CacheToken generateValidationToken(ValidationOptions options, Coding code, ValueSet vs) { public CacheToken generateValidationToken(ValidationOptions options, Coding code, ValueSet vs) {
CacheToken ct = new CacheToken(); CacheToken ct = new CacheToken();
if (code.hasSystem()) if (code.hasSystem())
ct.name = getNameForSystem(code.getSystem()); ct.name = getSystemNameKeyGenerator().getNameForSystem(code.getSystem());
else else
ct.name = NAME_FOR_NO_SYSTEM; ct.name = NAME_FOR_NO_SYSTEM;
JsonParser json = new JsonParser(); JsonParser json = new JsonParser();
@ -145,7 +217,7 @@ public class TerminologyCache {
CacheToken ct = new CacheToken(); CacheToken ct = new CacheToken();
for (Coding c : code.getCoding()) { for (Coding c : code.getCoding()) {
if (c.hasSystem()) if (c.hasSystem())
ct.setName(getNameForSystem(c.getSystem())); ct.setName(c.getSystem());
} }
JsonParser json = new JsonParser(); JsonParser json = new JsonParser();
json.setOutputStyle(OutputStyle.PRETTY); json.setOutputStyle(OutputStyle.PRETTY);
@ -176,13 +248,13 @@ public class TerminologyCache {
ValueSet vsc = getVSEssense(vs); ValueSet vsc = getVSEssense(vs);
for (ConceptSetComponent inc : vs.getCompose().getInclude()) for (ConceptSetComponent inc : vs.getCompose().getInclude())
if (inc.hasSystem()) if (inc.hasSystem())
ct.setName(getNameForSystem(inc.getSystem())); ct.setName(inc.getSystem());
for (ConceptSetComponent inc : vs.getCompose().getExclude()) for (ConceptSetComponent inc : vs.getCompose().getExclude())
if (inc.hasSystem()) if (inc.hasSystem())
ct.setName(getNameForSystem(inc.getSystem())); ct.setName(inc.getSystem());
for (ValueSetExpansionContainsComponent inc : vs.getExpansion().getContains()) for (ValueSetExpansionContainsComponent inc : vs.getExpansion().getContains())
if (inc.hasSystem()) if (inc.hasSystem())
ct.setName(getNameForSystem(inc.getSystem())); ct.setName(inc.getSystem());
JsonParser json = new JsonParser(); JsonParser json = new JsonParser();
json.setOutputStyle(OutputStyle.PRETTY); json.setOutputStyle(OutputStyle.PRETTY);
try { try {
@ -194,34 +266,6 @@ public class TerminologyCache {
return ct; return ct;
} }
private String getNameForSystem(String system) {
if (system.equals("http://snomed.info/sct"))
return "snomed";
if (system.equals("http://www.nlm.nih.gov/research/umls/rxnorm"))
return "rxnorm";
if (system.equals("http://loinc.org"))
return "loinc";
if (system.equals("http://unitsofmeasure.org"))
return "ucum";
if (system.startsWith("http://hl7.org/fhir/sid/"))
return system.substring(24).replace("/", "");
if (system.startsWith("urn:iso:std:iso:"))
return "iso"+system.substring(16).replace(":", "");
if (system.startsWith("http://terminology.hl7.org/CodeSystem/"))
return system.substring(38).replace("/", "");
if (system.startsWith("http://hl7.org/fhir/"))
return system.substring(20).replace("/", "");
if (system.equals("urn:ietf:bcp:47"))
return "lang";
if (system.equals("urn:ietf:bcp:13"))
return "mimetypes";
if (system.equals("urn:iso:std:iso:11073:10101"))
return "11073";
if (system.equals("http://dicom.nema.org/resources/ontology/DCM"))
return "dicom";
return system.replace("/", "_").replace(":", "_");
}
public NamedCache getNamedCache(CacheToken cacheToken) { public NamedCache getNamedCache(CacheToken cacheToken) {
NamedCache nc = caches.get(cacheToken.name); NamedCache nc = caches.get(cacheToken.name);
if (nc == null) { if (nc == null) {

View File

@ -0,0 +1,8 @@
package org.hl7.fhir.r4.context;
import org.hl7.fhir.utilities.validation.ValidationOptions;
public class CacheTestUtils {
public static final ValidationOptions validationOptions = new ValidationOptions().guessSystem().setVersionFlexible(false);
}

View File

@ -0,0 +1,61 @@
package org.hl7.fhir.r4.context;
import org.hl7.fhir.r4.model.Coding;
import org.hl7.fhir.r4.model.ValueSet;
import org.hl7.fhir.utilities.tests.ResourceLoaderTests;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import java.io.IOException;
import java.net.URISyntaxException;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class TerminologyCacheTests implements ResourceLoaderTests {
private TerminologyCache createTerminologyCache() throws IOException {
Object lock = new Object();
TerminologyCache terminologyCache = new TerminologyCache(lock, null);
return terminologyCache;
}
@ParameterizedTest
@CsvSource({
"http://terminology.hl7.org/CodeSystem/id,id",
"http://hl7.org/fhir/id,id",
"http://hl7.org/fhir/sid/id,id",
"http://www.nlm.nih.gov/research/umls/rxnorm,rxnorm",
"http://snomed.info/sct,snomed",
"http://www.nlm.nih.gov/research/umls/rxnorm,rxnorm",
"http://loinc.org,loinc",
"http://unitsofmeasure.org,ucum",
"urn:iso:std:iso:id,isoid",
"urn:ietf:bcp:47,lang",
"urn:ietf:bcp:13,mimetypes",
"urn:iso:std:iso:11073:10101,11073",
"my://random/system?with#chars,my___random_systemXwithXchars",
"http://dicom.nema.org/resources/ontology/DCM,dicom"
})
public void testCacheTokenGeneration(String system, String expectedName) throws IOException, URISyntaxException {
TerminologyCache terminologyCache = createTerminologyCache();
ValueSet valueSet = new ValueSet();
{
Coding coding = new Coding();
coding.setSystem(system);
TerminologyCache.CacheToken cacheToken = terminologyCache.generateValidationToken(CacheTestUtils.validationOptions,
coding, valueSet);
assertEquals(expectedName, cacheToken.getName());
}
{
Coding coding = new Coding();
coding.setSystem(system + "|dummyVersion");
TerminologyCache.CacheToken cacheToken = terminologyCache.generateValidationToken(CacheTestUtils.validationOptions,
coding, valueSet);
assertEquals(expectedName + "_dummyVersion", cacheToken.getName());
}
}
}

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>5.6.76-SNAPSHOT</version> <version>5.6.77-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -84,16 +84,88 @@ public class TerminologyCache {
private static final String ENTRY_MARKER = "-------------------------------------------------------------------------------------"; private static final String ENTRY_MARKER = "-------------------------------------------------------------------------------------";
private static final String BREAK = "####"; private static final String BREAK = "####";
private SystemNameKeyGenerator systemNameKeyGenerator = new SystemNameKeyGenerator();
protected SystemNameKeyGenerator getSystemNameKeyGenerator() {
return systemNameKeyGenerator;
}
public class SystemNameKeyGenerator {
public static final String SNOMED_SCT_CODESYSTEM_URL = "http://snomed.info/sct";
public static final String RXNORM_CODESYSTEM_URL = "http://www.nlm.nih.gov/research/umls/rxnorm";
public static final String LOINC_CODESYSTEM_URL = "http://loinc.org";
public static final String UCUM_CODESYSTEM_URL = "http://unitsofmeasure.org";
public static final String HL7_TERMINOLOGY_CODESYSTEM_BASE_URL = "http://terminology.hl7.org/CodeSystem/";
public static final String HL7_SID_CODESYSTEM_BASE_URL = "http://hl7.org/fhir/sid/";
public static final String HL7_FHIR_CODESYSTEM_BASE_URL = "http://hl7.org/fhir/";
public static final String ISO_CODESYSTEM_URN = "urn:iso:std:iso:";
public static final String LANG_CODESYSTEM_URN = "urn:ietf:bcp:47";
public static final String MIMETYPES_CODESYSTEM_URN = "urn:ietf:bcp:13";
public static final String _11073_CODESYSTEM_URN = "urn:iso:std:iso:11073:10101";
public static final String DICOM_CODESYSTEM_URL = "http://dicom.nema.org/resources/ontology/DCM";
public String getNameForSystem(String system) {
final int lastPipe = system.lastIndexOf('|');
final String systemBaseName = lastPipe == -1 ? system : system.substring(0,lastPipe);
final String systemVersion = lastPipe == -1 ? null : system.substring(lastPipe + 1);
if (systemBaseName.equals(SNOMED_SCT_CODESYSTEM_URL))
return getVersionedSystem("snomed", systemVersion);
if (systemBaseName.equals(RXNORM_CODESYSTEM_URL))
return getVersionedSystem("rxnorm", systemVersion);
if (systemBaseName.equals(LOINC_CODESYSTEM_URL))
return getVersionedSystem("loinc", systemVersion);
if (systemBaseName.equals(UCUM_CODESYSTEM_URL))
return getVersionedSystem("ucum", systemVersion);
if (systemBaseName.startsWith(HL7_SID_CODESYSTEM_BASE_URL))
return getVersionedSystem(normalizeBaseURL(HL7_SID_CODESYSTEM_BASE_URL, systemBaseName), systemVersion);
if (systemBaseName.equals(_11073_CODESYSTEM_URN))
return getVersionedSystem("11073", systemVersion);
if (systemBaseName.startsWith(ISO_CODESYSTEM_URN))
return getVersionedSystem("iso"+systemBaseName.substring(ISO_CODESYSTEM_URN.length()).replace(":", ""), systemVersion);
if (systemBaseName.startsWith(HL7_TERMINOLOGY_CODESYSTEM_BASE_URL))
return getVersionedSystem(normalizeBaseURL(HL7_TERMINOLOGY_CODESYSTEM_BASE_URL, systemBaseName), systemVersion);
if (systemBaseName.startsWith(HL7_FHIR_CODESYSTEM_BASE_URL))
return getVersionedSystem(normalizeBaseURL(HL7_FHIR_CODESYSTEM_BASE_URL, systemBaseName), systemVersion);
if (systemBaseName.equals(LANG_CODESYSTEM_URN))
return getVersionedSystem("lang", systemVersion);
if (systemBaseName.equals(MIMETYPES_CODESYSTEM_URN))
return getVersionedSystem("mimetypes", systemVersion);
if (systemBaseName.equals(DICOM_CODESYSTEM_URL))
return getVersionedSystem("dicom", systemVersion);
return getVersionedSystem(systemBaseName.replace("/", "_").replace(":", "_").replace("?", "X").replace("#", "X"), systemVersion);
}
public String normalizeBaseURL(String baseUrl, String fullUrl) {
return fullUrl.substring(baseUrl.length()).replace("/", "");
}
public String getVersionedSystem(String baseSystem, String version) {
if (version != null) {
return baseSystem + "_" + version;
}
return baseSystem;
}
}
public class CacheToken { public class CacheToken {
private String name; private String name;
private String key; private String key;
private String request; private String request;
public void setName(String n) { public void setName(String n) {
String systemName = getSystemNameKeyGenerator().getNameForSystem(n);
if (name == null) if (name == null)
name = n; name = systemName;
else if (!n.equals(name)) else if (!systemName.equals(name))
name = NAME_FOR_NO_SYSTEM; name = NAME_FOR_NO_SYSTEM;
} }
public String getName() {
return name;
}
} }
private class CacheEntry { private class CacheEntry {
@ -130,7 +202,7 @@ public class TerminologyCache {
public CacheToken generateValidationToken(ValidationOptions options, Coding code, ValueSet vs) { public CacheToken generateValidationToken(ValidationOptions options, Coding code, ValueSet vs) {
CacheToken ct = new CacheToken(); CacheToken ct = new CacheToken();
if (code.hasSystem()) if (code.hasSystem())
ct.name = getNameForSystem(code.getSystem()); ct.name = getSystemNameKeyGenerator().getNameForSystem(code.getSystem());
else else
ct.name = NAME_FOR_NO_SYSTEM; ct.name = NAME_FOR_NO_SYSTEM;
JsonParser json = new JsonParser(); JsonParser json = new JsonParser();
@ -159,7 +231,7 @@ public class TerminologyCache {
CacheToken ct = new CacheToken(); CacheToken ct = new CacheToken();
for (Coding c : code.getCoding()) { for (Coding c : code.getCoding()) {
if (c.hasSystem()) if (c.hasSystem())
ct.setName(getNameForSystem(c.getSystem())); ct.setName(c.getSystem());
} }
JsonParser json = new JsonParser(); JsonParser json = new JsonParser();
json.setOutputStyle(OutputStyle.PRETTY); json.setOutputStyle(OutputStyle.PRETTY);
@ -190,13 +262,13 @@ public class TerminologyCache {
ValueSet vsc = getVSEssense(vs); ValueSet vsc = getVSEssense(vs);
for (ConceptSetComponent inc : vs.getCompose().getInclude()) for (ConceptSetComponent inc : vs.getCompose().getInclude())
if (inc.hasSystem()) if (inc.hasSystem())
ct.setName(getNameForSystem(inc.getSystem())); ct.setName(inc.getSystem());
for (ConceptSetComponent inc : vs.getCompose().getExclude()) for (ConceptSetComponent inc : vs.getCompose().getExclude())
if (inc.hasSystem()) if (inc.hasSystem())
ct.setName(getNameForSystem(inc.getSystem())); ct.setName(inc.getSystem());
for (ValueSetExpansionContainsComponent inc : vs.getExpansion().getContains()) for (ValueSetExpansionContainsComponent inc : vs.getExpansion().getContains())
if (inc.hasSystem()) if (inc.hasSystem())
ct.setName(getNameForSystem(inc.getSystem())); ct.setName(inc.getSystem());
JsonParser json = new JsonParser(); JsonParser json = new JsonParser();
json.setOutputStyle(OutputStyle.PRETTY); json.setOutputStyle(OutputStyle.PRETTY);
try { try {
@ -208,33 +280,7 @@ public class TerminologyCache {
return ct; return ct;
} }
private String getNameForSystem(String system) {
if (system.equals("http://snomed.info/sct"))
return "snomed";
if (system.equals("http://www.nlm.nih.gov/research/umls/rxnorm"))
return "rxnorm";
if (system.equals("http://loinc.org"))
return "loinc";
if (system.equals("http://unitsofmeasure.org"))
return "ucum";
if (system.startsWith("http://hl7.org/fhir/sid/"))
return system.substring(24).replace("/", "");
if (system.startsWith("urn:iso:std:iso:"))
return "iso"+system.substring(16).replace(":", "");
if (system.startsWith("http://terminology.hl7.org/CodeSystem/"))
return system.substring(38).replace("/", "");
if (system.startsWith("http://hl7.org/fhir/"))
return system.substring(20).replace("/", "");
if (system.equals("urn:ietf:bcp:47"))
return "lang";
if (system.equals("urn:ietf:bcp:13"))
return "mimetypes";
if (system.equals("urn:iso:std:iso:11073:10101"))
return "11073";
if (system.equals("http://dicom.nema.org/resources/ontology/DCM"))
return "dicom";
return system.replace("/", "_").replace(":", "_").replace("?", "X").replace("#", "X");
}
public NamedCache getNamedCache(CacheToken cacheToken) { public NamedCache getNamedCache(CacheToken cacheToken) {
NamedCache nc = caches.get(cacheToken.name); NamedCache nc = caches.get(cacheToken.name);
@ -520,7 +566,7 @@ public class TerminologyCache {
public void removeCS(String url) { public void removeCS(String url) {
synchronized (lock) { synchronized (lock) {
String name = getNameForSystem(url); String name = getSystemNameKeyGenerator().getNameForSystem(url);
if (caches.containsKey(name)) { if (caches.containsKey(name)) {
caches.remove(name); caches.remove(name);
} }

View File

@ -217,8 +217,17 @@ public class QuestionnaireRenderer extends TerminologyRenderer {
} }
private String getSDCLink(String path) { private String getSDCLink(String path) {
if (Utilities.isAbsoluteUrl(path)) {
StructureDefinition sd = context.getContext().fetchResource(StructureDefinition.class, path);
if (sd != null) {
return sd.getUserString("path");
} else {
return path.replace("StructureDefinition/", "StructureDefinition-")+".html";
}
} else {
return Utilities.pathURL("http://hl7.org/fhir/uv/sdc", path); // for now? return Utilities.pathURL("http://hl7.org/fhir/uv/sdc", path); // for now?
} }
}
private boolean renderTreeItem(HierarchicalTableGenerator gen, List<Row> rows, Questionnaire q, QuestionnaireItemComponent i, boolean hasFlags) throws IOException { private boolean renderTreeItem(HierarchicalTableGenerator gen, List<Row> rows, Questionnaire q, QuestionnaireItemComponent i, boolean hasFlags) throws IOException {
Row r = gen.new Row(); Row r = gen.new Row();
@ -254,7 +263,7 @@ public class QuestionnaireRenderer extends TerminologyRenderer {
flags.addPiece(gen.new Piece(getSDCLink("StructureDefinition-sdc-questionnaire-optionalDisplay.html"), null, "Is optional to display").addHtml(new XhtmlNode(NodeType.Element, "img").attribute("src", Utilities.path(context.getLocalPrefix(), "icon-qi-optional.png")))); flags.addPiece(gen.new Piece(getSDCLink("StructureDefinition-sdc-questionnaire-optionalDisplay.html"), null, "Is optional to display").addHtml(new XhtmlNode(NodeType.Element, "img").attribute("src", Utilities.path(context.getLocalPrefix(), "icon-qi-optional.png"))));
} }
if (i.hasExtension("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observationLinkPeriod")) { if (i.hasExtension("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observationLinkPeriod")) {
flags.addPiece(gen.new Piece(getSDCLink("StructureDefinition-sdc-questionnaire-observationLinkPeriod"), null, "Is linked to an observation").addHtml(new XhtmlNode(NodeType.Element, "img").attribute("src", Utilities.path(context.getLocalPrefix(), "icon-qi-observation.png")))); flags.addPiece(gen.new Piece(getSDCLink("StructureDefinition-sdc-questionnaire-observationLinkPeriod.html"), null, "Is linked to an observation").addHtml(new XhtmlNode(NodeType.Element, "img").attribute("src", Utilities.path(context.getLocalPrefix(), "icon-qi-observation.png"))));
} }
if (i.hasExtension("http://hl7.org/fhir/StructureDefinition/questionnaire-choiceOrientation")) { if (i.hasExtension("http://hl7.org/fhir/StructureDefinition/questionnaire-choiceOrientation")) {
String code = ToolingExtensions.readStringExtension(i, "http://hl7.org/fhir/StructureDefinition/questionnaire-choiceOrientation"); String code = ToolingExtensions.readStringExtension(i, "http://hl7.org/fhir/StructureDefinition/questionnaire-choiceOrientation");
@ -263,7 +272,7 @@ public class QuestionnaireRenderer extends TerminologyRenderer {
if (i.hasExtension("http://hl7.org/fhir/StructureDefinition/questionnaire-displayCategory")) { if (i.hasExtension("http://hl7.org/fhir/StructureDefinition/questionnaire-displayCategory")) {
CodeableConcept cc = i.getExtensionByUrl("http://hl7.org/fhir/StructureDefinition/questionnaire-displayCategory").getValueCodeableConcept(); CodeableConcept cc = i.getExtensionByUrl("http://hl7.org/fhir/StructureDefinition/questionnaire-displayCategory").getValueCodeableConcept();
String code = cc.getCode("http://hl7.org/fhir/questionnaire-display-category"); String code = cc.getCode("http://hl7.org/fhir/questionnaire-display-category");
flags.addPiece(gen.new Piece(getSDCLink("StructureDefinition-sdc-questionnaire-displayCategory"), null, "Category: "+code).addHtml(new XhtmlNode(NodeType.Element, "img").attribute("src", Utilities.path(context.getLocalPrefix(), "icon-qi-"+code+".png")))); flags.addPiece(gen.new Piece(getSDCLink("StructureDefinition-sdc-questionnaire-displayCategory.html"), null, "Category: "+code).addHtml(new XhtmlNode(NodeType.Element, "img").attribute("src", Utilities.path(context.getLocalPrefix(), "icon-qi-"+code+".png"))));
} }
} }
Cell defn = gen.new Cell(); Cell defn = gen.new Cell();
@ -678,7 +687,7 @@ public class QuestionnaireRenderer extends TerminologyRenderer {
if (ToolingExtensions.readBoolExtension(i, "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-isSubject")) { if (ToolingExtensions.readBoolExtension(i, "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-isSubject")) {
hasFlag = true; hasFlag = true;
flags.ah("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-isSubject", "Can change the subject of the questionnaire").img(Utilities.path(context.getLocalPrefix(), "icon-qi-subject.png"), "icon"); flags.ah(getSDCLink("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-isSubject"), "Can change the subject of the questionnaire").img(Utilities.path(context.getLocalPrefix(), "icon-qi-subject.png"), "icon");
} }
if (ToolingExtensions.readBoolExtension(i, "http://hl7.org/fhir/StructureDefinition/questionnaire-hidden")) { if (ToolingExtensions.readBoolExtension(i, "http://hl7.org/fhir/StructureDefinition/questionnaire-hidden")) {
hasFlag = true; hasFlag = true;
@ -687,17 +696,17 @@ public class QuestionnaireRenderer extends TerminologyRenderer {
} }
if (ToolingExtensions.readBoolExtension(i, "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-optionalDisplay")) { if (ToolingExtensions.readBoolExtension(i, "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-optionalDisplay")) {
hasFlag = true; hasFlag = true;
flags.ah("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-optionalDisplay", "Is optional to display").img(Utilities.path(context.getLocalPrefix(), "icon-qi-optional.png"), "icon"); flags.ah(getSDCLink("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-optionalDisplay"), "Is optional to display").img(Utilities.path(context.getLocalPrefix(), "icon-qi-optional.png"), "icon");
} }
if (i.hasExtension("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observationLinkPeriod")) { if (i.hasExtension("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observationLinkPeriod")) {
hasFlag = true; hasFlag = true;
flags.ah("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observationLinkPeriod", "Is linked to an observation").img(Utilities.path(context.getLocalPrefix(), "icon-qi-observation.png"), "icon"); flags.ah(getSDCLink("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observationLinkPeriod"), "Is linked to an observation").img(Utilities.path(context.getLocalPrefix(), "icon-qi-observation.png"), "icon");
} }
if (i.hasExtension("http://hl7.org/fhir/StructureDefinition/questionnaire-displayCategory")) { if (i.hasExtension("http://hl7.org/fhir/StructureDefinition/questionnaire-displayCategory")) {
CodeableConcept cc = i.getExtensionByUrl("http://hl7.org/fhir/StructureDefinition/questionnaire-displayCategory").getValueCodeableConcept(); CodeableConcept cc = i.getExtensionByUrl("http://hl7.org/fhir/StructureDefinition/questionnaire-displayCategory").getValueCodeableConcept();
String code = cc.getCode("http://hl7.org/fhir/questionnaire-display-category"); String code = cc.getCode("http://hl7.org/fhir/questionnaire-display-category");
hasFlag = true; hasFlag = true;
flags.ah("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-displayCategory", "Category: "+code).img(Utilities.path(context.getLocalPrefix(), "icon-qi-"+code+".png"), "icon"); flags.ah(getSDCLink("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-displayCategory"), "Category: "+code).img(Utilities.path(context.getLocalPrefix(), "icon-qi-"+code+".png"), "icon");
} }
if (i.hasMaxLength()) { if (i.hasMaxLength()) {
@ -984,7 +993,7 @@ public class QuestionnaireRenderer extends TerminologyRenderer {
} }
if (qi.hasExtension("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observationLinkPeriod")) { if (qi.hasExtension("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observationLinkPeriod")) {
XhtmlNode tr = tbl.tr(); XhtmlNode tr = tbl.tr();
tr.td().ah("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observationLinkPeriod").tx("Observation Link Period"); tr.td().ah(getSDCLink("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observationLinkPeriod")).tx("Observation Link Period");
render(tr.td(), qi.getExtensionByUrl("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observationLinkPeriod").getValue()); render(tr.td(), qi.getExtensionByUrl("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observationLinkPeriod").getValue());
} }

View File

@ -440,7 +440,7 @@ public class QuestionnaireResponseRenderer extends ResourceRenderer {
// //
// if (ToolingExtensions.readBoolExtension(i, "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-QuestionnaireResponse-isSubject")) { // if (ToolingExtensions.readBoolExtension(i, "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-QuestionnaireResponse-isSubject")) {
// hasFlag = true; // hasFlag = true;
// flags.ah("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-QuestionnaireResponse-isSubject", "Can change the subject of the QuestionnaireResponse").img(Utilities.path(context.getLocalPrefix(), "icon-qi-subject.png")); // flags.ah(getSDCLink("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-QuestionnaireResponse-isSubject", "Can change the subject of the QuestionnaireResponse").img(Utilities.path(context.getLocalPrefix(), "icon-qi-subject.png"));
// } // }
// if (ToolingExtensions.readBoolExtension(i, "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse-hidden")) { // if (ToolingExtensions.readBoolExtension(i, "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse-hidden")) {
// hasFlag = true; // hasFlag = true;
@ -449,17 +449,17 @@ public class QuestionnaireResponseRenderer extends ResourceRenderer {
// } // }
// if (ToolingExtensions.readBoolExtension(i, "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-QuestionnaireResponse-optionalDisplay")) { // if (ToolingExtensions.readBoolExtension(i, "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-QuestionnaireResponse-optionalDisplay")) {
// hasFlag = true; // hasFlag = true;
// flags.ah("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-QuestionnaireResponse-optionalDisplay", "Is optional to display").img(Utilities.path(context.getLocalPrefix(), "icon-qi-optional.png")); // flags.ah(getSDCLink("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-QuestionnaireResponse-optionalDisplay", "Is optional to display").img(Utilities.path(context.getLocalPrefix(), "icon-qi-optional.png"));
// } // }
// if (i.hasExtension("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-QuestionnaireResponse-observationLinkPeriod")) { // if (i.hasExtension("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-QuestionnaireResponse-observationLinkPeriod")) {
// hasFlag = true; // hasFlag = true;
// flags.ah("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-QuestionnaireResponse-observationLinkPeriod", "Is linked to an observation").img(Utilities.path(context.getLocalPrefix(), "icon-qi-observation.png")); // flags.ah(getSDCLink("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-QuestionnaireResponse-observationLinkPeriod", "Is linked to an observation").img(Utilities.path(context.getLocalPrefix(), "icon-qi-observation.png"));
// } // }
// if (i.hasExtension("http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse-displayCategory")) { // if (i.hasExtension("http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse-displayCategory")) {
// CodeableConcept cc = i.getExtensionByUrl("http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse-displayCategory").getValueCodeableConcept(); // CodeableConcept cc = i.getExtensionByUrl("http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse-displayCategory").getValueCodeableConcept();
// String code = cc.getCode("http://hl7.org/fhir/QuestionnaireResponse-display-category"); // String code = cc.getCode("http://hl7.org/fhir/QuestionnaireResponse-display-category");
// hasFlag = true; // hasFlag = true;
// flags.ah("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-QuestionnaireResponse-displayCategory", "Category: "+code).img(Utilities.path(context.getLocalPrefix(), "icon-qi-"+code+".png")); // flags.ah(getSDCLink("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-QuestionnaireResponse-displayCategory", "Category: "+code).img(Utilities.path(context.getLocalPrefix(), "icon-qi-"+code+".png"));
// } // }
// //
// if (i.hasMaxLength()) { // if (i.hasMaxLength()) {

View File

@ -0,0 +1,8 @@
package org.hl7.fhir.r4b.context;
import org.hl7.fhir.utilities.validation.ValidationOptions;
public class CacheTestUtils {
public static final ValidationOptions validationOptions = new ValidationOptions().guessSystem().setVersionFlexible(false);
}

View File

@ -0,0 +1,68 @@
package org.hl7.fhir.r4b.context;
import org.hl7.fhir.r4b.model.Coding;
import org.hl7.fhir.r4b.model.ValueSet;
import org.hl7.fhir.utilities.tests.ResourceLoaderTests;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import java.io.IOException;
import java.net.URISyntaxException;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class TerminologyCacheTests implements ResourceLoaderTests {
private TerminologyCache createTerminologyCache() throws IOException {
Object lock = new Object();
TerminologyCache terminologyCache = new TerminologyCache(lock, null);
return terminologyCache;
}
@ParameterizedTest
@CsvSource({
"http://terminology.hl7.org/CodeSystem/id,id",
"http://hl7.org/fhir/id,id",
"http://hl7.org/fhir/sid/id,id",
"http://www.nlm.nih.gov/research/umls/rxnorm,rxnorm",
"http://snomed.info/sct,snomed",
"http://www.nlm.nih.gov/research/umls/rxnorm,rxnorm",
"http://loinc.org,loinc",
"http://unitsofmeasure.org,ucum",
"urn:iso:std:iso:id,isoid",
"urn:ietf:bcp:47,lang",
"urn:ietf:bcp:13,mimetypes",
"urn:iso:std:iso:11073:10101,11073",
"my://random/system?with#chars,my___random_systemXwithXchars",
"http://dicom.nema.org/resources/ontology/DCM,dicom"
})
public void testCacheTokenGeneration(String system, String expectedName) throws IOException, URISyntaxException {
TerminologyCache terminologyCache = createTerminologyCache();
ValueSet valueSet = new ValueSet();
{
Coding coding = new Coding();
coding.setSystem(system);
TerminologyCache.CacheToken cacheToken = terminologyCache.generateValidationToken(CacheTestUtils.validationOptions,
coding, valueSet);
assertEquals(expectedName, cacheToken.getName());
}
{
Coding coding = new Coding();
coding.setSystem(system + "|dummyVersion");
TerminologyCache.CacheToken cacheToken = terminologyCache.generateValidationToken(CacheTestUtils.validationOptions,
coding, valueSet);
assertEquals(expectedName + "_dummyVersion", cacheToken.getName());
}
}
}

View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>ca.uhn.hapi.fhir</groupId> <groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>org.hl7.fhir.core</artifactId> <artifactId>org.hl7.fhir.core</artifactId>
<version>5.6.76-SNAPSHOT</version> <version>5.6.77-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -38,7 +38,6 @@ import java.io.IOException;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.util.*; import java.util.*;
import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@ -85,6 +84,9 @@ public class TerminologyCache {
private static final String CAPABILITY_STATEMENT_TITLE = ".capabilityStatement"; private static final String CAPABILITY_STATEMENT_TITLE = ".capabilityStatement";
private static final String TERMINOLOGY_CAPABILITIES_TITLE = ".terminologyCapabilities"; private static final String TERMINOLOGY_CAPABILITIES_TITLE = ".terminologyCapabilities";
private SystemNameKeyGenerator systemNameKeyGenerator = new SystemNameKeyGenerator();
public class CacheToken { public class CacheToken {
@Getter @Getter
private String name; private String name;
@ -96,13 +98,79 @@ public class TerminologyCache {
private boolean hasVersion; private boolean hasVersion;
public void setName(String n) { public void setName(String n) {
String systemName = getSystemNameKeyGenerator().getNameForSystem(n);
if (name == null) if (name == null)
name = n; name = systemName;
else if (!n.equals(name)) else if (!systemName.equals(name))
name = NAME_FOR_NO_SYSTEM; name = NAME_FOR_NO_SYSTEM;
} }
} }
protected SystemNameKeyGenerator getSystemNameKeyGenerator() {
return systemNameKeyGenerator;
}
public class SystemNameKeyGenerator {
public static final String SNOMED_SCT_CODESYSTEM_URL = "http://snomed.info/sct";
public static final String RXNORM_CODESYSTEM_URL = "http://www.nlm.nih.gov/research/umls/rxnorm";
public static final String LOINC_CODESYSTEM_URL = "http://loinc.org";
public static final String UCUM_CODESYSTEM_URL = "http://unitsofmeasure.org";
public static final String HL7_TERMINOLOGY_CODESYSTEM_BASE_URL = "http://terminology.hl7.org/CodeSystem/";
public static final String HL7_SID_CODESYSTEM_BASE_URL = "http://hl7.org/fhir/sid/";
public static final String HL7_FHIR_CODESYSTEM_BASE_URL = "http://hl7.org/fhir/";
public static final String ISO_CODESYSTEM_URN = "urn:iso:std:iso:";
public static final String LANG_CODESYSTEM_URN = "urn:ietf:bcp:47";
public static final String MIMETYPES_CODESYSTEM_URN = "urn:ietf:bcp:13";
public static final String _11073_CODESYSTEM_URN = "urn:iso:std:iso:11073:10101";
public static final String DICOM_CODESYSTEM_URL = "http://dicom.nema.org/resources/ontology/DCM";
public String getNameForSystem(String system) {
final int lastPipe = system.lastIndexOf('|');
final String systemBaseName = lastPipe == -1 ? system : system.substring(0,lastPipe);
final String systemVersion = lastPipe == -1 ? null : system.substring(lastPipe + 1);
if (systemBaseName.equals(SNOMED_SCT_CODESYSTEM_URL))
return getVersionedSystem("snomed", systemVersion);
if (systemBaseName.equals(RXNORM_CODESYSTEM_URL))
return getVersionedSystem("rxnorm", systemVersion);
if (systemBaseName.equals(LOINC_CODESYSTEM_URL))
return getVersionedSystem("loinc", systemVersion);
if (systemBaseName.equals(UCUM_CODESYSTEM_URL))
return getVersionedSystem("ucum", systemVersion);
if (systemBaseName.startsWith(HL7_SID_CODESYSTEM_BASE_URL))
return getVersionedSystem(normalizeBaseURL(HL7_SID_CODESYSTEM_BASE_URL, systemBaseName), systemVersion);
if (systemBaseName.equals(_11073_CODESYSTEM_URN))
return getVersionedSystem("11073", systemVersion);
if (systemBaseName.startsWith(ISO_CODESYSTEM_URN))
return getVersionedSystem("iso"+systemBaseName.substring(ISO_CODESYSTEM_URN.length()).replace(":", ""), systemVersion);
if (systemBaseName.startsWith(HL7_TERMINOLOGY_CODESYSTEM_BASE_URL))
return getVersionedSystem(normalizeBaseURL(HL7_TERMINOLOGY_CODESYSTEM_BASE_URL, systemBaseName), systemVersion);
if (systemBaseName.startsWith(HL7_FHIR_CODESYSTEM_BASE_URL))
return getVersionedSystem(normalizeBaseURL(HL7_FHIR_CODESYSTEM_BASE_URL, systemBaseName), systemVersion);
if (systemBaseName.equals(LANG_CODESYSTEM_URN))
return getVersionedSystem("lang", systemVersion);
if (systemBaseName.equals(MIMETYPES_CODESYSTEM_URN))
return getVersionedSystem("mimetypes", systemVersion);
if (systemBaseName.equals(DICOM_CODESYSTEM_URL))
return getVersionedSystem("dicom", systemVersion);
return getVersionedSystem(systemBaseName.replace("/", "_").replace(":", "_").replace("?", "X").replace("#", "X"), systemVersion);
}
public String normalizeBaseURL(String baseUrl, String fullUrl) {
return fullUrl.substring(baseUrl.length()).replace("/", "");
}
public String getVersionedSystem(String baseSystem, String version) {
if (version != null) {
return baseSystem + "_" + version;
}
return baseSystem;
}
}
private class CacheEntry { private class CacheEntry {
private String request; private String request;
private boolean persistent; private boolean persistent;
@ -185,7 +253,7 @@ public class TerminologyCache {
public CacheToken generateValidationToken(ValidationOptions options, Coding code, ValueSet vs) { public CacheToken generateValidationToken(ValidationOptions options, Coding code, ValueSet vs) {
CacheToken ct = new CacheToken(); CacheToken ct = new CacheToken();
if (code.hasSystem()) { if (code.hasSystem()) {
ct.name = getNameForSystem(code.getSystem()); ct.setName(code.getSystem());
ct.hasVersion = code.hasVersion(); ct.hasVersion = code.hasVersion();
} }
else else
@ -226,7 +294,7 @@ public class TerminologyCache {
CacheToken ct = new CacheToken(); CacheToken ct = new CacheToken();
for (Coding c : code.getCoding()) { for (Coding c : code.getCoding()) {
if (c.hasSystem()) { if (c.hasSystem()) {
ct.setName(getNameForSystem(c.getSystem())); ct.setName(c.getSystem());
ct.hasVersion = c.hasVersion(); ct.hasVersion = c.hasVersion();
} }
} }
@ -287,53 +355,31 @@ public class TerminologyCache {
if (vs != null) { if (vs != null) {
for (ConceptSetComponent inc : vs.getCompose().getInclude()) { for (ConceptSetComponent inc : vs.getCompose().getInclude()) {
if (inc.hasSystem()) { if (inc.hasSystem()) {
ct.setName(getNameForSystem(inc.getSystem())); ct.setName(inc.getSystem());
ct.hasVersion = inc.hasVersion(); ct.hasVersion = inc.hasVersion();
} }
} }
for (ConceptSetComponent inc : vs.getCompose().getExclude()) { for (ConceptSetComponent inc : vs.getCompose().getExclude()) {
if (inc.hasSystem()) { if (inc.hasSystem()) {
ct.setName(getNameForSystem(inc.getSystem())); ct.setName(inc.getSystem());
ct.hasVersion = inc.hasVersion(); ct.hasVersion = inc.hasVersion();
} }
} }
for (ValueSetExpansionContainsComponent inc : vs.getExpansion().getContains()) { for (ValueSetExpansionContainsComponent inc : vs.getExpansion().getContains()) {
if (inc.hasSystem()) { if (inc.hasSystem()) {
ct.setName(getNameForSystem(inc.getSystem())); ct.setName(inc.getSystem());
ct.hasVersion = inc.hasVersion(); ct.hasVersion = inc.hasVersion();
} }
} }
} }
} }
private String getNameForSystem(String system) { private String normalizeSystemPath(String path) {
if (system.equals("http://snomed.info/sct")) return path.replace("/", "").replace('|','X');
return "snomed";
if (system.equals("http://www.nlm.nih.gov/research/umls/rxnorm"))
return "rxnorm";
if (system.equals("http://loinc.org"))
return "loinc";
if (system.equals("http://unitsofmeasure.org"))
return "ucum";
if (system.startsWith("http://hl7.org/fhir/sid/"))
return system.substring(24).replace("/", "");
if (system.startsWith("urn:iso:std:iso:"))
return "iso"+system.substring(16).replace(":", "");
if (system.startsWith("http://terminology.hl7.org/CodeSystem/"))
return system.substring(38).replace("/", "");
if (system.startsWith("http://hl7.org/fhir/"))
return system.substring(20).replace("/", "");
if (system.equals("urn:ietf:bcp:47"))
return "lang";
if (system.equals("urn:ietf:bcp:13"))
return "mimetypes";
if (system.equals("urn:iso:std:iso:11073:10101"))
return "11073";
if (system.equals("http://dicom.nema.org/resources/ontology/DCM"))
return "dicom";
return system.replace("/", "_").replace(":", "_").replace("?", "X").replace("#", "X");
} }
public NamedCache getNamedCache(CacheToken cacheToken) { public NamedCache getNamedCache(CacheToken cacheToken) {
final String cacheName = cacheToken.name == null ? "null" : cacheToken.name; final String cacheName = cacheToken.name == null ? "null" : cacheToken.name;
@ -687,7 +733,7 @@ public class TerminologyCache {
public void removeCS(String url) { public void removeCS(String url) {
synchronized (lock) { synchronized (lock) {
String name = getNameForSystem(url); String name = getSystemNameKeyGenerator().getNameForSystem(url);
if (caches.containsKey(name)) { if (caches.containsKey(name)) {
caches.remove(name); caches.remove(name);
} }

View File

@ -30,7 +30,7 @@ package org.hl7.fhir.r5.formats;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot

View File

@ -31,7 +31,7 @@ package org.hl7.fhir.r5.formats;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot

View File

@ -30,7 +30,7 @@ package org.hl7.fhir.r5.formats;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
@ -1340,7 +1340,9 @@ A coverage may only be responsible for specific types of charges, and the sequen
protected CodeableConcept currency; protected CodeableConcept currency;
/** /**
* The calculated account balances - these are calculated and processed by the finance system. The balances with a `term` that is not current are usually generated/updated by an invoicing or similar process. * The calculated account balances - these are calculated and processed by the finance system.
The balances with a `term` that is not current are usually generated/updated by an invoicing or similar process.
*/ */
@Child(name = "balance", type = {}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) @Child(name = "balance", type = {}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
@Description(shortDefinition="Calculated account balance(s)", formalDefinition="The calculated account balances - these are calculated and processed by the finance system.\r\rThe balances with a `term` that is not current are usually generated/updated by an invoicing or similar process." ) @Description(shortDefinition="Calculated account balance(s)", formalDefinition="The calculated account balances - these are calculated and processed by the finance system.\r\rThe balances with a `term` that is not current are usually generated/updated by an invoicing or similar process." )
@ -1899,7 +1901,9 @@ A coverage may only be responsible for specific types of charges, and the sequen
} }
/** /**
* @return {@link #balance} (The calculated account balances - these are calculated and processed by the finance system. The balances with a `term` that is not current are usually generated/updated by an invoicing or similar process.) * @return {@link #balance} (The calculated account balances - these are calculated and processed by the finance system.
The balances with a `term` that is not current are usually generated/updated by an invoicing or similar process.)
*/ */
public List<AccountBalanceComponent> getBalance() { public List<AccountBalanceComponent> getBalance() {
if (this.balance == null) if (this.balance == null)

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
@ -114,6 +114,10 @@ public class ActivityDefinition extends MetadataResource {
* A record of a non-patient specific request for a medication, substance, device, certain types of biologically derived product, and nutrition product used in the healthcare setting. * A record of a non-patient specific request for a medication, substance, device, certain types of biologically derived product, and nutrition product used in the healthcare setting.
*/ */
SUPPLYREQUEST, SUPPLYREQUEST,
/**
* A task to be performed.
*/
TASK,
/** /**
* An authorization for the provision of glasses and/or contact lenses to a patient. * An authorization for the provision of glasses and/or contact lenses to a patient.
*/ */
@ -155,6 +159,8 @@ public class ActivityDefinition extends MetadataResource {
return SERVICEREQUEST; return SERVICEREQUEST;
if ("SupplyRequest".equals(codeString)) if ("SupplyRequest".equals(codeString))
return SUPPLYREQUEST; return SUPPLYREQUEST;
if ("Task".equals(codeString))
return TASK;
if ("VisionPrescription".equals(codeString)) if ("VisionPrescription".equals(codeString))
return VISIONPRESCRIPTION; return VISIONPRESCRIPTION;
if (Configuration.isAcceptInvalidEnums()) if (Configuration.isAcceptInvalidEnums())
@ -179,6 +185,7 @@ public class ActivityDefinition extends MetadataResource {
case REQUESTORCHESTRATION: return "RequestOrchestration"; case REQUESTORCHESTRATION: return "RequestOrchestration";
case SERVICEREQUEST: return "ServiceRequest"; case SERVICEREQUEST: return "ServiceRequest";
case SUPPLYREQUEST: return "SupplyRequest"; case SUPPLYREQUEST: return "SupplyRequest";
case TASK: return "Task";
case VISIONPRESCRIPTION: return "VisionPrescription"; case VISIONPRESCRIPTION: return "VisionPrescription";
case NULL: return null; case NULL: return null;
default: return "?"; default: return "?";
@ -201,6 +208,7 @@ public class ActivityDefinition extends MetadataResource {
case REQUESTORCHESTRATION: return "http://hl7.org/fhir/fhir-types"; case REQUESTORCHESTRATION: return "http://hl7.org/fhir/fhir-types";
case SERVICEREQUEST: return "http://hl7.org/fhir/fhir-types"; case SERVICEREQUEST: return "http://hl7.org/fhir/fhir-types";
case SUPPLYREQUEST: return "http://hl7.org/fhir/fhir-types"; case SUPPLYREQUEST: return "http://hl7.org/fhir/fhir-types";
case TASK: return "http://hl7.org/fhir/fhir-types";
case VISIONPRESCRIPTION: return "http://hl7.org/fhir/fhir-types"; case VISIONPRESCRIPTION: return "http://hl7.org/fhir/fhir-types";
case NULL: return null; case NULL: return null;
default: return "?"; default: return "?";
@ -223,6 +231,7 @@ public class ActivityDefinition extends MetadataResource {
case REQUESTORCHESTRATION: return "A set of related requests that can be used to capture intended activities that have inter-dependencies such as \"give this medication after that one\"."; case REQUESTORCHESTRATION: return "A set of related requests that can be used to capture intended activities that have inter-dependencies such as \"give this medication after that one\".";
case SERVICEREQUEST: return "A record of a request for service such as diagnostic investigations, treatments, or operations to be performed."; case SERVICEREQUEST: return "A record of a request for service such as diagnostic investigations, treatments, or operations to be performed.";
case SUPPLYREQUEST: return "A record of a non-patient specific request for a medication, substance, device, certain types of biologically derived product, and nutrition product used in the healthcare setting."; case SUPPLYREQUEST: return "A record of a non-patient specific request for a medication, substance, device, certain types of biologically derived product, and nutrition product used in the healthcare setting.";
case TASK: return "A task to be performed.";
case VISIONPRESCRIPTION: return "An authorization for the provision of glasses and/or contact lenses to a patient."; case VISIONPRESCRIPTION: return "An authorization for the provision of glasses and/or contact lenses to a patient.";
case NULL: return null; case NULL: return null;
default: return "?"; default: return "?";
@ -245,6 +254,7 @@ public class ActivityDefinition extends MetadataResource {
case REQUESTORCHESTRATION: return "RequestOrchestration"; case REQUESTORCHESTRATION: return "RequestOrchestration";
case SERVICEREQUEST: return "ServiceRequest"; case SERVICEREQUEST: return "ServiceRequest";
case SUPPLYREQUEST: return "SupplyRequest"; case SUPPLYREQUEST: return "SupplyRequest";
case TASK: return "Task";
case VISIONPRESCRIPTION: return "VisionPrescription"; case VISIONPRESCRIPTION: return "VisionPrescription";
case NULL: return null; case NULL: return null;
default: return "?"; default: return "?";
@ -287,6 +297,8 @@ public class ActivityDefinition extends MetadataResource {
return RequestResourceTypes.SERVICEREQUEST; return RequestResourceTypes.SERVICEREQUEST;
if ("SupplyRequest".equals(codeString)) if ("SupplyRequest".equals(codeString))
return RequestResourceTypes.SUPPLYREQUEST; return RequestResourceTypes.SUPPLYREQUEST;
if ("Task".equals(codeString))
return RequestResourceTypes.TASK;
if ("VisionPrescription".equals(codeString)) if ("VisionPrescription".equals(codeString))
return RequestResourceTypes.VISIONPRESCRIPTION; return RequestResourceTypes.VISIONPRESCRIPTION;
throw new IllegalArgumentException("Unknown RequestResourceTypes code '"+codeString+"'"); throw new IllegalArgumentException("Unknown RequestResourceTypes code '"+codeString+"'");
@ -329,6 +341,8 @@ public class ActivityDefinition extends MetadataResource {
return new Enumeration<RequestResourceTypes>(this, RequestResourceTypes.SERVICEREQUEST); return new Enumeration<RequestResourceTypes>(this, RequestResourceTypes.SERVICEREQUEST);
if ("SupplyRequest".equals(codeString)) if ("SupplyRequest".equals(codeString))
return new Enumeration<RequestResourceTypes>(this, RequestResourceTypes.SUPPLYREQUEST); return new Enumeration<RequestResourceTypes>(this, RequestResourceTypes.SUPPLYREQUEST);
if ("Task".equals(codeString))
return new Enumeration<RequestResourceTypes>(this, RequestResourceTypes.TASK);
if ("VisionPrescription".equals(codeString)) if ("VisionPrescription".equals(codeString))
return new Enumeration<RequestResourceTypes>(this, RequestResourceTypes.VISIONPRESCRIPTION); return new Enumeration<RequestResourceTypes>(this, RequestResourceTypes.VISIONPRESCRIPTION);
throw new FHIRException("Unknown RequestResourceTypes code '"+codeString+"'"); throw new FHIRException("Unknown RequestResourceTypes code '"+codeString+"'");
@ -364,6 +378,8 @@ public class ActivityDefinition extends MetadataResource {
return "ServiceRequest"; return "ServiceRequest";
if (code == RequestResourceTypes.SUPPLYREQUEST) if (code == RequestResourceTypes.SUPPLYREQUEST)
return "SupplyRequest"; return "SupplyRequest";
if (code == RequestResourceTypes.TASK)
return "Task";
if (code == RequestResourceTypes.VISIONPRESCRIPTION) if (code == RequestResourceTypes.VISIONPRESCRIPTION)
return "VisionPrescription"; return "VisionPrescription";
return "?"; return "?";

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
@ -1506,7 +1506,9 @@ public class Appointment extends DomainResource {
protected BooleanType sunday; protected BooleanType sunday;
/** /**
* The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more. e.g. For recurring every second week this interval would be 2, or every third week the interval would be 3. * The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more.
e.g. For recurring every second week this interval would be 2, or every third week the interval would be 3.
*/ */
@Child(name = "weekInterval", type = {PositiveIntType.class}, order=8, min=0, max=1, modifier=false, summary=false) @Child(name = "weekInterval", type = {PositiveIntType.class}, order=8, min=0, max=1, modifier=false, summary=false)
@Description(shortDefinition="Recurs every nth week", formalDefinition="The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more.\r\re.g. For recurring every second week this interval would be 2, or every third week the interval would be 3." ) @Description(shortDefinition="Recurs every nth week", formalDefinition="The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more.\r\re.g. For recurring every second week this interval would be 2, or every third week the interval would be 3." )
@ -1837,7 +1839,9 @@ public class Appointment extends DomainResource {
} }
/** /**
* @return {@link #weekInterval} (The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more. e.g. For recurring every second week this interval would be 2, or every third week the interval would be 3.). This is the underlying object with id, value and extensions. The accessor "getWeekInterval" gives direct access to the value * @return {@link #weekInterval} (The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more.
e.g. For recurring every second week this interval would be 2, or every third week the interval would be 3.). This is the underlying object with id, value and extensions. The accessor "getWeekInterval" gives direct access to the value
*/ */
public PositiveIntType getWeekIntervalElement() { public PositiveIntType getWeekIntervalElement() {
if (this.weekInterval == null) if (this.weekInterval == null)
@ -1857,7 +1861,9 @@ public class Appointment extends DomainResource {
} }
/** /**
* @param value {@link #weekInterval} (The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more. e.g. For recurring every second week this interval would be 2, or every third week the interval would be 3.). This is the underlying object with id, value and extensions. The accessor "getWeekInterval" gives direct access to the value * @param value {@link #weekInterval} (The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more.
e.g. For recurring every second week this interval would be 2, or every third week the interval would be 3.). This is the underlying object with id, value and extensions. The accessor "getWeekInterval" gives direct access to the value
*/ */
public AppointmentRecurrenceTemplateWeeklyTemplateComponent setWeekIntervalElement(PositiveIntType value) { public AppointmentRecurrenceTemplateWeeklyTemplateComponent setWeekIntervalElement(PositiveIntType value) {
this.weekInterval = value; this.weekInterval = value;
@ -1865,14 +1871,18 @@ public class Appointment extends DomainResource {
} }
/** /**
* @return The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more. e.g. For recurring every second week this interval would be 2, or every third week the interval would be 3. * @return The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more.
e.g. For recurring every second week this interval would be 2, or every third week the interval would be 3.
*/ */
public int getWeekInterval() { public int getWeekInterval() {
return this.weekInterval == null || this.weekInterval.isEmpty() ? 0 : this.weekInterval.getValue(); return this.weekInterval == null || this.weekInterval.isEmpty() ? 0 : this.weekInterval.getValue();
} }
/** /**
* @param value The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more. e.g. For recurring every second week this interval would be 2, or every third week the interval would be 3. * @param value The interval defines if the recurrence is every nth week. The default is every week, so it is expected that this value will be 2 or more.
e.g. For recurring every second week this interval would be 2, or every third week the interval would be 3.
*/ */
public AppointmentRecurrenceTemplateWeeklyTemplateComponent setWeekInterval(int value) { public AppointmentRecurrenceTemplateWeeklyTemplateComponent setWeekInterval(int value) {
if (this.weekInterval == null) if (this.weekInterval == null)

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,12 +29,11 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.math.*;
import org.hl7.fhir.utilities.Utilities; import org.hl7.fhir.utilities.Utilities;
import org.hl7.fhir.r5.model.Enumerations.*; import org.hl7.fhir.r5.model.Enumerations.*;
import org.hl7.fhir.instance.model.api.IBaseBackboneElement; import org.hl7.fhir.instance.model.api.IBaseBackboneElement;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -30,7 +30,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR v5.0.0-ballot // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
@ -41,6 +41,6 @@ public class Constants {
public final static String VERSION = "5.0.0-ballot"; public final static String VERSION = "5.0.0-ballot";
public final static String VERSION_MM = "5.0"; public final static String VERSION_MM = "5.0";
public final static String DATE = "Mon, Sep 5, 2022 20:11+1000"; public final static String DATE = "Sat, Nov 5, 2022 10:47+1100";
public final static String URI_REGEX = "((http|https)://([A-Za-z0-9\\\\\\.\\:\\%\\$]*\\/)*)?(Account|ActivityDefinition|ActorDefinition|AdministrableProductDefinition|AdverseEvent|AllergyIntolerance|Appointment|AppointmentResponse|ArtifactAssessment|AuditEvent|Basic|Binary|BiologicallyDerivedProduct|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|DeviceDefinition|DeviceDispense|DeviceMetric|DeviceRequest|DeviceUsage|DiagnosticReport|DocumentManifest|DocumentReference|Encounter|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|InventoryReport|Invoice|Library|Linkage|List|Location|ManufacturedItemDefinition|Measure|MeasureReport|Medication|MedicationAdministration|MedicationDispense|MedicationKnowledge|MedicationRequest|MedicationUsage|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|RequestGroup|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|TestReport|TestScript|Transport|ValueSet|VerificationResult|VisionPrescription)\\/[A-Za-z0-9\\-\\.]{1,64}(\\/_history\\/[A-Za-z0-9\\-\\.]{1,64})?"; public final static String URI_REGEX = "((http|https)://([A-Za-z0-9\\\\\\.\\:\\%\\$]*\\/)*)?(Account|ActivityDefinition|ActorDefinition|AdministrableProductDefinition|AdverseEvent|AllergyIntolerance|Appointment|AppointmentResponse|ArtifactAssessment|AuditEvent|Basic|Binary|BiologicallyDerivedProduct|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|DeviceDefinition|DeviceDispense|DeviceMetric|DeviceRequest|DeviceUsage|DiagnosticReport|DocumentManifest|DocumentReference|Encounter|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|InventoryReport|Invoice|Library|Linkage|List|Location|ManufacturedItemDefinition|Measure|MeasureReport|Medication|MedicationAdministration|MedicationDispense|MedicationKnowledge|MedicationRequest|MedicationUsage|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|RequestGroup|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|TestReport|TestScript|Transport|ValueSet|VerificationResult|VisionPrescription)\\/[A-Za-z0-9\\-\\.]{1,64}(\\/_history\\/[A-Za-z0-9\\-\\.]{1,64})?";
} }

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
@ -2507,7 +2507,9 @@ public class Encounter extends DomainResource {
protected DateTimeType plannedEndDate; protected DateTimeType plannedEndDate;
/** /**
* Actual quantity of time the encounter lasted. This excludes the time during leaves of absence. When missing it is the time in between the start and end values. * Actual quantity of time the encounter lasted. This excludes the time during leaves of absence.
When missing it is the time in between the start and end values.
*/ */
@Child(name = "length", type = {Duration.class}, order=21, min=0, max=1, modifier=false, summary=false) @Child(name = "length", type = {Duration.class}, order=21, min=0, max=1, modifier=false, summary=false)
@Description(shortDefinition="Actual quantity of time the encounter lasted (less time absent)", formalDefinition="Actual quantity of time the encounter lasted. This excludes the time during leaves of absence.\r\rWhen missing it is the time in between the start and end values." ) @Description(shortDefinition="Actual quantity of time the encounter lasted (less time absent)", formalDefinition="Actual quantity of time the encounter lasted. This excludes the time during leaves of absence.\r\rWhen missing it is the time in between the start and end values." )
@ -3490,7 +3492,9 @@ public class Encounter extends DomainResource {
} }
/** /**
* @return {@link #length} (Actual quantity of time the encounter lasted. This excludes the time during leaves of absence. When missing it is the time in between the start and end values.) * @return {@link #length} (Actual quantity of time the encounter lasted. This excludes the time during leaves of absence.
When missing it is the time in between the start and end values.)
*/ */
public Duration getLength() { public Duration getLength() {
if (this.length == null) if (this.length == null)
@ -3506,7 +3510,9 @@ public class Encounter extends DomainResource {
} }
/** /**
* @param value {@link #length} (Actual quantity of time the encounter lasted. This excludes the time during leaves of absence. When missing it is the time in between the start and end values.) * @param value {@link #length} (Actual quantity of time the encounter lasted. This excludes the time during leaves of absence.
When missing it is the time in between the start and end values.)
*/ */
public Encounter setLength(Duration value) { public Encounter setLength(Duration value) {
this.length = value; this.length = value;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import org.hl7.fhir.instance.model.api.*; import org.hl7.fhir.instance.model.api.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.r5.model;
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
*/ */
// Generated on Mon, Sep 5, 2022 20:11+1000 for FHIR vcurrent // Generated on Sat, Nov 5, 2022 10:47+1100 for FHIR v5.0.0-ballot
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;

Some files were not shown because too many files have changed in this diff Show More