Add changelog

This commit is contained in:
jamesagnew 2018-10-31 05:52:15 -04:00 committed by Eeva Turkka
parent b2479e4a7b
commit c075ba873f
1 changed files with 447 additions and 518 deletions

View File

@ -100,47 +100,9 @@
permission is granted. This has been corrected so that transaction() allows both permission is granted. This has been corrected so that transaction() allows both
batch and transaction requests to proceed. batch and transaction requests to proceed.
</action> </action>
<action type="fix">
The AuthorizationInterceptor was previously not able to authorize the FHIR
batch operation. As of this version, when authorizing a transaction operation
(via the transaction() rule), both batch and transaction will be allowed.
</action>
<action type="add"> <action type="add">
The JPA server now automatically supplies several appropriate hibernate performance The JPA server version migrator tool now runs in a multithreaded way, allowing it to
settings as long as the JPA EntityManagerFactory was created using HAPI FHIR's upgrade th database faster when migration tasks require data updates.
built-in method for creating it.
<![CDATA[<br/><br/>]]>
Existing JPA projects should consider using
<![CDATA[<code>super.entityManagerFactory()</code>]]>
as shown in
<![CDATA[<a href="https://github.com/hapifhir/hapi-fhir-jpaserver-starter/blob/master/src/main/java/ca/uhn/fhir/jpa/demo/FhirServerConfig.java#L62">the example project</a>]]>
if they are not already.
</action>
<action type="add">
The FhirTerser <![CDATA[<code>getValues(...)</code>]]> methods have been overloaded. The terser can now be
used to create a null-valued element where none exists. Additionally, the terser can now add a null-valued
extension where one or more such extensions already exist. These changes allow better population of FHIR
elements provided an arbitrary FHIR path.
</action>
<action type="fix">
The FhirTerser <![CDATA[<code>getValues(...)</code>]]> methods were not properly handling modifier
extensions for verions of FHIR prior to DSTU3. This has been corrected.
<action type="fix">
When updating resources in the JPA server, a bug caused index table entries to be refreshed
sometimes even though the index value hadn't changed. This issue did not cause incorrect search
results but had an effect on write performance. This has been corrected.
</action>
<action type="add">
The @Operation annotation used to declare operations on the Plain Server now
has a wildcard constant which may be used for the operation name. This allows
you to create a server that supports operations that are not known to the
server when it starts up. This is generally not advisable but can be useful
for some circumstances.
</action>
<action type="add">
When using an @Operation method in the Plain Server, it is now possible
to use a parameter annotated with @ResourceParam to receive the Parameters
(or other) resource supplied by the client as the request body.
</action> </action>
</release> </release>
@ -1337,8 +1299,7 @@ ALTER TABLE hfj_res_ver ALTER COLUMN res_text DROP NOT NULL;</pre>
Michael Lawley for the pull request! Michael Lawley for the pull request!
</action> </action>
<action type="add"> <action type="add">
Add <![CDATA[<code>Prefer</code> and <code>Cache-Control</code>]]> to the list of headers which are declared Add <![CDATA[<code>Prefer</code> and <code>Cache-Control</code>]]> to the list of headers which are declared as
as
being acceptable for CORS requests in CorsInterceptor, CLI, and JPA Example. being acceptable for CORS requests in CorsInterceptor, CLI, and JPA Example.
Thanks to Patrick Werner for the pull request! Thanks to Patrick Werner for the pull request!
</action> </action>
@ -1848,8 +1809,7 @@ Bundle bundle = client.search().forResource(Patient.class)
optimize something that did not need optimizing! optimize something that did not need optimizing!
</action> </action>
<action type="add"> <action type="add">
A new config property has been added to the JPA seerver DaoConfig called A new config property has been added to the JPA seerver DaoConfig called "setAutoCreatePlaceholderReferenceTargets".
"setAutoCreatePlaceholderReferenceTargets".
This property causes references to unknown resources in created/updated resources to have a placeholder This property causes references to unknown resources in created/updated resources to have a placeholder
target resource automatically created. target resource automatically created.
</action> </action>
@ -2149,8 +2109,7 @@ Bundle bundle = client.search().forResource(Patient.class)
</action> </action>
<action type="add"> <action type="add">
Add a utility method to JPA server: Add a utility method to JPA server:
<![CDATA[<code>IFhirResourceDao#removeTag(IIdType, TagTypeEnum, String, String)</code>]]>. This allows <![CDATA[<code>IFhirResourceDao#removeTag(IIdType, TagTypeEnum, String, String)</code>]]>. This allows client code to remove tags
client code to remove tags
from a resource without having a servlet request object in context. from a resource without having a servlet request object in context.
</action> </action>
<action type="fix"> <action type="fix">
@ -2544,10 +2503,8 @@ Bundle bundle = client.search().forResource(Patient.class)
<![CDATA[<code>IHttpRequest</code>]]> class: "bufferEntitity" should be "bufferEntity". <![CDATA[<code>IHttpRequest</code>]]> class: "bufferEntitity" should be "bufferEntity".
</action> </action>
<action type="add"> <action type="add">
ErrorHandler is now called (resulting in a warning by default, but can also be an exception) when arsing ErrorHandler is now called (resulting in a warning by default, but can also be an exception) when arsing JSON if
JSON if the resource ID is not a JSON string, or an object is found where an array is expected (e.g. repeating field). Thanks
the resource ID is not a JSON string, or an object is found where an array is expected (e.g. repeating
field). Thanks
to Jenni Syed of Cerner for providing a test case! to Jenni Syed of Cerner for providing a test case!
</action> </action>
<action type="fix"> <action type="fix">
@ -2670,10 +2627,8 @@ Bundle bundle = client.search().forResource(Patient.class)
]]> ]]>
</action> </action>
<action type="fix"> <action type="fix">
Fix a fairly significant issue in JPA Server when using the Fix a fairly significant issue in JPA Server when using the <![CDATA[<code>DatabaseBackedPagingProvider</code>]]>: When paging over the results
<![CDATA[<code>DatabaseBackedPagingProvider</code>]]>: When paging over the results of a search / $everything operation, under certain circumstances resources may be missing from the last page of results
of a search / $everything operation, under certain circumstances resources may be missing from the last page
of results
that is returned. Thanks to David Hay for reporting! that is returned. Thanks to David Hay for reporting!
</action> </action>
<action type="add"> <action type="add">
@ -2828,8 +2783,7 @@ Bundle bundle = client.search().forResource(Patient.class)
Kevin Tallevi for finding this! Kevin Tallevi for finding this!
</action> </action>
<action type="fix" issue="411"> <action type="fix" issue="411">
Fix #411 - Searching by <![CDATA[<code>POST [base]/_search</code>]]> with urlencoded parameters doesn't work Fix #411 - Searching by <![CDATA[<code>POST [base]/_search</code>]]> with urlencoded parameters doesn't work correctly if
correctly if
interceptors are accessing the parameters and there is are also interceptors are accessing the parameters and there is are also
parameters on the URL. Thanks to Jim Steel for reporting! parameters on the URL. Thanks to Jim Steel for reporting!
</action> </action>
@ -2942,8 +2896,7 @@ Bundle bundle = client.search().forResource(Patient.class)
</action> </action>
<action type="add"> <action type="add">
Both client and server now support the new Content Types decided in Both client and server now support the new Content Types decided in
<![CDATA[<a href="http://gforge.hl7.org/gf/project/fhir/tracker/?action=TrackerItemEdit&tracker_id=677&tracker_item_id=10199">FHIR #10199</a>]]> <![CDATA[<a href="http://gforge.hl7.org/gf/project/fhir/tracker/?action=TrackerItemEdit&tracker_id=677&tracker_item_id=10199">FHIR #10199</a>]]>.
.
<![CDATA[<br/><br/>]]> <![CDATA[<br/><br/>]]>
This means that the server now supports This means that the server now supports
<![CDATA[<code>application/fhir+xml</code> and <code>application/fhir+json</code>]]> <![CDATA[<code>application/fhir+xml</code> and <code>application/fhir+json</code>]]>
@ -3420,8 +3373,7 @@ Bundle bundle = client.search().forResource(Patient.class)
reporting! reporting!
</action> </action>
<action type="fix" issue="371"> <action type="fix" issue="371">
Update STU3 client and server to use the new sort parameter style (param1,-param2,param). Thanks to GitHub Update STU3 client and server to use the new sort parameter style (param1,-param2,param). Thanks to GitHub user @euz1e4r for
user @euz1e4r for
reporting! reporting!
</action> </action>
<action type="fix"> <action type="fix">
@ -3764,8 +3716,7 @@ Bundle bundle = client.search().forResource(Patient.class)
REST Server responded to HTTP OPTIONS requests with REST Server responded to HTTP OPTIONS requests with
any URI as being a request for the server's any URI as being a request for the server's
Conformance statement. This is incorrect, as only Conformance statement. This is incorrect, as only
a request for <![CDATA[<code>OPTIONS [base url]</code>]]> should be treated as such. Thanks to Michael a request for <![CDATA[<code>OPTIONS [base url]</code>]]> should be treated as such. Thanks to Michael Lawley for reporting!
Lawley for reporting!
</action> </action>
<action type="fix"> <action type="fix">
REST annotation style client was not able to handle extended operations REST annotation style client was not able to handle extended operations
@ -4227,8 +4178,7 @@ Bundle bundle = client.search().forResource(Patient.class)
</action> </action>
<action type="fix"> <action type="fix">
In server, if a client request is received and it has an Accept header indicating In server, if a client request is received and it has an Accept header indicating
that it supports both XML and JSON with equal weight, the server's default is used instead of the first that it supports both XML and JSON with equal weight, the server's default is used instead of the first entry in the list.
entry in the list.
</action> </action>
<action type="add"> <action type="add">
JPA server now supports searching with sort by token, quantity, JPA server now supports searching with sort by token, quantity,
@ -4285,8 +4235,7 @@ Bundle bundle = client.search().forResource(Patient.class)
to Alexander Kley for the fix! to Alexander Kley for the fix!
</action> </action>
<action type="add"> <action type="add">
JPA server now supports $everything on Patient and Encounter types (patient and encounter instance was JPA server now supports $everything on Patient and Encounter types (patient and encounter instance was already supported)
already supported)
</action> </action>
<action type="add"> <action type="add">
Generic client operation invocations now Generic client operation invocations now
@ -4433,8 +4382,7 @@ Bundle bundle = client.search().forResource(Patient.class)
</action> </action>
<action type="fix" issue="198"> <action type="fix" issue="198">
JPA server sorting often returned unexpected orders when multiple JPA server sorting often returned unexpected orders when multiple
indexes of the same type were found on the same resource (e.g. multiple string indexed fields). Thanks to indexes of the same type were found on the same resource (e.g. multiple string indexed fields). Thanks to Travis Cummings for reporting!
Travis Cummings for reporting!
</action> </action>
<action type="add"> <action type="add">
Add another method to IServerInterceptor which converts an exception generated on the server Add another method to IServerInterceptor which converts an exception generated on the server
@ -4543,13 +4491,10 @@ Bundle bundle = client.search().forResource(Patient.class)
</action> </action>
<action type="fix"> <action type="fix">
JPA server did not correctly index search parameters JPA server did not correctly index search parameters
of type "URI". Thanks to David Hay for reporting! Note that if you are using the JPA server, this change of type "URI". Thanks to David Hay for reporting! Note that if you are using the JPA server, this change means that
means that there are two new tables added to the database schema. Updating existing resources in the database may fail unless you
there are two new tables added to the database schema. Updating existing resources in the database may fail
unless you
set default values for the resource set default values for the resource
table by issuing a SQL command similar to the following (false may be 0 or something else, depending on the table by issuing a SQL command similar to the following (false may be 0 or something else, depending on the database platform in use)
database platform in use)
<![CDATA[<br/><code>update hfj_resource set sp_coords_present = false;<br/> <![CDATA[<br/><code>update hfj_resource set sp_coords_present = false;<br/>
update hfj_resource set sp_uri_present = false;</code>]]> update hfj_resource set sp_uri_present = false;</code>]]>
</action> </action>
@ -4594,8 +4539,7 @@ Bundle bundle = client.search().forResource(Patient.class)
in history in history
</action> </action>
<action type="fix" issue="222"> <action type="fix" issue="222">
JPA server returned deleted resources in search results when using the _tag, _id, _profile, or _security JPA server returned deleted resources in search results when using the _tag, _id, _profile, or _security search parameters
search parameters
</action> </action>
<action type="fix" issue="223"> <action type="fix" issue="223">
Fix issue with build on Windows. Thanks to Bryce van Dyk for the pull request! Fix issue with build on Windows. Thanks to Bryce van Dyk for the pull request!
@ -4615,8 +4559,7 @@ Bundle bundle = client.search().forResource(Patient.class)
Claude Nanjo for finding this. Claude Nanjo for finding this.
</action> </action>
<action type="fix" issue="164"> <action type="fix" issue="164">
Correct performance issue with :missing=true search requests where the parameter is a resource link. Thanks Correct performance issue with :missing=true search requests where the parameter is a resource link. Thanks to wanghaisheng for all his help in testing this.
to wanghaisheng for all his help in testing this.
</action> </action>
<action type="fix" issue="149"> <action type="fix" issue="149">
The self link in the Bundle returned by searches on the server does not respect the The self link in the Bundle returned by searches on the server does not respect the
@ -4633,8 +4576,7 @@ Bundle bundle = client.search().forResource(Patient.class)
Peter Girard for reporting! Peter Girard for reporting!
</action> </action>
<action type="add" issue="170"> <action type="add" issue="170">
Add better addXXX() methods to structures, which take the datatype being added as a parameter. Thanks to Add better addXXX() methods to structures, which take the datatype being added as a parameter. Thanks to Claude Nanjo for the
Claude Nanjo for the
suggestion! suggestion!
</action> </action>
<action type="add" issue="152"> <action type="add" issue="152">
@ -4704,8 +4646,7 @@ Bundle bundle = client.search().forResource(Patient.class)
q values specifying order of preference. Previously the q value was ignored. q values specifying order of preference. Previously the q value was ignored.
</action> </action>
<action type="add"> <action type="add">
Server in DSTU2 mode now indicates that whether it has support for Transaction operation or not. Thanks to Server in DSTU2 mode now indicates that whether it has support for Transaction operation or not. Thanks to Kevin Paschke for pointing out that this wasn't working!
Kevin Paschke for pointing out that this wasn't working!
</action> </action>
<action type="add" issue="166"> <action type="add" issue="166">
Questionnaire.title now gets correctly indexed in JPA server (it has no path, so it is a special case) Questionnaire.title now gets correctly indexed in JPA server (it has no path, so it is a special case)
@ -4791,8 +4732,7 @@ Bundle bundle = client.search().forResource(Patient.class)
McKenzie for reporting! McKenzie for reporting!
</action> </action>
<action type="fix" issue="128"> <action type="fix" issue="128">
Fix regression in 0.9 - Server responds with an HTTP 500 and a NullPointerException instead of an HTTP 400 Fix regression in 0.9 - Server responds with an HTTP 500 and a NullPointerException instead of an HTTP 400 and a useful error message if the client requests an unknown resource type
and a useful error message if the client requests an unknown resource type
</action> </action>
<action type="add"> <action type="add">
Add support for Add support for
@ -4964,8 +4904,7 @@ Bundle bundle = client.search().forResource(Patient.class)
the patch! the patch!
</action> </action>
<action type="fix"> <action type="fix">
Transaction server operations incorrectly used the "Accept" header instead of the "Content-Type" header to Transaction server operations incorrectly used the "Accept" header instead of the "Content-Type" header to determine the
determine the
POST request encoding. Thanks to Rene Spronk for providing a test case! POST request encoding. Thanks to Rene Spronk for providing a test case!
</action> </action>
</release> </release>
@ -5081,8 +5020,7 @@ Bundle bundle = client.search().forResource(Patient.class)
</action> </action>
<action type="fix"> <action type="fix">
Server requests for Binary resources where the client has explicitly requested XML or JSON responses Server requests for Binary resources where the client has explicitly requested XML or JSON responses
(either with a <![CDATA[<code>_format</code>]]> URL parameter, or an <![CDATA[<code>Accept</code>]]> request (either with a <![CDATA[<code>_format</code>]]> URL parameter, or an <![CDATA[<code>Accept</code>]]> request header)
header)
will be responded to using the Binary FHIR resource type instead of as Binary blobs. This is will be responded to using the Binary FHIR resource type instead of as Binary blobs. This is
in accordance with the recommended behaviour in the FHIR specification. in accordance with the recommended behaviour in the FHIR specification.
</action> </action>
@ -5120,8 +5058,7 @@ Bundle bundle = client.search().forResource(Patient.class)
to baopingle for reporting and providing a test case! to baopingle for reporting and providing a test case!
</action> </action>
<action type="add"> <action type="add">
Sorting is now supported in the Web Testing UI (previously a button existed for sorting, but it didn't do Sorting is now supported in the Web Testing UI (previously a button existed for sorting, but it didn't do anything)
anything)
</action> </action>
<action type="add" issue="111"> <action type="add" issue="111">
Server will no longer include stack traces in the OperationOutcome returned to the client Server will no longer include stack traces in the OperationOutcome returned to the client
@ -5395,8 +5332,7 @@ Bundle bundle = client.search().forResource(Patient.class)
for reporting this! for reporting this!
</action> </action>
<action type="fix"> <action type="fix">
XHTML (in narratives) containing escapable characters (e.g. &lt; or &quot;) will now always have those XHTML (in narratives) containing escapable characters (e.g. &lt; or &quot;) will now always have those characters
characters
escaped properly in encoded messages. escaped properly in encoded messages.
</action> </action>
<action type="fix"> <action type="fix">
@ -5446,8 +5382,7 @@ Bundle bundle = client.search().forResource(Patient.class)
Thanks to Bill de Beaubien for reporting! Thanks to Bill de Beaubien for reporting!
</action> </action>
<action type="update"> <action type="update">
Documentation on contained resources contained a typo and did not actually produce contained resources. Documentation on contained resources contained a typo and did not actually produce contained resources. Thanks
Thanks
to David Hay of Orion Health for reporting! to David Hay of Orion Health for reporting!
</action> </action>
<action type="add" issue="31" dev="preston"> <action type="add" issue="31" dev="preston">
@ -5466,8 +5401,7 @@ Bundle bundle = client.search().forResource(Patient.class)
Petro Mykhailysyn for the pull request! Petro Mykhailysyn for the pull request!
</action> </action>
</release> </release>
<release version="0.6" date="2014-09-08" <release version="0.6" date="2014-09-08" description="This release brings a number of new features and bug fixes!">
description="This release brings a number of new features and bug fixes!">
<!-- <!--
<action type="add"> <action type="add">
Allow generic client ... OAUTH Allow generic client ... OAUTH
@ -5566,15 +5500,13 @@ Bundle bundle = client.search().forResource(Patient.class)
Rename NotImpementedException to NotImplementedException (to correct typo) Rename NotImpementedException to NotImplementedException (to correct typo)
</action> </action>
<action type="fix"> <action type="fix">
Server setUseBrowserFriendlyContentType setting also respected for errors (e.g. OperationOutcome with Server setUseBrowserFriendlyContentType setting also respected for errors (e.g. OperationOutcome with 4xx/5xx status)
4xx/5xx status)
</action> </action>
<action type="fix"> <action type="fix">
Fix performance issue in date/time datatypes where pattern matchers were not static Fix performance issue in date/time datatypes where pattern matchers were not static
</action> </action>
<action type="fix"> <action type="fix">
Server now gives a more helpful error message if a @Read method has a search parameter (which is invalid, Server now gives a more helpful error message if a @Read method has a search parameter (which is invalid, but
but
previously lead to a very unhelpful error message). Thanks to Tahura Chaudhry of UHN for reporting! previously lead to a very unhelpful error message). Thanks to Tahura Chaudhry of UHN for reporting!
</action> </action>
<action type="fix"> <action type="fix">
@ -5647,8 +5579,7 @@ Bundle bundle = client.search().forResource(Patient.class)
for configurable logging, capturing requests and responses, and HTTP basic auth. for configurable logging, capturing requests and responses, and HTTP basic auth.
</action> </action>
<action type="fix"> <action type="fix">
Transaction client invocations with XML encoding were using the wrong content type ("application/xml+fhir" Transaction client invocations with XML encoding were using the wrong content type ("application/xml+fhir" instead
instead
of the correct "application/atom+xml"). Thanks to David Hay of Orion Health for surfacing this one! of the correct "application/atom+xml"). Thanks to David Hay of Orion Health for surfacing this one!
</action> </action>
<action type="add"> <action type="add">
@ -5727,8 +5658,7 @@ Bundle bundle = client.search().forResource(Patient.class)
Support for Query resources fixed (in parser) Support for Query resources fixed (in parser)
</action> </action>
<action type="fix"> <action type="fix">
Nested contained resources (e.g. encoding a resource with a contained resource that itself contains a Nested contained resources (e.g. encoding a resource with a contained resource that itself contains a resource)
resource)
now parse and encode correctly, meaning that all contained resources are placed in the "contained" element now parse and encode correctly, meaning that all contained resources are placed in the "contained" element
of the root resource, and the parser looks in the root resource for all container levels when stitching of the root resource, and the parser looks in the root resource for all container levels when stitching
contained resources back together. contained resources back together.
@ -5761,8 +5691,7 @@ Bundle bundle = client.search().forResource(Patient.class)
Support added for deleted-entry by/name, by/email, and comment from Tombstones spec Support added for deleted-entry by/name, by/email, and comment from Tombstones spec
</action> </action>
</release> </release>
<release version="0.3" date="2014-05-12" <release version="0.3" date="2014-05-12" description="This release corrects lots of bugs and introduces the fluent client mode">
description="This release corrects lots of bugs and introduces the fluent client mode">
</release> </release>
<release version="0.2" date="2014-04-23"> <release version="0.2" date="2014-04-23">
</release> </release>