Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request for Support for Unified Procedure Step in findscu example #835

Closed
sjswerdloff opened this issue Jun 3, 2023 · 0 comments
Closed

Comments

@sjswerdloff
Copy link
Contributor

It would be nice to have an example for performing a Unified Procedure Step query, in particular one for the IHE-RO TDW-II Profile

I would like the example findscu to support UPS, with a --ups option similar to the --worklist option

An alternative would be writing a UPS C-FIND SCU from scratch, but it seems like the vast majority of the infrastructure is already there in the findscu example.

I am working on a PR that does this (I have a branch in my fork that "works", although I have further testing I intend before submitting a PR).

But submitting a PR is supposed to include additional or updated tests to prove it works.
That involves having a working UPS C-FIND SCP.
What I have done so far is update the qrscp to accept UPS and instead of searching the database (which would fail), it returns an empty result. Which is a legitimate situation ("nothing is scheduled at the moment"). And both sides are happy.

Does the PR essentially require that I put both sets of changes in to one PR and add a test that involves kicking off the qrscp and then querying it with the findscu?

I didn't see a test of the Modality Work list part of findscu.
BTW, I added Modality Work list to qrscp in the same way, and the findscu --worklist is happy with empty results too.

Having a non empty result involves providing a fair amount of additional infrastructure for the qrscp, and my preference is to do smaller PRs. Ideally, a small PR for findscu, a small PR for qrscp that adds support for returning empty results to MWL and UPS, and then a bigger PR that provides a mechanism for loading MWL records and UPS records "out of band" (e.g. via a CSV in to the SQLite db with new tables for MWL and UPS), and the qrscp reading from those tables as relevant and filtering as appropriate.
MWL is typically populated by HL7 (see IHE-RAD SWF). UPS provides a mechanism for creating UPS and populating them via DIMSE-N (N-CREATE).

And while I'm asking for a pony, I'd like an example app or addition to qrscp that implements the TDW-II TMS actor that will also respond to UPS Watch and generate UPS Events for the UPS that were stored out of band and updated via interactions with the TMS actor (a bunch of DIMSE-N). Is there enough time before Christmas (or Chanukah) for all of that? :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants