我在读取ORM^O01订单消息中的ORC-2字段时遇到问题。我使用HapiStructures-v23-1.2.jar读取,但此方法(getFillerOrdersNumber())返回空值
MSH|^~\\&|recAPP|20010|BIBB|HCL|20110923192607||ORM^O01|11D900220|D|2.3|1\r
PID|1|11D900220|11D900220||TEST^FOURTYONE||19980808|M|||\r
ZRQ|1|11D900220||CHARTMAXX TESTING ACCOUNT 2|||||||||||||||||Y\r
ORC|NW|11D900220||||||||||66662^NOT INDICATED^X^^^^^^^^^^U|||||||||CHARTMAXX
TESTING ACCOUNT 2|^695 S.BROADWAY^DENVER^CO^80209\r
OBR|1|11D900220||66^BHL, 9P21 GENOTYPE^L|NORMAL||20110920001800|
||NOTAVAILABLE|N||Y|||66662^NOT INDICATED^X^^^^^^^^^^U\r我想解析这条消息,读取ORC-2字段并将其保存在数据库中
public static string getOrderNumber(){
Message hapiMsg = null;
Parser p = new GenericParser();
p.setValidationContext(null);
try {
hapiMsg = p.parse(hl7Message);
} catch (Exception e) {
Logger.error(e);
}
Terser terser = new Terser(hapiMsg);
try {
ORM_O01 getOrc = (ORM_O01)hapiMsg;
ORC orc = new ORC(getOrc, null);
String fn= orc.getFillerOrderNumber().toString();
}catch(Exception e){
logger.error(e);
}
return fn;
}我在一些帖子中读到,我必须通过梯子才能到达ORC、OBR和NTE部分。有人能帮我用一段代码来做这件事吗?提前感谢
发布于 2011-09-26 08:17:53
基于以下代码:
ORM_O01 getOrc = (ORM_O01)hapiMsg;
ORC orc = new ORC(getOrc, null);
String fn= orc.getFillerOrderNumber().toString();看起来您正在创建一个新的ORC,而不是从消息中取出现有的一个。不幸的是,我不能提供确切的代码,因为我只熟悉HL7,而不是HAPI。
编辑:看起来你可以做ORC orc = getOrc.getORDER().getORC();
发布于 2011-10-02 01:10:02
首先,我必须指出,ORC-2是Placer订单号,而ORC-3是Filler订单号,而不是反过来。因此,您可能想要这样做:
ORM_O01 msg = ...
ORC orc = msg.getORDER().getORC();
String placerOrderNumber =
orc.getPlacerOrderNumber().getEntityIdentifier().getValue();
String fillerOrderNumber =
orc.getFillerOrderNumber().getEntityIdentifier().getValue();我建议您自己阅读Hapi文档:http://hl7api.sourceforge.net/v23/apidocs/index.html
https://stackoverflow.com/questions/7545131
复制相似问题