I'm optimistic that hl7 version2.3 is a bit interoperable after all!
I think work should be done on mapping to and fro to the gnumed measurements schema
from such V2.3 messages.
MSH.sending_facility test_org.fk_org MSH.sending_application test_org.internal_name
OBR filler_order_number:00-49828852-1 universal_service_id:S00.46 BIOCHEM dlabsys requested_date_time:200109120000 observation_date_time:200109121000 results_report_status_change:200109122225 quantity_timing: 200109120000
filler_order_number -> lab_request.lab_request_id
lab.request.request_status -> ? F , if all child OBX have observation_result_status: F
requested_date_time -> lab_request.lab_rxd_when observation_date_time -> ? a field for lab_request.test_done_when ? (* not in schema)
results_report_status_change -> lab_request.results_reported_when
universal_service_id : ? -> ? lab_request.lab_dept_id ? ( * not in schema)
OBX
value_type:FT ? FT - full text? NM - numerical observation_identifier:2000-8 Sodium LN
observation_results:139 or a description with internal delimiter characters
( \\.nf (?new form), \\.br (lineBReak) ) in
value_type is FT
units:mmol/L
reference_range:135-145
observation_result_status:F ? F=finished
maps as
observation_identifier: test_result . fk_type
observation_results: test_result. val_num or val_alpha
units : test_result. val_unit
reference_range test_result.val_normal_range, test_result.val_norm_min, val_norm_max
The ORC fields weren't used in Richard's examples, and seem to overlap with the OBR data.
"order_control",
"placer_order_number1",
"filler_order_number",
"placer_order_number2",
"order_status", ---> this could map to lab_request.request_status
"response_flag",
"quantity_timing",
"parent",
"date_time_of_transaction",
"entered_by",
"verified_by",
"ordering_provider", ----> lab_request.fk_requestor
"enterer_location",
"callback_phone_number",
"order_effective_date_time",
"order_control_code_reason",
"entering_organization",
"entering_device",
"action_by"
================================================================= gnumed tables --------------------------------
gnumed=> \d test_org
Table "public.test_org"
Column | Type | Modifiers
----------------+--------------------------+---------------------------------------------------------------
pk_audit | integer | not null default nextval('public.audit_fields_pk_audit_seq'::t
row_version | integer | not null default 0
modified_when | timestamp with time zone | not null default ('now'::text)::timestamp(6) with time zone
modified_by | name | not null default "current_user"()
pk | integer | not null default nextval('public.test_org_pk_seq'::text)
fk_org | integer | not null
fk_adm_contact | integer |
fk_med_contact | integer |
internal_name | text |
comment | text |
Indexes:
"test_org_pkey" primary key, btree (pk)
"test_org_fk_org_key" unique, btree (fk_org)
"test_org_internal_name_key" unique, btree (internal_name)
Foreign-key constraints:
"$1" FOREIGN KEY (fk_adm_contact) REFERENCES xlnk_identity(xfk_identity) ON UPDATE CASCADE ON DELETE RE
"$2" FOREIGN KEY (fk_med_contact) REFERENCES xlnk_identity(xfk_identity) ON UPDATE CASCADE ON DELETE RE
------------------------------
gnumed=> \d lab_request
Table "public.lab_request"
Column | Type | Modifiers
-----------------------+--------------------------+---------------------------------------------------------------------
pk_audit | integer | not null default nextval('public.audit_fields_pk_audit_seq'::text)
row_version | integer | not null default 0
modified_when | timestamp with time zone | not null default ('now'::text)::timestamp(6) with time zone
modified_by | name | not null default "current_user"()
pk_item | integer | not null default nextval('public.clin_root_item_pk_item_seq'::text)
clin_when | timestamp with time zone | not null default ('now'::text)::timestamp(6) with time zone
fk_encounter | integer | not null
fk_episode | integer | not null
narrative | text |
soap_cat | text | not null default 'p'::text
pk | integer | not null default nextval('public.lab_request_pk_seq'::text)
fk_test_org | integer | not null
request_id | text | not null
fk_requestor | integer |
lab_request_id | text |
lab_rxd_when | timestamp with time zone |
results_reported_when | timestamp with time zone |
request_status | text |
is_pending | boolean | not null default true
Indexes:
"lab_request_pkey" primary key, btree (pk)
"lab_request_fk_test_org_key" unique, btree (fk_test_org, request_id)
"idx_lreq_encounter" btree (fk_encounter)
"idx_lreq_episode" btree (fk_episode)
Check constraints:
"clin_root_item_soap_cat" CHECK (lower(soap_cat) = 's'::text OR lower(soap_cat) = 'o'::text OR lower(soap_cat) = 'a'::text OR lower(soap_cat) = 'p'::text)
"lab_request_request_id" CHECK (btrim(request_id) <> ''::text)
"lab_request_request_status" CHECK (request_status = 'preliminary'::text OR request_status = 'partial'::text OR request_status = 'final'::text OR request_status IS NULL AND is_pending IS TRUE)
Foreign-key constraints:
"$1" FOREIGN KEY (fk_test_org) REFERENCES test_org(pk)
"$2" FOREIGN KEY (fk_requestor) REFERENCES xlnk_identity(xfk_identity) ON UPDATE CASCADE ON DELETE RESTRICT
-----------------------------------------------------------------------------------------
gnumed=> \d test_result
Table "public.test_result"
Column | Type | Modifiers
-----------------------+--------------------------+---------------------------------------------------------------------
pk_audit | integer | not null default nextval('public.audit_fields_pk_audit_seq'::text)
row_version | integer | not null default 0
modified_when | timestamp with time zone | not null default ('now'::text)::timestamp(6) with time zone
modified_by | name | not null default "current_user"()
pk_item | integer | not null default nextval('public.clin_root_item_pk_item_seq'::text)
clin_when | timestamp with time zone | not null default ('now'::text)::timestamp(6) with time zone
fk_encounter | integer | not null
fk_episode | integer | not null
narrative | text |
soap_cat | text | not null default 'o'::text
pk | integer | not null default nextval('public.test_result_pk_seq'::text)
fk_doc | integer |
fk_type | integer | not null
val_num | numeric |
val_alpha | text |
val_unit | text |
val_normal_min | numeric |
val_normal_max | numeric |
val_normal_range | text |
val_target_min | numeric |
val_target_max | numeric |
val_target_range | text |
technically_abnormal | text |
norm_ref_group | text |
note_provider | text |
material | text |
material_detail | text |
reviewed_by_clinician | boolean | not null default false
fk_reviewer | integer |
clinically_relevant | boolean |
Indexes:
"test_result_pkey" primary key, btree (pk)
"idx_tres_encounter" btree (fk_encounter)
"idx_tres_episode" btree (fk_episode)
Check constraints:
"clin_root_item_soap_cat" CHECK (lower(soap_cat) = 's'::text OR lower(soap_cat) = 'o'::text OR lower(soap_cat) = 'a'::text OR lower(soap_ca
t) = 'p'::text)
"test_result_val_num" CHECK (val_num IS NOT NULL OR val_alpha IS NOT NULL OR val_num IS NULL AND val_alpha <> ''::text AND val_alpha IS NOT
NULL)
"test_result_technically_abnormal" CHECK (reviewed_by_clinician IS FALSE OR reviewed_by_clinician IS TRUE AND technically_abnormal IS NOT N
ULL)
"test_result_fk_reviewer" CHECK (reviewed_by_clinician IS FALSE AND fk_reviewer IS NULL OR fk_reviewer IS NOT NULL)
"test_result_clinically_relevant" CHECK (reviewed_by_clinician = false AND clinically_relevant IS NULL OR clinically_relevant IS NOT NULL)
Foreign-key constraints:
"$1" FOREIGN KEY (fk_type) REFERENCES test_type(pk)
"$2" FOREIGN KEY (fk_reviewer) REFERENCES xlnk_identity(xfk_identity)
=================================================
HL7 data
[EMAIL PROTECTED] seperator:None encoding_characters: ~\\& sending_application:dhm sending_facility:dlabsys receiving_application:UNK receiving_facility:UNK date_time_of_message:200109122234 security: message_type:ORU message_control_id:06160 processing_id:D version_id:2.3 sequence_number: continuation_pointer: accept_acknowledgment_type:NE application_acknowledge_type:AL country_code:AU character_set:None principal_language_of_message:None
[EMAIL PROTECTED] set_id:1 external_id: internal_id:JN1033482 alternate_id:49828852 patient_name:PENSIONER TESS MS mother_maiden_name: date_of_birth:19640717 sex:F patient_alias: race: patient_address:26 MAIN ROAD ANYWHERE UNK country_code:None home_number:None work_number:None language:None marital_status:None religion:None patient_account_number:None ssn_number:None driver_license:None mother_identifier:None ethnic_group:None birth_place:None multiple_birth_indicator:None birth_order:None citizenship:None veteran_military_status:None nationality:None patient_death_date_time:None patient_death_indicator:None
[EMAIL PROTECTED] [EMAIL PROTECTED] set_id:1 placer_order_number: filler_order_number:00-49828852-1 universal_service_id:S00.46 BIOCHEM dlabsys priority: requested_date_time:200109120000 observation_date_time:200109121000 observation_end_date_time: collection_volume: collector_identifier: specimen_action_code: danger_code: relevant_clinical_info: specimen_received_date_time: specimen_source: ordering_provider: order_callback_phone_number: placers_field1: palcers_field2: filler_field1: filler_field2: results_report_status_change:200109122225 charge_to_practice: diagnostic_service_sect_id: result_status:F parent_result: quantity_timing: 200109120000 result_copies_to:None parent_number:None transportation_mode:None reason_for_study:None principal_result_interpreter:None assistant_result_interpreter:None technician:None transcriptionist:None scheduled_date_time:None number_of_sample_containers:None transport_logistics_of_collected_sample:None collector_comment:None transport_arrangement_responsibility:None transport_arranged:None escort_required:None planned_patient_transport_comment:None
[EMAIL PROTECTED] set_id:1 value_type:NM observation_identifier:2000-8 Sodium LN observation_sub_id: observation_results:139 units:mmol/L reference_range:135-145 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:2 value_type:NM observation_identifier:14631-6 Bilirubin LN observation_sub_id: observation_results:14 units:umol/L reference_range:0-20 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:3 value_type:NM observation_identifier:2823-3 Potassium LN observation_sub_id: observation_results:5.7 units:mmol/L reference_range:3.5-5.6 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:4 value_type:NM observation_identifier:6769-4 ALP(Alk Phos) LN observation_sub_id: observation_results:76 units:U/L reference_range:30-115 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:5 value_type:NM observation_identifier:2075-0 Chloride LN observation_sub_id: observation_results:102 units:mmol/L reference_range:99-108 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:6 value_type:NM observation_identifier:2324-2 GGT(Gamma GT) LN observation_sub_id: observation_results:14 units:U/L reference_range:0-45 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:7 value_type:NM observation_identifier:1963-8 Bicarbonate LN observation_sub_id: observation_results:27 units:mmol/L reference_range:23-33 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:8 value_type:NM observation_identifier:2532-0 LD LN observation_sub_id: observation_results:142 units:U/L reference_range:100-225 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:9 value_type:NM observation_identifier:1920-8 AST LN observation_sub_id: observation_results:21 units:U/L reference_range:0-40 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:10 value_type:NM observation_identifier:22664-7 Urea LN observation_sub_id: observation_results:2.9 units:mmol/L reference_range:2.1-9.0 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:11 value_type:NM observation_identifier:1742-6 ALT LN observation_sub_id: observation_results:22 units:U/L reference_range:0-40 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:12 value_type:NM observation_identifier:2160-0 Creatinine LN observation_sub_id: observation_results:0.08 units:mmol/L reference_range:0.06-0.13 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:13 value_type:NM observation_identifier:2885-2 T-Protein LN observation_sub_id: observation_results:79 units:g/L reference_range:60-80 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:14 value_type:NM observation_identifier:2000-8 Calcium LN observation_sub_id: observation_results:2.48 units:mmol/L reference_range:2.10-2.60 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:15 value_type:NM observation_identifier:1751-7 Albumin LN observation_sub_id: observation_results:41 units:g/L reference_range:38-55 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:16 value_type:NM observation_identifier:18281-6 Corrected Ca LN observation_sub_id: observation_results:2.45 units:mmol/L reference_range:2.10-2.60 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:17 value_type:NM observation_identifier:10834-0 Globulin LN observation_sub_id: observation_results:38 units:g/L reference_range:20-32 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:18 value_type:NM observation_identifier:14879-1 Phosphate LN observation_sub_id: observation_results:1.08 units:mmol/L reference_range:0.80-1.40 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:19 value_type:NM observation_identifier:3084-1 Uric Acid LN observation_sub_id: observation_results:0.19 units:mmol/L reference_range:0.15-0.36 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:20 value_type:NM observation_identifier:14647-2 Cholesterol LN observation_sub_id: observation_results:5.4 units:mmol/L reference_range:3.9-5.5 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
[EMAIL PROTECTED] set_id:21 value_type:NM observation_identifier:14927-8 Triglycerides LN observation_sub_id: observation_results:0.8 units:mmol/L reference_range:0.5-1.7 abnormal_flags: probability: nature_of_abnormal_test: observation_result_status:F date_last_normal_value:None user_defined_access_checks:None observation_date_time:None producer_id:None responsible_observer:None observation_method:None
--------------------- [EMAIL PROTECTED] seperator:None encoding_characters: ~\\& sending_application:dhm sending_facility:dlabsys receiving_application:UNK receiving_facility:UNK date_time_of_message:200109122254 security: message_type:ORU message_control_id:06163 processing_id:D version_id:2.3 sequence_number: continuation_pointer: accept_acknowledgment_type:NE application_acknowledge_type:AL country_code:AU character_set:None principal_language_of_message:None
[EMAIL PROTECTED] set_id:1 external_id: internal_id:AMN1032577 alternate_id:51911788 patient_name:EZKYOWNER ALF MR mother_maiden_name: date_of_birth:19600627 sex:M patient_alias: race: patient_address:26 MAIN ROAD ANYWHERE UNK country_code:None home_number:None work_number:None language:None marital_status:None religion:None patient_account_number:None ssn_number:None driver_license:None mother_identifier:None ethnic_group:None birth_place:None multiple_birth_indicator:None birth_order:None citizenship:None veteran_military_status:None nationality:None patient_death_date_time:None patient_death_indicator:None
[EMAIL PROTECTED] [EMAIL PROTECTED] set_id:1 placer_order_number: filler_order_number:00-51911788-1 universal_service_id:HEPS.5 HEPATITIS SEROLOGY dlabsys priority: requested_date_time:200109120000 observation_date_time:200109120745 observation_end_date_time: collection_volume: collector_identifier: specimen_action_code: danger_code: relevant_clinical_info: specimen_received_date_time: specimen_source: ordering_provider: order_callback_phone_number: placers_field1: palcers_field2: filler_field1: filler_field2: results_report_status_change:200109122248 charge_to_practice: diagnostic_service_sect_id: result_status:F parent_result: quantity_timing: 200109120000 result_copies_to:None parent_number:None transportation_mode:None reason_for_study:None principal_result_interpreter:None assistant_result_interpreter:None technician:None transcriptionist:None scheduled_date_time:None number_of_sample_containers:None transport_logistics_of_collected_sample:None collector_comment:None transport_arrangement_responsibility:None transport_arranged:None escort_required:None planned_patient_transport_comment:None
[EMAIL PROTECTED]
set_id:1
value_type:FT
observation_identifier:22034-3 REPORT LN
observation_sub_id:
observation_results:\\.nf\\ HEPATITIS SEROLOGY\\.br\\ \\.br\\ Hepatitis B Surface Ag Not Detected\\.br\\ Hepatitis C Ab Not Detected\\.br\\No evidence of current hepatitis B infection (acute or chronic). Hepatitis C\\.br\\seroconversion may be delayed and repeat testing up to 6 months post exposure\\.br\\or clinical illness may be required to exclude infection.\\.br\\\\.br\\
units:
reference_range:
abnormal_flags:
probability:
nature_of_abnormal_test:
observation_result_status:F
date_last_normal_value:None
user_defined_access_checks:None
observation_date_time:None
producer_id:None
responsible_observer:None
observation_method:None
_______________________________________________ Gnumed-devel mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnumed-devel
