Merge branch 'master' into loinc_loader_update

This commit is contained in:
jamesagnew 2018-03-30 08:29:14 -04:00
commit 817569228b
3 changed files with 155 additions and 10 deletions

View File

@ -2343,6 +2343,78 @@ public class FhirSystemDaoR4Test extends BaseJpaR4SystemTest {
}
@Test
public void testTransactionWithConditionalUpdateDoesntUpdateIfNoChange() {
Observation obs = new Observation();
obs.addIdentifier()
.setSystem("http://acme.org")
.setValue("ID1");
obs
.getCode()
.addCoding()
.setSystem("http://loinc.org")
.setCode("29463-7");
obs.setEffective(new DateTimeType("2011-09-03T11:13:00-04:00"));
obs.setValue(new Quantity()
.setValue(new BigDecimal("123.4"))
.setCode("kg")
.setSystem("http://unitsofmeasure.org")
.setUnit("kg"));
Bundle input = new Bundle();
input.setType(BundleType.TRANSACTION);
input
.addEntry()
.setFullUrl("urn:uuid:0001")
.setResource(obs)
.getRequest()
.setMethod(HTTPVerb.PUT)
.setUrl("Observation?identifier=http%3A%2F%2Facme.org|ID1");
Bundle output = mySystemDao.transaction(mySrd, input);
assertEquals(1, output.getEntry().size());
IdType id = new IdType(output.getEntry().get(0).getResponse().getLocation());
assertEquals("Observation", id.getResourceType());
assertEquals("1", id.getVersionIdPart());
/*
* Try again with same contents
*/
Observation obs2 = new Observation();
obs2.addIdentifier()
.setSystem("http://acme.org")
.setValue("ID1");
obs2
.getCode()
.addCoding()
.setSystem("http://loinc.org")
.setCode("29463-7");
obs2.setEffective(new DateTimeType("2011-09-03T11:13:00-04:00"));
obs2.setValue(new Quantity()
.setValue(new BigDecimal("123.4"))
.setCode("kg")
.setSystem("http://unitsofmeasure.org")
.setUnit("kg"));
Bundle input2 = new Bundle();
input2.setType(BundleType.TRANSACTION);
input2
.addEntry()
.setFullUrl("urn:uuid:0001")
.setResource(obs2)
.getRequest()
.setMethod(HTTPVerb.PUT)
.setUrl("Observation?identifier=http%3A%2F%2Facme.org|ID1");
Bundle output2 = mySystemDao.transaction(mySrd, input2);
assertEquals(1, output2.getEntry().size());
IdType id2 = new IdType(output2.getEntry().get(0).getResponse().getLocation());
assertEquals("Observation", id2.getResourceType());
assertEquals("1", id2.getVersionIdPart());
assertEquals(id.getValue(), id2.getValue());
}
@Test
public void testTransactionWithIfMatch() {
Patient p = new Patient();

View File

@ -6,7 +6,7 @@
<title>HAPI FHIR Changelog</title>
</properties>
<body>
<release version="3.3.0" date="TBD">
<release version="3.3.0" date="2018-03-29">
<action type="add">
This release corrects an inefficiency in the JPA Server, but requires a schema
change in order to update. Prior to this version of HAPI FHIR, a CLOB column
@ -14,12 +14,29 @@
tables: HFJ_RESOURCE and HFJ_RES_VER. Because the same content was stored in two
places, the database consumed more space than is needed to.
<![CDATA[<br/><br/>]]>
In order to reduce this duplication, two columns have been removed from the
HFJ_RESOURCE table. This means that on any database that is being upgraded
to HAPI FHIR 3.3.0+, you will need to remove the columns
<![CDATA[<code>RES_TEXT</code> and <code>RES_ENCODING</code>]]> (or
set them to nullable if you want an easy means of rolling back). Naturally
you should back your database up prior to making this change.
In order to reduce this duplication, the
<![CDATA[<code>RES_TEXT</code> and <code>RES_ENCODING</code>]]>
columns have been
<![CDATA[<b>dropped</b>]]>
from the
<![CDATA[<code>HFJ_RESOURCE]]>
table, and the
<![CDATA[<code>RES_TEXT</code> and <code>RES_ENCODING</code>]]>
columns have been
<![CDATA[<b>made NULLABLE</b>]]>
on the
<![CDATA[<code>HFJ_RES_VER]]>
table.
<![CDATA[<br/><br/>]]>
The following migration script may be used to apply these changes to
your database. Naturally you should back your database up prior to
making this change.
<![CDATA[
<pre>ALTER TABLE hfj_resource DROP COLUMN res_text;
ALTER TABLE hfj_resource DROP COLUMN res_encoding;
ALTER TABLE hfj_res_ver ALTER COLUMN res_encoding DROP NOT NULL;
ALTER TABLE hfj_res_ver ALTER COLUMN res_text DROP NOT NULL;</pre>
]]>
</action>
<action type="fix">
The validation module has been refactored to use the R4 (currently maintained)
@ -41,7 +58,7 @@
</ul>
]]>
</action>
<action tyoe="add" issue="871">
<action type="add" issue="871">
A number of HAPI FHIR modules have been converted so that they now work
as OSGi modules. Unlike the previous OSGi module, which was a mega-JAR
with all of HAPI FHIR in it, this is simply the appropriate

View File

@ -69,6 +69,62 @@
</section>
<section name="Announcements">
<p>
<b>Mar 29, 2018 - HAPI FHIR 3.3.0 Released</b> -
The next release of HAPI has now been uploaded to the Maven repos and
GitHub's releases section.
</p>
<p>
This release brings logs of fixes and some significant enhancements.See the
<a href="http://hapifhir.io/changes-report.html">changelog</a> for a full list
of changes. Notable changes include:
</p>
<ul>
<li>
A schema change to the JPA server has been made which will result in
significantly less storage space being used and better write performance
for repositories which contain a large number of resource, or larger
resource bodies. Prior to this change, resource bodies were stored in
duplicate in two places in the database and this has now been corrected.
<br/><br/>
Note that a database migration script must be run for this upgrade, see
the changelog for details.
</li>
<li>
The validator has been refactored to use a single codebase across DSTU3/R4
validation which means that any fixes and enhancements will now affect both.
This makes the DSTU3 validator much more complete in terms of support for
advanced validation as well.
</li>
<li>
Several significant features were contributed by the community, including
native OSGi support (several HAPI FHIR JARs now have OSGi metadata included)
as well as initial experimental support for ElasticSearch instead of
Raw Lucene for the JPA server.
</li>
<li>
Several enhancements and bugfixes have been made to the interceptor
framework.
</li>
<li>
Many other bugfixes and enhancements have been made as well
</li>
</ul>
<p>
Note also that we are hiring! If you have an interest in helping us develop
HAPI FHIR or work on implementation projects, please
<a href="mailto:jamesagnew@gmail.com">get in touch</a>!
</p>
<p>
Thanks to everyone who contributed to this release! The HAPI FHIR community
continues to get bigger and bigger. Together we are transforming healthcare.
</p>
<p>
- <a href="https://github.com/jamesagnew/">James Agnew</a>
</p>
<br/><br/>
<p>
<b>Jan 13, 2018 - HAPI FHIR 3.2.0 Released</b> -
The next release of HAPI has now been uploaded to the Maven repos and
@ -111,8 +167,9 @@
<p>
- <a href="https://github.com/jamesagnew/">James Agnew</a>
</p>
<br/><br/>
<!--
<br/><br/>
<p>
<b>November 23, 2017 - HAPI FHIR 3.1.0 Released</b> -
The next release of HAPI has now been uploaded to the Maven repos and
@ -271,7 +328,6 @@
</p>
<br/><br/>
<!--
<p>
<b>June 8, 2017 - HAPI FHIR 2.5 Released</b> -
The next release of HAPI has now been uploaded to the Maven repos and