Skip to content

Maintain transforms of XML facility data to support HPD and CSD profiles #63

@litlfred

Description

@litlfred

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions