Skip to content

NexusItemConsentIdentifier Naming system

Status: retired · 1.26.0 · JSON

RETIRED. Identified one item consent by a computed key of the (patient, catalogue item) pair, written as {patient-logical-id}:{item-code}. Use a conditional write against the pair instead: PUT Consent?patient={patient-reference}&category={item-system}|{item-code}, which is the modelled way to say that exactly one Consent exists per patient per item, and is the same search a reader already uses to find one. WHY THIS IS RETIRED: the value is built from Resource.id, the address a resource has on one server. A logical id is assigned by the server holding the resource and is not carried across one, so a re-ingest, a store migration or a copy between deployments gives the same patient a different id -- and Identifier is the datatype that exists to survive exactly that. After such an event a recorded value no longer names its pair, and the consequence is silent: a conditional update keyed on it matches nothing and creates a second Consent for a pair that must have exactly one, and a writer that reads the value back as a precondition, refusing an update when it disagrees with the value it computes, instead stops writing for that patient with no error that names the cause. Re-basing the key on the patient's MRN does not fix it: the MRN slice is 0..1, so a patient without one has no key, and the MRN system guarantees no format, so a colon inside an MRN makes the composed value ambiguous. READERS: values under this system exist in records written before it was retired. Read them as what they are, a key computed at write time, and do not recompute one, match on one, or use one as a precondition. WRITERS: do not mint new values. Moving records that carry one is outstanding work and is not described here. Not to be confused with CodeSystem/nexus-consent-item, which is the vocabulary of items a patient can be asked about; this system identified a recorded answer, that one enumerates the questions.

Type Value Preferred
uri ../NamingSystem/nexus-item-consent-identifier true