Giter VIP home page Giter VIP logo

dev.pcim's Introduction

PCIM

DEV.PCIM is the repository for all artifacts related to the development of the IHE DEV PCIM Profile.

Overview

The Point-of-Care Identity Management (PCIM) Profile defines transactions for reporting, managing and consuming device-patient association status. Accurate device-patient association status has numerous benefits, but key to the profile is ensuring that device data being transmitted can be stamped with accurate patient information. This not only increases patient safety, but also provides value to the caregiver as the alarm or other data has the patient and optional location attached to it.

Status

A foundational change proposal (CP), Revision 2.0, that refines the Point-of-Care Identity Management (PCIM) Revsion 1.1 - Trial implementation specification, has been balloted, approved and posted for public review.

A work list is in place for review of additional CPs.

CP Work List

Process

We are using AsciiDoc to author our CP documents and use a GitHub flow process. Create a PR branch and make your changes and then push and assign Eldon Metz and Tom Kowalczyk as approvers for review.

To generate the HTML format for the docs, use the gen-html.sh or gen-html.bat scripts. The output is found in the output directory in your local workspace at the root of the repo. Note, they are ignored and not saved in the repository.

Linux

./gen-html.sh

Windows

Double click gen-html.bat or run gen-html.bat in the command prompt or in PowerShell.

Contributing

Please contact Eldon Metz or Tom Kowalczyk if you wish to contribute to this profile.

Working Group meetings are held weekly on Friday's at 10am Central Time.

dev.pcim's People

Contributors

eldonmetz avatar marylj avatar rho-n avatar bilhar97 avatar toddcooper avatar

Watchers

Chris Carr avatar Steve Moore avatar John Rhoads avatar  avatar Neil Henry avatar Brugu avatar Kurt Elliason avatar Jose Costa Teixeira avatar  avatar  avatar  avatar  avatar

dev.pcim's Issues

[WG] Specify whether DPAR connection to DPAM can be used for application ACK or if new connection back is required

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Clear Actor agreement on EQUIP PRT.10 semantics / encoding rules (serial number, per device eui-64, uuid, ...)

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Allow Reporter and Consumer to Directly Communicate in Absence of Manager

Is your feature request related to a problem? Please describe.
The current proposal for PCIM as a "happy path" has a Reporter, Manager, and Consumer in the ecosystem that it would be used in. There may be situations where there are actors who can report association assertions, and actors who can consume association assertions, but the facility does not have a manager on site to handle these assertions.

Describe the solution you'd like
If it was a supported workflow in the standard to allow reporters to directly communicate to consumers (only in the absence of a manager), we could still reap some benefits of PCIM even with the missing value of the manager.

Describe alternatives you've considered
The alternative would be telling customers/facilities that they need to have all three actors in the equation to make use of PCIM functionality.

Additional context
Epic, as an example, doesn't want to handle all of the responsibilities of a manager, but can still handle some of the logic a manager does, but solely wants to be a "reporter" in PCIM lingo. Pump vendors could still receive DEV-51 messages or maybe DEV-51-as-a-52? Haha.

Resolve issues with Query Device-Patient Associations [DEV-19] Section

Expand the foundational CP to address identified issues in the DEV-19 message transaction section.

Issues:

  • Change section title to Filter Device-Patient Associations [DEV-19]
  • Update to reflect we are filtering only be device (do not include patient or time)
  • Ensure we consistently reference manager to consumer in ordering and message flow direction
  • Ensure the text states that a manager to consumer connection has initial association state passed in first
  • Remove "response" for any description of association records, the DEV-19 response is only an ACK, but the result is initial and ongoing DEV-52 messages sent from manager to consumer

Combined association/disassociation message concept from original spec - should PCIM include this?

Paragraph 760 (in original PCIM spec, carried over into Foundational spec). Is this section still relevant as is? Not sure what this means in the context of the new PCIM?
“A device association can be reported as a point-in-time event, in which case a separate disassociate message is not required to delineate the end of the association. Alternatively, the association event message can convey a duration during which the association was in effect. The latter is equivalent to an associate/disassociate message pair and may be preferable for short duration associations (e.g., spot vitals collection).”

Resolve links or cross references to tables within adoc spec

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Filter option vs Subscription option vs Subscription and Filtering option

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Proposed edits for day one face-to-face to Change Proposal -- morning session

Process suggestion: Use GitHub Issues for suggesting proposed changes and tracking work on proposed changes

Proposed edits:

High Level Overview table

  • DPAC -- Add mention of pre-configured filters
  • IHE wide glossary -- contact Mary for latest IHE-DEV glossary. Don't use the word glossary -- proposed name changed Appendix D -- Definitions

7 PCIM --- remove acute-care

  • Diagram -- add reference to 7.1.1.4 under MEM DMC annotation ???

7.1.1.1 Change:

  • first sentence: ... device is associated or disassociated with a specific patient, or an update to an existing association.
  • last sentence: ..., the report observation status field shall be marked final, ...

7.1.1.3

  • Change to: The actor initially receives current association status followed by updates in real-time.

7.1.1.4

Change title to: Device Registration

  • In first sentence state:
    The list of medical devices that can be associated with the patient may be pre-configured or automated with MEM DMC DMIR.
  • Clarify second paragraph, first sentence.
    Change to: The IHE DMC DMIR may facilitate automated device registration.
  • Examples for DMIR. model, manufacturer, serial number, end point (IP address, port)

7.2

  • First sentence:
    Reverse DPAM and DPAC filtering references

7.2.1

  • Table 7.2.1 remove reference for reporter.
  • Paragraph: Reverse DPAC and DPAM order in sentence.

7.4

  • In use case example titles, change Query to Filter
  • Description section before Flow section

7.4.2.1.1

  • Title change to: Process Flow
  • Second sentence: The --> This

7.4.2.1.3

  • typo: device identify to device identity

7.4.2.3.1

  • reverse position of DPAC and DPAM

7.4.2.4

  • Drop this use case

7.7

  • add 7.7.1 with existing text with expectation of added out of scope examples

Review of 14-JULY-2023 PCIM Spec and Foundational spec

I reviewed both documents today (July 17th). My comments:

  1. Appendix A updates: Switch places of DPAC and DPAM in table. Reflects workflow better and matches original PCIM Spec changes.
  2. Appendix A: DPAM description: “…delivers records that match device-patient association queries…” to “..delivers records that match device patient association subscription query filter…”?
  3. Section 7.4 Do we need a use case for updating an existing device-patient association?
  4. Section 3.19.4.2 Message Semantics: It looks like the original text, rather than the updated test made it into the PCIM Foundational PDF file.
  5. Section 3.19.4.2.1 Trigger Events: Some updated text missing from the PCIM Foundational PDF file.
  6. Table A.1.1-1 Report Device Patient Association: “{“ row: Replace “..for each device…” to “…for the device…”?
  7. Paragraph 760 (in original PCIM spec, carried over into Foundational spec). Is this section still relevant as is? Not sure what this means in the context of the new PCIM?
    “A device association can be reported as a point-in-time event, in which case a separate disassociate message is not required to delineate the end of the association. Alternatively, the association event message can convey a duration during which the association was in effect. The latter is equivalent to an associate/disassociate message pair and may be preferable for short duration associations (e.g., spot vitals collection).”
  8. Section A.1.2.6 PRT: Change “There will be PRT messages identifying the device, responsible observer…” to “There will be PRT segments identifying the device, responsible observer,….”.
  9. Section A.2.3.2-3 QPD Segment: Update second paragraph “…so that for example, a patient identifier and a device identifier specification…” to “…so that for example, a patient location and a device identifier specification
  10. A.4 Example Messages, Example 2 (Nurse Ratched/McMurphy). First sentence after sample message hints that the unvalidated assertion will be sent to the DPAC (“The Association Manager may then broadcast this information to subscribers…..”).
  11. A.4 Example Message, Example 3: Foundational CP contains an example QPD segment showing a query by PID.3.1.

Feedback items July 23rd Al Engelbert

· Section 3.52.4.1, 2nd sentence should have some indication that only those messages that meet the filter criteria, if specified, will be sent

· Section 3.19, 3rd paragraph: The sentence beginning with "If the DEV-19 transaction is not supported, ..." doesn't make sense to me, especially the reference to "...and the network connection is lost".

o Is the original intent of this to say that if the manager doesn't support DEV-19 then it should just become a normal feed of all associations?

· Contradiction:
o Table 3.52.2-1, Actor Roles, Device-Patient Association Consumer: "The consumer initially receives current association status followed by updates in realtime on a connection established by the Manager. It may optionally send a filter dynamically in the form a HL7 query or that filter may be pre-configured.
§ This makes it sound like the filter is sent on the connection that was established from the Manager to the Consumer

o Section 3.19.4.1.3, Expected Actions, 2nd paragraph: "one practical method is for the Device-Patient Association Manager to maintain an open TCP listen port to accepts connections from one or more Device- Patient Association Consumer clients and then to open an individual TCP connection with each requester that persists as long as the client is connected and the query is valid"

· Inconsistency:
o Section A.1 uses "Communicate Device-Patient Association and Disassociation"

o Table A.1.1-1 uses "Report Device Patient Association", and text below the table uses "Communicate Device-Patient Association" and "Report Device-Patient Association"

· Section A.1.2.5, "OBX - Observation (for Patient ID)": the section name is confusing, as the OBX isn't used to identify the patient involved

· Table A.1.2.5-1, field 3, Description column: should not be MDCX

· PRT-10 Participation Device (EI), paragraph 1, something is missing near the end: "...but in any case must contain See details in the"

· Section A.2.3.2, "QPD Segment": what is CSC data type? Should this be QSC?

· Section A.2.4, RCP Segment: "RCP-4 Execution and Delivery Time is required when RCP-1 contains the value of RCP-1 D (Deferred)."

o The second RCP-1 should not be present

Allow manager to send DEV-52 messages to consumer over a DEV-19 initiated persistent connection

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Review of latest PCIM Foundational CP

Issues/comments found when reviewing the latest version of the PCIM Foundational CP:

  1. 3.17.4.1.2 Line 793: "Message Grammer" -> "Message Semantics"
  2. 3.17.4.1.2 Message semantics - line 511 changes
    "an application-level acknowledgment may be sent to the Reporter after the association or disassociation is validated at the Manager"
    to
    "an application-level acknowledgment may be sent to the Reporter after the association or disassociation is processed the Manager"
    "Examples of errors that can occur during device patient association processing include the following"
    to
    "Examples of application level errors that can occur during device patient association processing include the following"
  3. 3.52.4.1.1 Trigger Events: Reference to Appendix 0 -> "See Appendix 0 for details of HL7 V2 messages."
  4. 3.19.2 Actor Roles: Device-Patient Association Consumer Role description in table:
    "Establishes an real-time message reporting subscription"
    to
    "Establishes a real-time message reporting subscription"
  5. Volume 2 Namespace Additions: Existing Table doesn't match spec, Proposed Table missing OID's and references.
  6. A.4 Example Messages, modify the OBR segment on line 988 on page 50:
    "69136^MDC_OBS_ASSOCIATION_PATIENT_DEVICE ^MDC"
    to
    "69136^MDC_OBS_ASSOCIATION_PATIENT_DEVICE^MDC"
  7. Line 1055: MSH segment missing fields i.e., character set, message type and OID

Review of Latest PCIM Foundational Spec - Comments

I read through the latest PCIM Foundational CP and have a couple of questions (not necessarily issues). I think the doc looks great otherwise.
Questions:

  1. Table 3.52.2-1 Actor Roles: “…The Manager must send current associations for all devices…..after a connection is established”. Question: The Manager will always do this when a network connection is established, whether it supports DEV-19 or not? In other words, if a Consumer uses DEV-19 to filter messages, and the Manager supports DEV-19, the Consumer will get DEV-52 messages for all associations when it connects to Manager be default, then get DEV-52 for all filtered associations when it sends the DEV-19 to the Manager?
  2. Section 3.52.4.1.1 Trigger Events: “On receipt of the messages, the consumer system checks for valid syntax and …” For points 2 “device is a member of registered device instances and has no conflicting associations” and point 3 “patient is a known person in appropriate status (e.g., admitted)” the Consumer may not know if the patient is admitted or assume the Manager is the source of truth when it comes to patient association conflicts. Should the Consumer override the current patient association in this case and return normal ACK or send NACK to the Manager when this occurs? Or was the association conflict referring to another type of conflict e.g., Consumer knows that the pump is associated with a patient via a PCD-03 (PIV) request at the time the DEV-52 for it arrived?
  3. Section A.1.3 Application Acknowledgment. Error codes start at Lower Limit +1. I thought a change was made earlier to have the codes start at Lower Limit.

ORU_R01 reference feedback item

Section A.2.3, first sentence below Table A.2.3-2: why does it refer to "ORU^R01 Message Structure in PCD TF-2"? And what section in TF-2?

June 23rd Review Feedback

  • Table 7.1-1 Change "Report Device-Patient Association or Disassociation" to "Assert Device-Patient Association or Disassociation"
  • 7.4.2.2 Change "point of care" to "point-of-care"
  • 7.4.2.2.4 Capitalize reporter in Device-Patient Association Reporter (look elsewhere too, be consistent)
  • Indicate once verified by a user, the message can be final or corrected.
  • A.2.3-1 Fix text in Response Characteristics and Based on Segment pattern rows (PCD-17 and response text is obsolete)
  • Fix initiator or responder column
  • Fix awkward "serve/serves" wording issues

[Topic] Rules around Accepting DEV-51

As part of the DEV-51 transaction, it would be good to discuss the set of criteria that the DPAM actor can enforce to:

  • Fully accept DEV-51
  • Partially accept DEV-51, or
  • Reject DEV-51

Add optional FHIR interface to manager and additional client actor to support retrospective queries

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Add error code for DEV-19 not supported by Manager

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Extensions for additional attributes at time of association, such as order ID, channel #, etc.

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Use OBR.3 and OBR.29 to identify device association for any action (association, disassociate, correction, wrong, update) in DEV-52 messages

Section Number Identify the most specific section number the issue occurs (e.g. 4.1.2)

Issue Describe your issue. Don't write a book, but do include enough to indicate what you see as a problem.

Proposed Change Propose a resolution to your issue (e.g., suggested new wording or description of a way to address the issue). The committee might simply accept your suggested text. Even if they don't, it gives a good sense of what you are looking for. Leaving this blank means you can't imagine how to resolve the issue, which makes it easier for the committee to admit they can't imagine how to resolve it either and leave it unresolved.

Priority:

  • High: Important issue where there is major issue to be resolved. Requires discussion and debate.
  • Medium: Significant issue or clarification. Requires discussion, but should not lead to long debate.
  • Low: Typo or other minor classification that an editor can manage. Requires no group discussion.

Allow DEV-19 filtering on MSH-5 (Receiving Application) and MSH-6 (Receiving Facility)

During the Spring 2023 IHE PCD Face to Face, we discussed the current capabilities of the DEV-19 query. To set up a filter with current specifications, you would need to know the patient's ID or location information. If I just want a feed of "all of my devices" or "all of my devices at this facility", I don't have that option and it'd be nice to have.

Describe the solution you'd like
During the DEV-19 query, I should be able to also specify adding a filter criteria to MSH-5 and MSH-6. (this is interesting because I'm sending as MSH-3/4 during the query, but I'd be the receiver on the DEV-52 messages.

Describe alternatives you've considered
n/a

Additional context
n/a

9/26/2023 Feedback

Typos:
Table A.1.1-1, the {} brackets should be removed because there is only one association per message

Could be replaced with “—ASSOCIATION begin” and “—ASSOCIATION end”
Section A.1.2.4, “Order Request” should be “Observation Request”
Section A.1.3, should the first entry be simply “Lower limit”?
Section A.2.3.1
Why is this reference to DEV-52 in the section for DEV-19?
Table A.2.3.2-3, what HL7 message MSH.5 and MSH.6 refer to?
Table A.2.4-2
“Field Seq” values 5 and 6 should be 4 and 5
A.4
Example 1:
The first ORU^R01, the second “AL” should be in MSH-16, not MSH-17
The first commit level ACK is missing MSH-10 (Message Control ID)
Example 2:
The 2nd PRT (for AUT)
PRT-1 should be “2”
PRT-11 should be the ID of the nurse
Example 3:
The first MSH segment has all kinds of problems
In RCP segment, ‘N’ should be in RCP-5, not RCP-6
Where did the “HL7005” come from in the QID segment?
Example 4:
Same as Example 2
3.19.4.2.2, Message Semantics
What does this mean: “The message is made up of a frame identifying the message, a read-back of the query filter parameters of the request, and a commit level acknowledgement.”
What happens if PV1-3 and PRT-10 for EQUIP don’t match?
Applies to both DEV-51 and DEV-52
Shouldn’t the App ACK for DEV-51 have its own unique Message Type (MSH-9) instead of ACK^R01^ACK?
Sockets
Which side establishes the connection for DEV-52?
Wording in Section 3.19 is ambiguous: “…the Device-Patient Association Manager shall send DEV-52 messages for all current Device-Patient associations to the Device-Patient Association Consumer when network connectivity is restored.”
The connectivity could be restored by either side making a connection
In wording at the end of A.2.3, it appears the manager makes the connection to the consumer, and any filter parameters previously received in a DEV-19 must be persisted and applied when a new connection is established
“If the connection is lost, the manager must continue to try and establish a new connection to the consumer, always sending the current device-patient association events matching the filter once the connection is re-established.”
When first established, will all current associations be sent?
How does this relate to DEV-19? Is DEV-19 only applicable after the initial firehose of all associations?
See also text in A.2.4, beginning with “will receive all existing associations when the connection is first established that meet the desired filter specification to get the starting state.”
What socket is DEV-19 sent on?
Consider adding some way to identity the device type in the DEV-51 and DEV-52 messages
Example: Use MDC_DEV_PUMP_INFUS_VMD for all infusion pumps, regardless of LVP or syringe
Otherwise we will need to figure out a way to identify our pumps from all other devices that will have associations, likely through a serial number lookup, which is not as efficient as being able to immediately discard associations from other device types
It would also allow for the possibility of being able to have device type as a filter option

Move PCIM to HL7 version 2.8.2 or later?

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Resolve issues with section 3.17.2-1

  • Manager - HMI to validate and to perform conflict resolution.
  • Reporter - Qualify authority to assert. State that the authority necessary by reporter does not need to be double verified by manager. But do state that the Reporter must include and log the responsible authority when this occurs.
  • Add status field (requires validation vs final) as a requirement for reporter to properly populate.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.