Merge remote-tracking branch 'origin/master'

This commit is contained in:
Grahame Grieve 2024-11-19 23:00:12 +11:00
commit ed65199c3e
8 changed files with 410 additions and 344 deletions

View File

@ -57,6 +57,10 @@ To skip unit tests:
```
mvn -Dmaven.test.skip install
```
> **Note:** If you're on Windows and use PowerShell, The `-` needs to be escaped with a backtick (`)
> ```
> mvn `-Dmaven.test.skip install
> ```
To clean and rebuild the terminology server caches:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

@ -1,5 +1,5 @@
Locale,Coverage #,Coverage %
de,829,40%
de,829,39%
es,712,34%
ja,900,43%
nl,1986,96%
nl,1986,95%

1 Locale Coverage # Coverage %
2 de 829 40% 39%
3 es 712 34%
4 ja 900 43%
5 nl 1986 96% 95%

View File

@ -4949,7 +4949,15 @@ public class FHIRPathEngine {
private List<Base> funcToString(ExecutionContext context, List<Base> focus, ExpressionNode exp) {
List<Base> result = new ArrayList<Base>();
result.add(new StringType(convertToString(focus)).noExtensions());
for (Base item : focus) {
String value = convertToString(item);
if (value != null)
result.add(new StringType(value).noExtensions());
}
if (result.size() > 1) {
throw makeException(exp, I18nConstants.FHIRPATH_NO_COLLECTION, "toString", result.size());
}
return result;
}

View File

@ -4820,7 +4820,15 @@ public class FHIRPathEngine {
private List<Base> funcToString(ExecutionContext context, List<Base> focus, ExpressionNode exp) {
List<Base> result = new ArrayList<Base>();
result.add(new StringType(convertToString(focus)).noExtensions());
for (Base item : focus) {
String value = convertToString(item);
if (value != null)
result.add(new StringType(value).noExtensions());
}
if (result.size() > 1) {
throw makeException(exp, I18nConstants.FHIRPATH_NO_COLLECTION, "toString", result.size());
}
return result;
}

View File

@ -336,4 +336,23 @@ public class FHIRPathTests {
assertEquals(1, results.size());
assertEquals("123", results.get(0).toString());
}
@Test
public void testEvaluate_ToStringOnDateValue() {
Patient input = new Patient();
var dtv = new DateType("2024");
input.setBirthDateElement(dtv);
List<Base> results = fp.evaluate(input, "Patient.birthDate.toString()");
assertEquals(1, results.size());
assertEquals("2024", results.get(0).toString());
}
@Test
public void testEvaluate_ToStringOnExtensionOnlyValue() {
Patient input = new Patient();
var dtv = new DateType();
input.setBirthDateElement(dtv);
List<Base> results = fp.evaluate(input, "Patient.birthDate.toString()");
assertEquals(0, results.size());
}
}

View File

@ -4958,7 +4958,15 @@ public class FHIRPathEngine {
private List<Base> funcToString(ExecutionContext context, List<Base> focus, ExpressionNode exp) {
List<Base> result = new ArrayList<Base>();
result.add(new StringType(convertToString(focus)).noExtensions());
for (Base item : focus) {
String value = convertToString(item);
if (value != null)
result.add(new StringType(value).noExtensions());
}
if (result.size() > 1) {
throw makeException(exp, I18nConstants.FHIRPATH_NO_COLLECTION, "toString", result.size());
}
return result;
}

View File

@ -262,7 +262,7 @@ public class FHIRPathTests {
List<Element> expected = new ArrayList<Element>();
XMLUtil.getNamedChildren(test, "output", expected);
assertEquals(outcome.size(), expected.size(), String.format("Expected %d objects but found %d for expression %s", expected.size(), outcome.size(), expression));
assertEquals(expected.size(), outcome.size(), String.format("Expected %d objects but found %d for expression %s", expected.size(), outcome.size(), expression));
if ("false".equals(test.getAttribute("ordered"))) {
for (int i = 0; i < Math.min(outcome.size(), expected.size()); i++) {
String tn = outcome.get(i).fhirType();
@ -337,4 +337,23 @@ public class FHIRPathTests {
assertEquals(1, results.size());
assertEquals("123", results.get(0).toString());
}
@Test
public void testEvaluate_ToStringOnDateValue() {
Patient input = new Patient();
var dtv = new DateType("2024");
input.setBirthDateElement(dtv);
List<Base> results = fp.evaluate(input, "Patient.birthDate.toString()");
assertEquals(1, results.size());
assertEquals("2024", results.get(0).toString());
}
@Test
public void testEvaluate_ToStringOnExtensionOnlyValue() {
Patient input = new Patient();
var dtv = new DateType();
input.setBirthDateElement(dtv);
List<Base> results = fp.evaluate(input, "Patient.birthDate.toString()");
assertEquals(0, results.size());
}
}