[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