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

DataTypes Comments Section 4

From HL7Wiki
Jump to navigation Jump to search

4 Basic Types

  • 4.1 Binary Data (BIN) specializes LIST<BN>
    1. "a character-based ITS SHOULD NOT convert character data into arbitrary binary data and then represent binary data in a character encoding." - what does this mean? Maybe an example is called for?
  • 4.2 Encapsulated Data (ED) specializes ANY
    1. "Note that ST is a specialization of ED where the mediaType is fixed to text/plain and several other properties are constrained to null." - this seems oddly out of place...
    2. data - "Operations may be performed directly upon the binary content by using data." - I'm not sure what sort of operations are being suggested, but here is a place where it needs to be stressed that content is identity. If you alter the content of the data portion of an ED, (assuming I understand the section on identity correctly), you have a different ED.
    3. reference -
      • Type: TEL.URL - "A telecommunication address (TEL), such as a URL... - isn't it more than such as the definition says that it is.
      • "... a URL for HTTP or FTP" - I'm not sure what a URL for HTTP would look like. I would propose the following: "A URL that resolves to binary content of the ED." (I don't get "that could as well have been...")
    4. integrityCheck - "The integrity check is a shortA binary value containing a cryptographically strongsome form of a checksum that iscalculated over the data." - It doesn't have to be "cryptographically strong", whatever that means, or be calculated of strictly binary data. "Short" is a strictly subjective term and has no meaning...
    5. translation - "Translations SHALL not contain translations." - is this stated verbally to keep from having to come up with a specialized, non-translated ED?
    6. 4.2.1 P1 - ED acts as a wrapper of binary content content - ???
    7. Definition 105 is curious, especially as the sentence following it appears to contradict it. It would seem that either (a) the reference is opaque (e.g. an ITS issue) and the ED always returns data of (b) the reference is visible and the retrieval of the actual information is done by the client application. I don't understand the situation described here.
    8. Table 14 - heading is messily rendered.
    9. Tables of recommended media types - especially based on someone's determination of the relative security and ability to propagate viruses seems to be pushing the "abstract" nature of this spec...
    10. "There is a risk that general SGML/XML is too powerful to allow a sharing of general SGML/XML documents between different applications. " - gosh, then what is HL7 going to use instead?
    11. What are the invariants with respect to binary compliance to the media type. If, for instance, an XML document isn't well formed, is there anything that needs to be said or done?
    12. Table 15 - heading is messily rendered.
    13. 4.2.6 Reference Definition: "A telecommunication address (TEL), such as a URL for HTTP or FTP, which will resolve to precisely the same binary data that could as well have been provided as inline data." (See comment on this topic above.
    14. The reference SHALL point to the same data as provided inline. It is an error if the data resolved through the reference does not match either the integrity check, in-line data, or data that had earlier been retrieved through the reference and then cached. - this seems like a strange statement. The intent is to say that it cannot change, but this is a curious way to go about it. If we didn't cache it, then is change ok?
    15. It still isn't clear whether it is the obligation of the data type ITS or the retrieving application to dereference the URL.
    16. 4.2.7 Integrity check. - issues with the definition are discussed earlier in this document.
    17. Is Integrity Check strictly for reference resolution, or does it apply to "inline" data as well?
    18. Are sha-1 and sha-256 the only algorithms that can be used? If so, I withdraw the suggested changes to the definition above...
    19. 4.2.9 - (formatting) - bumps into the preceding table, which is confusing.
    20. 4.2.12 - length - are there only two "kinds" of item in the content - characters and bits? If so, this needs to be simplified. If not, it needs to tell me where to find what a "kind" is and get the unit length. Until I read that images had a binary length, I was assuming that the length would either be "1" (for 1 picture) or the number of frames.
    21. nonNull ED SHALL always have some valid content, and length is greater than 0. - "valid" is an interesting statement, but the question remains - does data have to be non-null, even when reference isn't?
    22. Not that I want to really see it, but why no DTDL for SubPart? and equal?
  • 4.3 Character String (ST) specializes ED
    1. ST is primarily intended for machine processing? Where do we put text intended to be read by people???
    2. What does "the appearance of text does not bear meaning" mean? Is appearence the keyword or are we genuinely asserting that you can only use ST for meaningless text? Is "formalized text" (whatever that is) or "all kinds of names" meaningless text?
    3. "It SHALL be contained in-line - the ED.reference property cannot be used." - these SHALLs and SHALL NOT's seem extraneous in most cases. Wouldn't it be sufficient to say that ST SHALL comply with all invariants and be done with it?
  • 4.4 Character String with Code (SC) specializes ST
    1. "The original text of the code, if provided, is the content of the string." - these sort of statements (especially the footnote) are a bit confusing. As this is an abstract specification, it seems like its primary job is to indicate what various predicates and properties do, not what does or does not get sent over the wire. Thus, if provided makes no sense. Does code.originalText return a value or does it not? Why, if the string is required, would you want to make originalText optional?
  • 4.5 Concept Descriptor (CD) specializes ANY
    1. P2 - the last sentence of this paragraph, starting with "If the concept (the intent of the original text) ..." needs to be moved further down in the description. These first few paragraphs need to be descriptive if the reader is going to amek it through this.
    2. P5 - Attributes with type CD are generally bound to a domain that constrains the coded concepts to which a CD may refer. - What does "bound" mean in this context?
    3. P5 - "The binding process is discussed in depth [[here]]." - where is here?
    4. P5 - again, the SHALL's need to be moved further down. The reader is still trying to figure out what this thing is all about and this sort of declarations don't help.
    5. code - shouldn't this be constrained further than ST.SIMPLE (or should ST.SIMPLE be further constrained?) - I don't believe that character sets or translations have any place here
    6. valuesetVersion - is datetime really the correct data type for this? If so, why isn't codeSystemVersion the same type?
    7. Is "root concept" defined anywhere?
    8. isCompositional - how can a code refer directly to two concepts in a coding system?
    9. 4.5.2 P2 - A CD that has a code attributes SHALL...
    10. 4.5.4 P2 "HL7 SHALL specify how these version strings are formed for each external code system. If HL7 has not specified how version strings are formed for a particular coding system, version designations have no defined meaning for such coding system." - This is a tall order. When SHALL HL7 start on this task? If they don't do it, are they declared out of compliance?
    11. 4.5.5 P2 - "Applications SHALL NOT reject an instance because of the presence or absence of any or a particular value set." - Not sure what this means - is it talking about the value set property, or the value set itself? If it is the latter case, how can it be absent?
    12. 4.5.6 P1 - "valueSetVersion SHALL be provided when a valueSet is provided, and otherwise SHALL be null. The value set version specifies a date, with the resolution of a particular second. The date is the date/time that the value set being used was published." - surprisingly strong requirement. Is this information available currently? Is there any way to get around it if you simply don't know?
    13. 4.5.9 - table 21 is kind of messed up.
    14. 4.5.9 - just a question - since the possible options are "none, O, OP, R and OR", wouldn't it be simpler to make it a simple CS?
    15. 4.5.11 - Source - Can a source have translations? In general, this seems to be opening a can of worms, as it looks like it is really intended to be a reference rather than its own value, but there is nothing in the specification that prevents it from being a separate thing - especially as most of the information in a CD (especially translations!) don't play a role in the identity of the CD itself!
    16. 4.5.12 - we need examples. Lots of examples - this just doesn't make sense as it sits... NOTE - I encountered the examlples down the page. You might want to let folks they are coming...
    17. 4.5.13 last paragraph - "HL7 SHALL make a ruling about which is the preferred form. HL7 SHALL " - I just don't think specifications can do this. Compliant applications SHOULD and SHALL - you can't rule HL7 as non-compliant!
    18. 4.5.15.1 - "that is found to the full Snomed-CT valueset" (found in?)
    19. 4.4.15.1 - "he OIDs used in these examples that in the OID space 2.16.840.1.113883.6, 2.16.840.1.113883.5 and 2.16.840.1.113883.11 are the correct OIDs to use in production instances." - why wouldn't you just use the correct ones when the exist?
    20. Examples - <translation id="s1" code="burn" - I don't see any documentation that allows an id field in translation. What gives?
  • 4.6 Coded Ordinal (CO) specializes CD
    • Definition - the code system defines a partial or complete order on some or all of the codes in the system. (a) The system itself probably isn't ordered. (b) A numeric value has nothing to do with it except the tenuous connection that the integers have a complete order. Need to remove references to numbers here, as it makes no sense - especially as codes can be numeric, but the code system order may be different than the natural number order.
    • OK - this is a new on me. What code systems assign numeric values to concepts? Is the ordering of the numbers the same as the ordering of the Reals? (a: Definition 137 - yes.) What does one of these beasts look like? This is fascinating!
  • 4.7 Coded Simple Value (CS) specializes CV
    1. As mentioned earlier, I would think that code needs to be further constrained than just ST.SIMPLE - as ST.SIMPLE currently allows charset and translation?
    2. 4.7.1 - I am assuming that the constraints on the CS code character set is to (shhhh...) make it XML element compliant. If this is the case, you need to also specify that the first character must be ":", "-" or [a-zA-Z]. Only the succeeding characters can have ".", "-" and [0-9]
    3. 4.7.5 - "is not applicable when CS is used in exchanging data between systems. However the recipient system may be able to derive an appropriate displayName from the code and codeSystem information. Note that conformant systems MAY choose not to implement" - two sentence fragments. Looks like they got eaten by the formatting system?
    4. 4.7.7 - "The value property is not included in the equality test" - I should hope not, as it doesn't have a value property...
  • 4.8 Unique Identifier String (UID) specializes ST.SIMPLE
    1. P2 - "Note that this comparison is case sensitive; " - a curious statement, as it seems to go on to state that case sensitivity doesn't even apply?
    2. Definition 150 - ST.SIMPLE still has character sets and translations(!)
    3. 4.8.1 - "The value property is not included in the equality test." - goodness, where are all these value properties coming from?
  • 4.9 ISO Object Identifier (OID) specializes UID
    1. What is the difference between OID and LIST<INT>?
    2. "An HL7 interface SHALL NOT rely on any knowledge about the substructure of an OID for which it cannot control the assignment policies." - This is confusing, as I thought that HL7 interfaces were to treat all UID's as opaque identifiers. How can it rely on substructure given these circumstances? Furthermore, does HL7 control the assignment policies of ISO/ITU-T? I don't think so...
    3. "For compatibility with the DICOM standard, the literal form of the OID should not exceed 64 characters. (see DICOM part 5, section 9)." - is this a capital SHOULD? SHALL?
    4. "... The value property is not included in the equality test." Goodness, do all data types have a hidden value property?
  • 4.10 DCE Universal Unique Identifier (UUID) specializes UID
    1. ".... The value property is not included in the equality test". ?
  • 4.11 HL7 Reserved Identifier Scheme (RUID) specializes UID
    1. Why would you want to include an unspecified, undocumented, unused data type in this specification? (complete with instructions that the local community "SHALL never" (SHALL NOT)? use it?
    2. Apparently this lacks any other structure, but it still has a value property (which isn't included in the equality test, of course).
  • 4.12 Instance Identifier (II) specializes ANY
    1. A curious collection of "objects" - cars, medical records, orders and HL7 RIM objects (which don't seem anything like the other things in the list. Is this the classic use of object or something else? If so, you might want to a more neutral - say an identifier that names a unique thing, object, document, message, (what else?). Also, does II uniquely name something or name a unique something (the first one kind of implies 1 name 1 thing, the latter says 0..n --> 1
    2. P5 - Here is "HL7 SHALL" again. According to RFC2119, this translates to the specification absolutely requires HL7 to do something or they will be found to be non-compliant.
  • 4.13 Universal Resource Locator (URL) specializes ANY
    1. Is this a URL or a URI? The label says URL, yet the documentation, by and large, talks about it as if it were a URI. The definition of scheme, however, talks more like it is a URL, and P2 seems to make that quite explicit. If this is the case, I would recommend calling it a "URL" throughout this section to remove any ambiguity.
    2. Table 26 - header is messed up.
    3. Shouldn't there be an invariant that says that a URL must have a scheme and an address? As it is, a non-null URL can have neither. What is puzzling about this is the equality constraint, which says that "If the address is not known, then it is not known whether the addresses are equal." What would be an example of a URL that lacks an address field?
  • 4.14 Telecommunication Address (TEL) specializes URL
    1. URL/URI issue again. Wouldn't it be simple to just say "A locatable resource that is identified by a URL? Perhaps the misnamed URL should be clearly identified as URI, making TEL a URL
    2. 4.14.3 - equality. "The use and useablePeriod properties are excluded from the equality test." What of canonical?
  • 4.15 Address Part (ADXP) specializes SC.NT
    1. (minor) - part of stereotype on ADXP in UML model is hidden.
    2. Table 32 - Is including a list of country codes in the document itself that good an idea? Impressively, this table appears to be up date with the last ISO newsletter, but will it remain current? Also, while ISO has made 2 character codes public, the ISO organization still claims that Alpha-3 codes are not' freely available (" Where can I find the ISO 3166-1 alpha-3 country code for free download on the ISO 3166/MA Website? Nowhere. The alpha-3 code is not made available free of charge. You can buy the International Standard ISO 3166-1 from our ISO Store. It contains the three-letter code. " http://www.iso.org/iso/country_codes/iso_3166-faqs/iso_3166_faqs_general.htm
    3. A couple of examples would be really helpful in this section. The added CS and inherited SC isn't something that is intuitively obvious. It would be good to just provide, say, a simple street and maybe a country. This is especially important as the language element just kind of pops up out of the blue...
    4. Footnote 49 is interesting. Perhaps you should include a bit more explanation, either in the footnote or in the equality definition section explaining (a) why this is true (I recollect discussion on this in the intro, but don't remember the nuances) and (b) why you want this to be this way.
  • 4.16 Postal Address (AD) specializes LIST<ADXP>
    1. Recommend revising the definition to read "A sequence of address parts, such as street or post office box, city, postal code, country, etc. used to represent mailing and home or office addresses." - I still wonder about the second part, however. Are there other locations that these could be used for? Perhaps the "mailing..." is more of an example?
    2. P2 - if the postal address is not supposed to be used for other things, perhaps a SHALL and/or "SHALL NOT" would be in order here?
    3. formatted - Sentence 2: (a) semantic - this is anything but a semantic property - it appears to be related entirely to syntax. (b) not sure what "This is only a property to..." is intended to say.
    4. Footnote 50 - rife with semantic. Why not just say property? (Alternatively, you could always say semantic property except in the cases when they weren't, but I don't think there are any).
    5. 4.16.4 equality
      • "independent of ordering. Use cCode, usablePeriod, formatted, and isNotOrdered..."
      • Definition 168:
invariant(AD x, y)
      where x.nonNull.and(y.nonNull) {
   x.equal(y).equal((
      forall(ADXP p) where x.contains(p) {
	     y.contains(p);
	     }).and.(
     forall(ADXP p) where y.contains(p) {
          x.contains(p);}));
} ;