According to RFC 3986, a URI can be an identifier without having to also be a locator. Is this also the intent for the DV_URI data type? If so, how does this mesh with DV_IDENTIFIER?
The main difference is that:
- a URI can (assuming it is correct) be resolved to some machine obtainable resource, e.g. an online document, a site, etc
- a DV_IDENTIFIER captures the identifier of some real world object such as a human, a driving license, a prescription etc. which is issued by some issuer. There is no implication of whether it can be āresolvedā by anything other than the issuing organisation (e.g. US Social Security, etc), and no implication of anything being available online (even though such things mostly are today, but youād be surprised in the US ā¦)
But does that include a uri that does not actually resolve to a location?
@siljelb can you give an example of what you are trying to identify/connect?
I do think we may have to do something to make it easier to express typed references as per FHIR. OBJECT_REF would do the job but it has no equivalent DV_ for archetype use. or can we modify DV_URI to support this? Ignore if this not your requirement - Iāll re-ask the question elsewhere!!
That was what I was wondering about too, thanks Ian!
@siljelb can you give an example of what you are trying to identify/connect?
The starting point for my question was this change request: Cluster Archetype: Laboratory analyte result [openEHR Clinical Knowledge Manager]
The CR is suggesting using both the DV_IDENTIFIER and the DV_URI as data types, which led to the question of how these two should be used in relation to one another. Do we by āURIā really mean āURLā, even though the class description clearly mentions RFC-3986, which explicitly allows URIs that are not also URLs?
But does that include a uri that does not actually resolve to a location?
A URI can be incorrect, like anything else. RFC 3986 doesnāt state anything about resolution, only about URI syntax. A URI supplied to a resolving server may result in a 404 (if itās an HTTP server), or any other failure equivalent.
Also URIs donāt resolve (for the ones that do resolve) to locations, only to resources, e.g. a document, a SNOMED code, whatever it may be.
The intent of a URI is that it resolves to something in the online world, nearly always via HTTP protocol; thatās the difference with DV_IDENTIFIER, which has no assumption about any online anything; it is assumed to be resolvable by whatever means are available, e.g presenting at the reception of the state DVLA, Social Security office; making phone calls, and possibly specific online systems, but there is no general expectation that an SSN or a veterans number can be just put into a browser and get a sensible result.
@siljelb to confuse things a bit more
I guess you might have noted that URNs are also URIs (but not necessarily resolvable). Feel free to help me/us think about how they are best used in openEHR, see:
- https://openehr.atlassian.net/wiki/spaces/spec/pages/786956289/DV_EHR_URI+related+issues
- It has long been on the todo list to finish and submit a URN registration for openehr, here is a registration template https://openehr.atlassian.net/wiki/spaces/spec/pages/1913782313/IANA+URN+namespace+application+for+openEHR
P.s. also somewhat related: Usage of OID, URI (URL/URN) in DV_IDENTIFIER fields?