[sorry for the slow reply - was offline for bit]

On Thu, Sep 13, 2007 at 11:29:09AM -0400, Bryan Tripp wrote:
> Hi Ronald,
> 
> > I think there's a slight confusion regarding HL7 Null's: only a field
> > as a whole may be Null, not individual components. So, |""| says the
> 
> Yes, I might be confused about that. Can you give me a section reference?

Unfortunately the spec is not very explicit on this. However, there
are a couple implicit places (note that various other places in the
spec they talk about "null" when they actually mean "empty"):

 - v2.5, Chapter 2, Section 2.5.3 says:

     HL7 does not care how systems actually store data within an
     application. When fields are transmitted, they are sent as
     character strings. Except where noted, HL7 data fields may take
     on the null value. Sending the null value, which is transmitted
     as two double quote marks (""), is different from omitting an
     optional data field. The difference appears when the contents of
     a message will be used to update a record in a database rather
     than create a new one. If no value is sent, (i.e., it is omitted)
     the old value should remain unchanged.  If the null value is
     sent, the old value should be changed to null.  For further
     details, see Section 2.6, "Message construction rules".

   (Section 2.6 however does not have anything further to say about
   Nulls). Note that this is basically the only place that talks about
   Nulls, apart from the update modes for repeating segments (2.10.4),
   i.e. there's no mention anywhere that components or subcomponents
   may be Null, only here that fields may be Null.

 - v2.6, Jan/07 ballot spec, Chapter 2 (Control) is a bit more
   explicit here (page 24):

     A field may exist in one of three population states in an HL7 message

     Populated. (Synonyms: valued, non-blank, not blank, not empty) [snip]

     Not populated.  (Synonyms:  unpopulated, not valued, unvalued, blank,
     empty, not present, missing.) [snip]

     Null. Any existing value for the corresponding data base element
     in the receiving application should be deleted. This is
     symbolically communicated as two double-quotes between the
     delimiters (i.e., |""|).Employing consecutive double quote
     characters as the only content of a field for other purposes is
     prohibited. 

   Further down on Page 56 (under repeating fields) it says:

     With repeating fields, the segment action codes are not relevant.
     Action codes cannot be applied to individual field repetitions,
     because they cannot be uniquely identified. Therefore, they must
     all be there. i.e., send a full list for each transaction. If the
     intent is to delete an element, it is left off the list. This is
     analogous to the snapshot mode for repeating segments and segment
     groups. If the intent is to delete the whole list, the field is
     transmitted once with a Null in the first component. In effect,
     the Sender must make a statement about what action the receiver
     is expected to take: omitting, or not populating, the field is
     not a clear signal according to field state definition as
     described in section 2.5.3.

     At the same time, it is not incorrect to be precise about
     specific information that is to be deleted if the data type
     supports this capability. Note, however, that data types without
     components, e.g. IS or ST do not support this capability. There
     is no way to tie the Null value to an actual element instance in
     the persistent data store. See example 2.

   And in example 2 we find

     The data type for PD1-1 is a data types without components. There
     is no way to tie the Null value to an actual element instance in
     the persistent data store. Therefore the following is ambiguous
     and not good practice.

      MSH|||||||||ADT^A31^ADT_A31|<cr>
      EVN|...<cr>
      PID|||1234567^^^^MRN|<cr>
      PV1|...<cr>
      PD1|S~""||||||||||||||||||||||


  Cheers,

  Ronald


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Hl7api-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hl7api-devel

Reply via email to