This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

Difference between revisions of "Datatypes R2 Issue 57"

From HL7Wiki
Jump to navigation Jump to search
(DomainDefinition - marking all sorts of problems)
m (→‎Domain Definition: fixed vertical alignment)
Line 36: Line 36:
  
 
{|
 
{|
 +
|-valign="top"
 
|ISS|| Issued by scoper || The identifier was issued by the organisation identified as the scoper.  Mutually exclusive with Used and Verified.
 
|ISS|| Issued by scoper || The identifier was issued by the organisation identified as the scoper.  Mutually exclusive with Used and Verified.
 
:What is a "scoper" on an II? [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
 
:What is a "scoper" on an II? [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
|-
+
|-valign="top"
 
|VRF|| Verified by scoper || The identifier was not issued by the organisation identified as the scoper, but the application has verified the identifier with the issuing authority.  Mutually exclusive with Issued and Used.
 
|VRF|| Verified by scoper || The identifier was not issued by the organisation identified as the scoper, but the application has verified the identifier with the issuing authority.  Mutually exclusive with Issued and Used.
 
:What is a "scoper" on an II? What is "the application" that has verified? [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
 
:What is a "scoper" on an II? What is "the application" that has verified? [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
|-
+
|-valign="top"
 
|USE|| Used by scoper || The identifier was provided to the organisation identified as the scoper, but cannot be verified. e.g. a Driver's licence entered manually into a system by a user.  Mutually exclusive with Issued and Verified.
 
|USE|| Used by scoper || The identifier was provided to the organisation identified as the scoper, but cannot be verified. e.g. a Driver's licence entered manually into a system by a user.  Mutually exclusive with Issued and Verified.
 
:What is a "scoper" on an II? I think that Role verification should be an Act documented on the Role, not some use code on an II. [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
 
:What is a "scoper" on an II? I think that Role verification should be an Act documented on the Role, not some use code on an II. [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
|-
+
|-valign="top"
 
|NPLY|| Role id|| The identifier applies to the role itself, rather than a specific player in the role.  I.e. The id applies to the role, regardless of who is playing it.  Only applies to Roles.
 
|NPLY|| Role id|| The identifier applies to the role itself, rather than a specific player in the role.  I.e. The id applies to the role, regardless of who is playing it.  Only applies to Roles.
 
:How is this important? How do I have to implement this correctly? [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
 
:How is this important? How do I have to implement this correctly? [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
|-
+
|-valign="top"
 
|RW|| Real World Identifier || This represents a potentially non-reliable identifier communicated for business purposes, but not deemed appropriate for matching purposes.
 
|RW|| Real World Identifier || This represents a potentially non-reliable identifier communicated for business purposes, but not deemed appropriate for matching purposes.
 
:Who decides that? From whose perspective is this? Is a US Social Security Number not a "real world" identifier? Is this going to tell me that I can't use an SSN for "matching"? What kind of "matching" is this referring to? How does this relate to the other values here, esp. BUS? [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
 
:Who decides that? From whose perspective is this? Is a US Social Security Number not a "real world" identifier? Is this going to tell me that I can't use an SSN for "matching"? What kind of "matching" is this referring to? How does this relate to the other values here, esp. BUS? [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
|-
+
|-valign="top"
 
|BUS|| Business Identifier || This is a commonly used identifier associated with a particular object. It is often a publicly exposed identifier which is known to providers and may be printed on reports or forms. It remains consistent as a class undergoes state transitions, including suspend, resume, revise, abort and complete. It is the truest identifier of the "object", given the MnM paradigm that an object persists across state transitions.  
 
|BUS|| Business Identifier || This is a commonly used identifier associated with a particular object. It is often a publicly exposed identifier which is known to providers and may be printed on reports or forms. It remains consistent as a class undergoes state transitions, including suspend, resume, revise, abort and complete. It is the truest identifier of the "object", given the MnM paradigm that an object persists across state transitions.  
 
:This duplicates II.displayable functionality. How is this different from RW? What does a "provider" have to do in a discussion on II? How does "a ''class'' undergoes state transitions"? If you mean "the object", then, why would any identifier not "remain consistent as ''the object'' undergoes state transitions, including suspend, resume, revise, abort and complete"? What you really want to make a statement about here is that this may remain stable even accross multiple RIM Acts that are in SEQL relationships, you know, accross moods and updates. [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
 
:This duplicates II.displayable functionality. How is this different from RW? What does a "provider" have to do in a discussion on II? How does "a ''class'' undergoes state transitions"? If you mean "the object", then, why would any identifier not "remain consistent as ''the object'' undergoes state transitions, including suspend, resume, revise, abort and complete"? What you really want to make a statement about here is that this may remain stable even accross multiple RIM Acts that are in SEQL relationships, you know, accross moods and updates. [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
|-
+
|-valign="top"
 
|VER|| Version Identifier || This is a type of identifier introduced in some jurisdictions to allow referencing a particular business object as it existed at a given point in time. They can be considered identifiers of a static snapshot of the object. This type of identifier changes with each state transition on the object. I.e. The version identifier of an object prior to a 'suspend' state transition is distinct from the identifier of the object after the state transition. Each version identifier can be tied to exactly one ControlAct event which brought that version into being.
 
|VER|| Version Identifier || This is a type of identifier introduced in some jurisdictions to allow referencing a particular business object as it existed at a given point in time. They can be considered identifiers of a static snapshot of the object. This type of identifier changes with each state transition on the object. I.e. The version identifier of an object prior to a 'suspend' state transition is distinct from the identifier of the object after the state transition. Each version identifier can be tied to exactly one ControlAct event which brought that version into being.
 
:I don't think "jurisdictions" should be invoked in a discussion on such technicalities. "This type of identifier changes '''[not only]''' with each state transition on the object '''[but every time the object is updated'''." More would be needed to explain who's supposed to change these around in a loosely coupled distributed system. Perhaps needs to say that these should be thrown away by someone who does not intend to maintain version identifiers. Leaving those in objects as they get updated would cause chaos. [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
 
:I don't think "jurisdictions" should be invoked in a discussion on such technicalities. "This type of identifier changes '''[not only]''' with each state transition on the object '''[but every time the object is updated'''." More would be needed to explain who's supposed to change these around in a loosely coupled distributed system. Perhaps needs to say that these should be thrown away by someone who does not intend to maintain version identifiers. Leaving those in objects as they get updated would cause chaos. [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
|-
+
|-valign="top"
 
|VW|| View Specific Identifier || This is an identifier for the exact information items that are included within a static model instance. This identifies a view of the business object at a particular point in time, and as such identifies a set of data items that can be digitally signed and/or attested. This is in contrast to the Version Identifier which identifies the object at a specific time, but not the amount of information being asserted about the object. This identifier would be changed when a transformation of the information is performed (eg to add code translations, to provide a simplified textual rendering, or to provide additional information about the object as it existed at the specific point in time). Note that the Information Instance Identifier may be conveyed with all its information items "byValue" or with none or some "byReference". These additional use codes allow Information Instance Identifiers to be used when only enough information for populating a picklist is needed, with the full inforomation instance being retreived if needed.
 
|VW|| View Specific Identifier || This is an identifier for the exact information items that are included within a static model instance. This identifies a view of the business object at a particular point in time, and as such identifies a set of data items that can be digitally signed and/or attested. This is in contrast to the Version Identifier which identifies the object at a specific time, but not the amount of information being asserted about the object. This identifier would be changed when a transformation of the information is performed (eg to add code translations, to provide a simplified textual rendering, or to provide additional information about the object as it existed at the specific point in time). Note that the Information Instance Identifier may be conveyed with all its information items "byValue" or with none or some "byReference". These additional use codes allow Information Instance Identifiers to be used when only enough information for populating a picklist is needed, with the full inforomation instance being retreived if needed.
 
:What is "a static model instance" in the data type specification? What "picklist" are you talking about? This is very confusing. Very specific rules about how these are maintained are required. It seems to me that these ids have no meaning outside of a specific external representation instance. They mean nothing in a database. [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
 
:What is "a static model instance" in the data type specification? What "picklist" are you talking about? This is very confusing. Very specific rules about how these are maintained are required. It seems to me that these ids have no meaning outside of a specific external representation instance. They mean nothing in a database. [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
|-
+
|-valign="top"
 
|REF|| Reference || The identifier is being used in a class that is not self defining. The complete details are expected to be available from some other source, either another message, or a service, or database.  Mutually exclusive with Definitional.
 
|REF|| Reference || The identifier is being used in a class that is not self defining. The complete details are expected to be available from some other source, either another message, or a service, or database.  Mutually exclusive with Definitional.
 
:What is "a class that is not self defining"? Guys, stuff like this is loading amunition into Barry Smith's guns. Don't allow for such cheap shots. I disagree to the distinction Definition and Reference, and these things cannot talk about the Object, nor the identifier. They can only talk about an external representation of the object. This doesn't appear to be a property of an identifier at all. [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
 
:What is "a class that is not self defining"? Guys, stuff like this is loading amunition into Barry Smith's guns. Don't allow for such cheap shots. I disagree to the distinction Definition and Reference, and these things cannot talk about the Object, nor the identifier. They can only talk about an external representation of the object. This doesn't appear to be a property of an identifier at all. [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
|-
+
|-valign="top"
 
|DEF|| Definition || The identifier is being used in a class that contains enough information to completely define the object described by the class.  Mutually exclusive with Reference.
 
|DEF|| Definition || The identifier is being used in a class that contains enough information to completely define the object described by the class.  Mutually exclusive with Reference.
 
:Watch your "class" vs. "object" vs. "view" language, please. I disagree to the distinction Definition and Reference, and these things cannot talk about the Object, nor the identifier. They can only talk about an external representation of the object. This doesn't appear to be a property of an identifier at all. [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)
 
:Watch your "class" vs. "object" vs. "view" language, please. I disagree to the distinction Definition and Reference, and these things cannot talk about the Object, nor the identifier. They can only talk about an external representation of the object. This doesn't appear to be a property of an identifier at all. [[User:Gschadow|Gschadow]] 10:15, 19 May 2007 (CDT)

Revision as of 15:19, 19 May 2007

Data Types Issue 57: II.useCode

Introduction

This proposal is for a useCode on II. This idea was endorsed in principle by MnM (see motion below).

MnM Motion

To ease the adoption of HL7 v3, MnM recommends INM to add “useCode” to II. This would identify the intended scope/purpose/use of the identifier. See also the discussion around Types of Identifiers. Example concepts to be included:

  • Issued by scoper/author
  • Verified by scoper/author
  • Used by scoper/author
  • Non-player specific
  • Real-world id
  • Record id
  • Version-specific (snapshot)
  • View id
  • Reference
  • Definitional

(The difference between reference and definition is that when the id is definitional the sender is conveying to the receipient all the necessary information for this context of use. This is not the same as the source of truth)

MnM would like to participate in identifying requirements, appropriate contents, definitions and usage guidelines

Default values will be set to make the attribute backwards compatible

see also Types of Identifiers

Domain Definition

ISS Issued by scoper The identifier was issued by the organisation identified as the scoper. Mutually exclusive with Used and Verified.
What is a "scoper" on an II? Gschadow 10:15, 19 May 2007 (CDT)
VRF Verified by scoper The identifier was not issued by the organisation identified as the scoper, but the application has verified the identifier with the issuing authority. Mutually exclusive with Issued and Used.
What is a "scoper" on an II? What is "the application" that has verified? Gschadow 10:15, 19 May 2007 (CDT)
USE Used by scoper The identifier was provided to the organisation identified as the scoper, but cannot be verified. e.g. a Driver's licence entered manually into a system by a user. Mutually exclusive with Issued and Verified.
What is a "scoper" on an II? I think that Role verification should be an Act documented on the Role, not some use code on an II. Gschadow 10:15, 19 May 2007 (CDT)
NPLY Role id The identifier applies to the role itself, rather than a specific player in the role. I.e. The id applies to the role, regardless of who is playing it. Only applies to Roles.
How is this important? How do I have to implement this correctly? Gschadow 10:15, 19 May 2007 (CDT)
RW Real World Identifier This represents a potentially non-reliable identifier communicated for business purposes, but not deemed appropriate for matching purposes.
Who decides that? From whose perspective is this? Is a US Social Security Number not a "real world" identifier? Is this going to tell me that I can't use an SSN for "matching"? What kind of "matching" is this referring to? How does this relate to the other values here, esp. BUS? Gschadow 10:15, 19 May 2007 (CDT)
BUS Business Identifier This is a commonly used identifier associated with a particular object. It is often a publicly exposed identifier which is known to providers and may be printed on reports or forms. It remains consistent as a class undergoes state transitions, including suspend, resume, revise, abort and complete. It is the truest identifier of the "object", given the MnM paradigm that an object persists across state transitions.
This duplicates II.displayable functionality. How is this different from RW? What does a "provider" have to do in a discussion on II? How does "a class undergoes state transitions"? If you mean "the object", then, why would any identifier not "remain consistent as the object undergoes state transitions, including suspend, resume, revise, abort and complete"? What you really want to make a statement about here is that this may remain stable even accross multiple RIM Acts that are in SEQL relationships, you know, accross moods and updates. Gschadow 10:15, 19 May 2007 (CDT)
VER Version Identifier This is a type of identifier introduced in some jurisdictions to allow referencing a particular business object as it existed at a given point in time. They can be considered identifiers of a static snapshot of the object. This type of identifier changes with each state transition on the object. I.e. The version identifier of an object prior to a 'suspend' state transition is distinct from the identifier of the object after the state transition. Each version identifier can be tied to exactly one ControlAct event which brought that version into being.
I don't think "jurisdictions" should be invoked in a discussion on such technicalities. "This type of identifier changes [not only] with each state transition on the object [but every time the object is updated." More would be needed to explain who's supposed to change these around in a loosely coupled distributed system. Perhaps needs to say that these should be thrown away by someone who does not intend to maintain version identifiers. Leaving those in objects as they get updated would cause chaos. Gschadow 10:15, 19 May 2007 (CDT)
VW View Specific Identifier This is an identifier for the exact information items that are included within a static model instance. This identifies a view of the business object at a particular point in time, and as such identifies a set of data items that can be digitally signed and/or attested. This is in contrast to the Version Identifier which identifies the object at a specific time, but not the amount of information being asserted about the object. This identifier would be changed when a transformation of the information is performed (eg to add code translations, to provide a simplified textual rendering, or to provide additional information about the object as it existed at the specific point in time). Note that the Information Instance Identifier may be conveyed with all its information items "byValue" or with none or some "byReference". These additional use codes allow Information Instance Identifiers to be used when only enough information for populating a picklist is needed, with the full inforomation instance being retreived if needed.
What is "a static model instance" in the data type specification? What "picklist" are you talking about? This is very confusing. Very specific rules about how these are maintained are required. It seems to me that these ids have no meaning outside of a specific external representation instance. They mean nothing in a database. Gschadow 10:15, 19 May 2007 (CDT)
REF Reference The identifier is being used in a class that is not self defining. The complete details are expected to be available from some other source, either another message, or a service, or database. Mutually exclusive with Definitional.
What is "a class that is not self defining"? Guys, stuff like this is loading amunition into Barry Smith's guns. Don't allow for such cheap shots. I disagree to the distinction Definition and Reference, and these things cannot talk about the Object, nor the identifier. They can only talk about an external representation of the object. This doesn't appear to be a property of an identifier at all. Gschadow 10:15, 19 May 2007 (CDT)
DEF Definition The identifier is being used in a class that contains enough information to completely define the object described by the class. Mutually exclusive with Reference.
Watch your "class" vs. "object" vs. "view" language, please. I disagree to the distinction Definition and Reference, and these things cannot talk about the Object, nor the identifier. They can only talk about an external representation of the object. This doesn't appear to be a property of an identifier at all. Gschadow 10:15, 19 May 2007 (CDT)

Discussion

Lloyd - should be called "use" not "useCode"

Lee - question on REF. I would expect that if I received a Reference, that would indicate that somewhere there is either a View, Version, or Definition identifier that matched it and I would not need to specify which it is on use.

Lee - As I think about this more, I believe REF is mutually exclusive of any other use. We also need to specify that use doesn't come into play when determining equivalence.

Lee - I'm uncomfortable with the role related uses above, though I'll still vote in favor (we can deprecate them later)

Gunther - I am to hesitant to vote in favor. I think this is too big a change to go so fast. I want to see use cases for each one of these. And the definitions need serious cleanup. This is such a fundamental thing, if it is screwed up all hell breaks loose. I am making detail comments above, because that's the only way to resolve these. Gschadow 09:41, 19 May 2007 (CDT)

Resolution

Passed INM 30/4/2007: Motion to add use code called use to the II datatype

Taskforce Vote: We approve the domain defined here and will advance this for harmonization.

 For: Grahame, Lee (hesitantly -- see above)
 Against: Gunther, I move to continue discussion. Gschadow 09:42, 19 May 2007 (CDT)
 Abstain

Links

Back to Data Types R2 issues

Notes

From Rik:

Yes, but a reference to an act isnt the same as an act.

I think there is a clear distinction between an act (that has some id) and a reference to that act. And I think this is independent of any update semantics, ie. whether or not that act would have the same id if it was changed and re-messaged.

Clinical Statement has acts in the choice box, and it has ActReference, which is a pointer-to-act. Since HL7 doesn't directly support this pointer concept, ActReference is modelled as a cut down act. The only way to know that it is a reference rather than a act is to recognise that it hasn't enough attributes to be anything else, or to use its clone name (or its act relationship clone name).

Neither of these is good practice or foolproof. But they are at least signs that allow your code to do the lookup, rather than try to cope with an act that has nothing in it.

So I don't think the ActReference construct is just a convenience. Its a distinct construct that unfortunately looks a lot like an act, due to limits of the machinery.

The proper way to do references will indeed be via II.useCode (wiki about this is at http://informatics.mayo.edu/wiki/index.php/Datatypes_R2_Issue_57 <http://informatics.mayo.edu/wiki/index.php/Datatypes_R2_Issue_57> ), which could eventually be applied to either the main CDA act choice or to ExternalActChoice.

Since it isn't in CDA R2 datatypes I don't think this is a permissible realm extension, but I'm not certain. But even if it is we still need to resolve the typeCode, inversionInd or act.code issues. So its back in the CFH court to work this through I reckon.