我正在编写一个java代码,用于使用 HAPI - FHIR DSTU2 HL7 中的MedicationOrder资源生成POST请求。我遇到了几个麻烦。
任何熟悉MedicationOrder资源的人都可以帮助我吗?
下面是java代码
public int sendMessage(MedicationOrder medicationOrder) throws ClientProtocolException, IOException
{
FhirContext ctx = FhirContext.forDstu2Hl7Org();
IGenericClient client = ctx.newRestfulGenericClient("http://fhirtest.uhn.ca/baseDstu2");
HttpPost httpPost = new HttpPost("http://fhirtest.uhn.ca/baseDstu2");
String message = ctx.newXmlParser().setPrettyPrint(true).encodeResourceToString(medicationOrder);
httpPost.setEntity((HttpEntity) new StringEntity(message, ContentType.create(Constants.CT_FHIR_XML, "UTF-8")));
org.apache.http.HttpResponse response = client.getHttpClient().execute(httpPost);
return response.getStatusLine().getStatusCode();
}
答案 0 :(得分:0)
如果界面抱怨“feed”,那么听起来你正在使用DSTU 1版本的HAPI,而不是DSTU2。 (饲料在DSTU 2中改为Bundle。)
答案 1 :(得分:0)
看起来您正在将HAPI的客户端与Apache HTTP客户端层混合(这是HAPI的客户端内部,但您不需要直接与之交互)
不要创建HttpPost
对象,只需使用HAPI的客户端来执行创建:
MethodOutcome outcome = client.create()
.resource(medicationOrder)
.prettyPrint()
.encodedJson()
.execute();