0

As a HISP, we will be getting patient records from different organizations but would like to key the patient records by userid of our system. We will also be exposing the records for third party app developers via APIs. App developers can query for medical records by our userid. From the spec, identifier property is used for cross referencing across different systems and cannot be used for this purpose. I'm thinking of using Id property with value something like {'ID': 'FFEBED08-29EF-E211-BECC-888C662DF58B', 'Type':'User', 'InstanceID':'56D95BB2-1CE0-4BAB-A946-19FD60C48D76' }, where 'ID' is user's ID and 'InstanceID' is unique identifier of record. Is it acceptable? Or should I use modifierextension for storing our userid?

Here is the use case:

  1. For a user A in our system, we may get patient records from hospital X and primary care provider Y.
  2. User A can query for medical records, we need to merge the records from both providers and present to the user.
  3. Each user has a unique id in our system called userId.
  4. Patient records are sent by providers X & Y to us after user A authorize using oAuth flow.
  5. Our system now knows that the record is for user A and link it using our system's userId. This helps in user A to get the consolidated view of medical records.

What is the appropriate property to store our system's userId?

Amit Joshi
  • 15,448
  • 21
  • 77
  • 141
frosty
  • 2,421
  • 6
  • 26
  • 47
  • Is the user id related to the patient id somehow? how? Not sure what is, so not sure why identifier can't be used for that purpose. Not sure what the id property is either. Nor do I see what userId - whatever it is - would be a modifier extension. Perhaps you could explain – Grahame Grieve Jul 27 '14 at 23:39
  • My question is based on difference between Id and Identifier property of a resource described in blog http://fhirblog.com/2014/01/21/fhir-a-question-of-identity/. I've updated use case in question due to comment length restriction – frosty Jul 28 '14 at 04:43
  • I'm still not entirely sure about the use case. You want to track that a user viewed the patient? - use SecurityEvent. You want to somehow mark that the patient resource is different because some user grabbed control of it? - that would be an extension in the patient resource (note that there's no resource for a "user" yet, though one will be present in the next version - see http://hl7-fhir.github.io/securityprincipal.html for a very windy draft indeed). You want to keep track of some inferred relationship to denormalise your search for next time? - I think you need that new resource. – Grahame Grieve Jul 28 '14 at 08:03
  • It is the last "You want to keep track of some inferred relationship..". Identifier of patient records can be different at different providers (unless there is a national ID system). Shouldn't there be a way to stamp the record with my userID for easy access instead of creating yet another resource? – frosty Jul 28 '14 at 14:32
  • what's the relationship between the userId and the patient record? is the user the same as the patient? – Grahame Grieve Jul 28 '14 at 20:26
  • Think of us as what mint/yodlee is for personal finance. A user in our system can have one or more patient records for him, each patient record from a different provider. The user logs into our site to manage relationship with different providers. Since in US there is no unique identifier system for patient, as an intermediary, we have to either stamp the medical record with our userID or have a provider's patient identifier - userID map for fetching consolidated data by user. Stamping the record with our userID, will incur the least I/O and that is why looking for a way to do that. – frosty Jul 28 '14 at 22:43
  • Well, if the user id is also a patient identifier, then I don't understand why you shouldn't put it in the Patient record as an identifier – Grahame Grieve Jul 29 '14 at 10:58
  • I was not clear whether I can overwrite Identifier property for records originating from other providers. From your response, looks like it is acceptable. I'll use that for storing userid. Thanks for your response. – frosty Jul 29 '14 at 14:30

1 Answers1

3

Given that the userId is also a patient identifier, I'd just add the user identifier to the patient resource when you make the link

Grahame Grieve
  • 3,538
  • 3
  • 15
  • 17