Skip to content

Question: Parsed message structure abstraction confusion #108

@pbrunnen

Description

@pbrunnen

Hello all,
I will not purport to be an HL7 guru, but I'm rather confused by the parsed structure that comes out of hl7apy and I'm not clear if this is an error in my understanding of HL7 or in my understanding of hl7apy. I'm not finding any documentation on the structure of messages in hl7apy (and maybe none exists).

For instance, when parsing an ORM_O01 order, I have the Order object with ORC and OBR. When I read the examples and the wiki page by Mr. Michael Sarfati, it seems that I should be able to run the HL7 string into the parse_message function and the output should be structured by groups of MSH, PID, OBR, ORM, etc. so with the example given: "message.pid.pid_3.value" should work, but it does not and I have to use "message.ORM_O01_PATIENT.pid.patient_identifier_list.value" sometimes and "message.ORM_O01_PATIENT.pid.patient_identifier_list.id.value" others.

What I find extremely confusing is the OBR segment where I need to call things like "message.ORM_O01_ORDER.ORM_O01_ORDER_DETAIL.ORM_O01_OBRRQDRQ1RXOODSODT_SUPPGRP.obr" or "message.ORM_O01_ORDER.ORM_O01_ORDER_DETAIL.ORM_O01_CHOICE.obr". To me, the messages seem the same, but I don't understand these extra abstractions... I would assume they mean something, else they wouldn't be there... but how am I programmatically supposed to know when these extra layers are supposed to take effect? I was working with the HAPI library previously and I had not come across this before...

Any pointers or documentation would be most appreciated!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions