首页 文章

HL7提取每个重复片段之间的整个片段/片段/内容

提问于
浏览
2

我有一个包含一个MSH段和多个PIV段的HL7消息 .

使用Java REGEX,我需要这样做:

1)提取整个MSH段

2)找到每个PV1段的出现 .

3)提取每个PV1段之间存在的整个内容/段 - 包括PV1段 .

我如何完成上述工作?

以下是样本HL7消息:

MSH|^~\&|OADD|${FACILITY}|HELIX||201012010910||ORU^R01|20101720000042|T|2.2
PID|||PX65^^^MRENTR||Mayer^Ronny
PV1||I||2|||9898^Jackson^Burt^T|||||||||||IP||||||||||||||||||||||||||201012010840
OBX|1|NM|NA^Sodium^0|1.1|140^3|mmol/L|137-146||||F|||201012010905|IM^|8035^COX^CATHERINE(IM)
OBX|2|NM|K^Potassium^0|1.1|4.5|mmol/L|3.5-5.0||||F|||201012010905|IM^|8035^COX^CATHERINE
(IM)
OBX|3|CE|CL^Chloride^0|1.1|100|mmol/L|98-109||||F|||201012010905|IM^|8035^COX^CATHERINE(IM)
PV1||I||2|||9898^Jackson^Burt^T|||||||||||IP||||||||||||||||||||||||||201012010840
OBX|1|NM|NA^Sodium^0|1.1|140^3|mmol/L|137-146||||F|||201012010905|IM^|8035^COX^CATHERINE(IM)
PV1||I||2|||9898^Jackson^Burt^T|||||||||||IP||||||||||||||||||||||||||201012010840
OBX|1|NM|NA^Sodium^0|1.1|140^3|mmol/L|137-146||||F|||201012010905|IM^|8035^COX^CATHERINE(IM)

因此,最终目标是拥有这样的消息 - 在每个PV1段之前获取提取的MSH段 . 然后创建一个新的HL7消息对象,其中包含每个HL7消息 . 在我的示例中,将创建3 hl7消息 - 每个消息都将传递给HAPI解析器 .

MSH|^~\&|OADD|${FACILITY}|HELIX||201012010910||ORU^R01|20101720000042|T|2.2
PID|||PX65^^^MRENTR||Mayer^Ronny
PV1||I||2|||9898^Jackson^Burt^T|||||||||||IP||||||||||||||||||||||||||201012010840
OBX|1|NM|NA^Sodium^0|1.1|140^3|mmol/L|137-146||||F|||201012010905|IM^|8035^COX^CATHERINE(IM)
OBX|2|NM|K^Potassium^0|1.1|4.5|mmol/L|3.5-5.0||||F|||201012010905|IM^|8035^COX^CATHERINE
(IM)
OBX|3|CE|CL^Chloride^0|1.1|100|mmol/L|98-109||||F|||201012010905|IM^|8035^COX^CATHERINE(IM)
MSH|^~\&|OADD|${FACILITY}|HELIX||201012010910||ORU^R01|20101720000042|T|2.2
PV1||I||2|||9898^Jackson^Burt^T|||||||||||IP||||||||||||||||||||||||||201012010840
OBX|1|NM|NA^Sodium^0|1.1|140^3|mmol/L|137-146||||F|||201012010905|IM^|8035^COX^CATHERINE(IM)
MSH|^~\&|OADD|${FACILITY}|HELIX||201012010910||ORU^R01|20101720000042|T|2.2
PV1||I||2|||9898^Jackson^Burt^T|||||||||||IP||||||||||||||||||||||||||201012010840
OBX|1|NM|NA^Sodium^0|1.1|140^3|mmol/L|137-146||||F|||201012010905|IM^|8035^COX^CATHERINE(IM)

1 回答

  • 0

    您可以使用库jar:hapi-base.2.0.jar

    使用ca.uhn.hl7v2.util.Terser类,您可以获得所需的报表段 .

    public Message processMessage(Message theIn) throws ApplicationException,
                HL7Exception {
    
            theIn = (ORU_R01) new PipeParser(new CanonicalModelClassFactory("2.3"))
                    .parse(theIn.encode());
    
            System.out.println(theIn.printStructure());//for debug better
            Terser menssageParsed = new Terser(theIn);
            String sResp = menssageParsed.get("/.RESPONSE/ORDER_OBSERVATION/OBR-3-1");
    }
    

    但是,如果您想在报告中创建新细分或进行编辑 . 您可以使用此类

    ca.uhn.hl7v2.model.Message; ca.uhn.hl7v2.model.Structure;

相关问题