Как получить различные компоненты определенных полей из сообщения hl7 v2.6, используя terser? - PullRequest
1 голос
/ 26 апреля 2020

Пример сообщения hl7 v2.6:

MSH|^~\&|||||20200424103937.7340+0530||ORU^R40^ORU_R40|f08n8hw0nzkty5l6|P|2.6|||AL|NE|||||IHE_PCD_ACM_001^IHE PCD^1.3.6.1.4.1.19376.1.6.1.4.1^ISO
PID|||b5bbf095e54^^^abcde MRN^MR||^^^^^^L||199504000000|||||||||||123456789
PV1||I|SICU^01^01^aaaa Hospital^^^bbbb||||^James^James||||||||||^James^James
OBR|1|002d0542-dd18-4107-b5d8-ec64836747c0^^3C1A57FFFE431AD3^EUI-64|002d0542-dd18-4107-b5d8-ec64836747c0^^3C1A57FFFE431AD3^EUI-64|196616^MDC_EVT_ALARM^MDC|||20200424103937.7340+0530
OBX|1||69965^MDC_DEV_MON_PHYSIO_MULTI_PARAM_MDS^MDC|1.0.0.0|||||||X
OBX|2||69902^MDC_DEV_METER_TEMP_VMD^MDC|1.26.0.0|||||||X
OBX|3||69903^MDC_DEV_METER_TEMP_CHAN^MDC|1.26.1.0|||||||X
OBX|4|ST|196670^MDC_EVT_LO^MDC|1.26.1.1.1|Temp Low|||L~PN~SP|||R|||20200424103937.7340+0530||||SICU~01^^3C1A57FFFE431AD3^EUI-64
OBX|5|NM|150344^MDC_TEMP^MDC|1.26.1.1.2|37|Cel^Cel^UCUM|20-50||||R|||20200424103937.7340+0530||||SICU~01^^3C1A57FFFE431AD3^EUI-64||unknown
OBX|6|ST|68481^MDC_ATTR_EVENT_PHASE^MDC|1.26.1.1.3|end||||||R
OBX|7|ST|68482^MDC_ATTR_ALARM_STATE^MDC|1.26.1.1.4|inactive||||||R
OBX|8|ST|68483^MDC_ATTR_ALARM_INACTIVATION_STATE^MDC|1.26.1.1.5|enabled||||||X
OBX|9|ST|68484^MDC_ATTR_ALARM_PRIORITY^MDC|1.26.1.1.6|PN||||||R
OBX|10|ST|68485^MDC_ATTR_ALERT_TYPE^MDC|1.26.1.1.7|SP||||||R

Получить значения сегмента PID

Мне нужно получить сегмент PID (3-е поле) для всех компонентов (например, b5bbf095e54^^^abcde MRN^MR). Я попытался использовать terser, как показано ниже:

terser.get("/PID-3") 

Но в результате я получаю только 1-й компонент.

Получить количество сегментов OBR

Я также хочу чтобы получить счетчик всех OBR сегментов и нужно перебрать каждый сегмент. Это OBR количество сегментов может варьироваться от одного сообщения к другому, поэтому оно должно быть динамическим c.

...