[Gambas-user] Help with converting text in field to number
    richard terry 
    rterry at ...1946...
       
    Mon Jan 26 22:43:05 CET 2009
    
    
  
As a prefix to this post all contuctive criticism of my flaws/poor logic etc 
here welcomed (with open arms!). I hope this is not too confusing, which it 
is likely to be as I don't really know what I'm doing, so its hard to 
explain, but in essence:
I've a table containing my lab results which is as follows and rightly or 
wrongly I've kept all results initially in a text field as the hl7 I'm 
dealing with the value field can be numerical or text:
CREATE TABLE clin_requests.requests_results
(
  pk serial NOT NULL,
  episode_key integer NOT NULL, -- episode key is unique to a group of results
  						         -- all of a fbc
  result text,		 -- the actual value eg could be potassium or white cell count
  "value" text,					 -- could be eg 134 or 1.1 or  text
  units text, 					 -- the units for the above
  reference_range text,		 -- the reference range
  abnormal boolean,			 -- if true the result is abnormal
  probability text,				 -- ?currently not used
  obx text,		 -- obx= the entire pipe (|) delimited Hl7 row for this result
  CONSTRAINT requests_results_pkey PRIMARY KEY (pk)
)
Now that I can import my data I want to be able to graph it, for example look 
at the number of patients with hba1c (a diabetic measurement) between certain 
ranges, dates etc.
I pull this information out of a view:
I want to end up with a list of data like this by using union queries for each 
range I want (is there a better way to do this?) which I can pass to the 
graphing tool
xaxes-text|count|display_order
-------------------------------------------
 5-6             5               1
 6-7           100            2
over 7       10              3
this query:
select      
      '5-6.0' as XAxes_text, count (value) as count,'1' as display_order From 
clin_requests.vwResults  where fk_lu_request = 872
gives for example
xaxes-text|count|display_order
6-6.5            100            1
But obviously the query needs a bit more as that is all the values in the 
view, not the specific range I want so  I have to be able to convert the 
value field to a number and then test if that number is between my ranges.
I tried various combinations and permutation of the above base query plus 
using the function  to_number("value","9D9"), to no avail.
It must be a matter of correct syntax.
Any help appreciated, plus any help pointing me to any references about 
graphing values in postgres (besides the doc's which I have - ie a tutoral 
would be useful.
Regards, and thanks in anticipation.
Richard
    
    
More information about the User
mailing list