-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Once issue 62:
#62
is resolved, it would be quite easy to provide compatibility with the IHE HPD and CSD profiles via XSLT. I think that it makes some sense for this to be provided from within the FRED API "universe", rather than requiring every HPD or CSD client to write their own transforms.
For HPD, you would want to transform your ouput XML into a ProviderFeed of the "organizational providers" as in:
ftp://ftp.ihe.net/TF_Implementation_Material/ITI/examples/HPD/59-Provider%20Information%20Feed%20-%20Req%20and%20Ack_HPD_%20Exampels.pdf
For CSD you could put everything under the Facilities node according to CSD's .xsd. Current version is here:
ftp://ftp.ihe.net/IT_Infrastructure/iheitiyr11-2013-2014/Technical_Cmte/WorkItems/CareServicesDiscovery/CSD%2013-05-14.xsd
though this is not yet stable.
Through the XSLTs would be easy enough, one issue is maintaining them as the FRED API's Facility Object changes. It would be great if these XSLTs could be maintained routinely as the Facility Object changes.
I suppose that the XSLTs could be maintained as "companion resources" to the FRED API that exist outside of the web service itself (e.g via github). However, given that the Facility Object will change, this would impose on a client expecting CSD or HPD to track the version of the FRED API closely. In other words the client would need to be upgraded to a use the updated XSL whenever the FRED API changed. This seems quite fragile.
As alternatives, you could:
*expose the needed XSLT via the FRED API (e.g. the client can ask for the XSLT to produce CSD for the current version of the FRED API)
*require that implementors of FRED API perform the XSL transforms per client request